ML Advertising
Photo
Вопрос по System Design на сегодня
Как работает протокол HTTPS?
Протокол HTTPS (Hypertext Transfer Protocol Secure) является расширением протокола HTTP (Hypertext Transfer Protocol).
HTTPS передает зашифрованные данные с использованием протокола безопасности транспортного уровня (TLS). Если данные перехвачены, то не смотря на это, все, что получает злоумышленник - это зашифрованный двоичный код.
Как данные шифруются и дешифруются?
1. Клиент (браузер) и сервер устанавливают TCP-соединение.
2. Клиент отправляет "client hello" на сервер. Сообщение содержит набор необходимых алгоритмов шифрования (шифровальных наборов) и последнюю поддерживаемую версию TLS. Сервер отвечает "server hello", чтобы браузер знал, поддерживает ли он алгоритмы и версию TLS.
Затем сервер отправляет SSL-сертификат клиенту. Сертификат содержит открытый ключ, имя хоста, даты истечения срока действия и т.д. Клиент проверяет сертификат.
3. После проверки SSL-сертификата клиент генерирует сеансовый ключ и шифрует его с использованием открытого ключа. Сервер получает зашифрованный сеансовый ключ и дешифрует его с помощью закрытого ключа.
4. Теперь, когда и клиент, и сервер имеют одинаковый сеансовый ключ (симметричное шифрование), зашифрованные данные передаются по безопасному двустороннему каналу.
Как работает протокол HTTPS?
Протокол HTTPS (Hypertext Transfer Protocol Secure) является расширением протокола HTTP (Hypertext Transfer Protocol).
HTTPS передает зашифрованные данные с использованием протокола безопасности транспортного уровня (TLS). Если данные перехвачены, то не смотря на это, все, что получает злоумышленник - это зашифрованный двоичный код.
Как данные шифруются и дешифруются?
1. Клиент (браузер) и сервер устанавливают TCP-соединение.
2. Клиент отправляет "client hello" на сервер. Сообщение содержит набор необходимых алгоритмов шифрования (шифровальных наборов) и последнюю поддерживаемую версию TLS. Сервер отвечает "server hello", чтобы браузер знал, поддерживает ли он алгоритмы и версию TLS.
Затем сервер отправляет SSL-сертификат клиенту. Сертификат содержит открытый ключ, имя хоста, даты истечения срока действия и т.д. Клиент проверяет сертификат.
3. После проверки SSL-сертификата клиент генерирует сеансовый ключ и шифрует его с использованием открытого ключа. Сервер получает зашифрованный сеансовый ключ и дешифрует его с помощью закрытого ключа.
4. Теперь, когда и клиент, и сервер имеют одинаковый сеансовый ключ (симметричное шифрование), зашифрованные данные передаются по безопасному двустороннему каналу.
🔥2👍1
Как вы могли видеть из моих крайних постов, в настоящее время я готовлюсь конкретно к собесу по System Design и делюсь своими мыслями. Но чтобы пройти весь процесс найма на позицию ML Engineer, необходимо быть подкованным и в других областях
Алгоритмы и структуры данных
- Набивать руку на задачах из Leetcode
- Уметь обсуждать задачу и задавать правильные вопросы интервьюеру (и особенно делать это в условиях стресса)
- Уметь предлагать разные решения от brute-force до оптимального
- Уметь выделять edge кейсы и тестировтаь их
ML System Design
- Также как и в классическом System Design здесь нужно уметь предлагать построить пайплайн, но уже под ML задачу
- При этом нужно не только рассказать, про то, как собирать данные и обучать модель, но и обосновать ML и бизнес метрики, как использовать модель на проде, какие вспомогательные инструменты потребуются (например, кэширование, хранилища, серверы etc.)
- Нужно уметь предлагать решения для предотвращения инцидентов и мониторинга
Классический ML
- Несмотря на хайп LLM, большая часть ML задач решается с помощью классических алгоритмов
- Поэтому нужно обязательно уметь рассказывать про лог регрессию, деревья, GBDT модели
- Нужно уметь расписать на листочке порядок оптимизации моделей и функции активации
- Уметь рассказывать про облегчение и ускорение моделей
Для этих целей, я хотел бы рекомендовать вам канал Александра Исакова asisakov. Здесь вы сможете найти
- подробную информацию по подготовке и подсказки, которые вам упростят жизнь на собесе
- ссылки на материалы и открытые курсы доступные на ODS и не только
- советы по работе над софт-скиллами, которые также важны для разработчика
Го заценим! 🔥
Алгоритмы и структуры данных
- Набивать руку на задачах из Leetcode
- Уметь обсуждать задачу и задавать правильные вопросы интервьюеру (и особенно делать это в условиях стресса)
- Уметь предлагать разные решения от brute-force до оптимального
- Уметь выделять edge кейсы и тестировтаь их
ML System Design
- Также как и в классическом System Design здесь нужно уметь предлагать построить пайплайн, но уже под ML задачу
- При этом нужно не только рассказать, про то, как собирать данные и обучать модель, но и обосновать ML и бизнес метрики, как использовать модель на проде, какие вспомогательные инструменты потребуются (например, кэширование, хранилища, серверы etc.)
- Нужно уметь предлагать решения для предотвращения инцидентов и мониторинга
Классический ML
- Несмотря на хайп LLM, большая часть ML задач решается с помощью классических алгоритмов
- Поэтому нужно обязательно уметь рассказывать про лог регрессию, деревья, GBDT модели
- Нужно уметь расписать на листочке порядок оптимизации моделей и функции активации
- Уметь рассказывать про облегчение и ускорение моделей
Для этих целей, я хотел бы рекомендовать вам канал Александра Исакова asisakov. Здесь вы сможете найти
- подробную информацию по подготовке и подсказки, которые вам упростят жизнь на собесе
- ссылки на материалы и открытые курсы доступные на ODS и не только
- советы по работе над софт-скиллами, которые также важны для разработчика
Го заценим! 🔥
Telegram
asisakov
АЛГОРИТМЫ И КОДИНГ
Часть 1
Наверняка про этот этап вы хоть раз слышали какую-либо из множества интересных историй, где человек решал не особо относящуюся к работе задачу и для подготовки потратил очень много времени. Так вот, это то самое интервью. Этот…
Часть 1
Наверняка про этот этап вы хоть раз слышали какую-либо из множества интересных историй, где человек решал не особо относящуюся к работе задачу и для подготовки потратил очень много времени. Так вот, это то самое интервью. Этот…
🔥6👍2❤1
Forwarded from DevOps Docker
Схема взаимодействия контейнерных технологий в рамках работы с привычными инструментами может быть представлена так:
podman с помощью Libpod API обращается к библиотеке libpod, которая вызывает низкоуровневый container runtime (по умолчанию утилиту runc)containers/podman
Podman Commands
docker с помощью Docker API вызывает сервис dockerddocker/cli
Docker CLI reference
Docker architecture
Docker API
dockerd вызывает сервис containerdDockerd reference
containerd вызывает низкоуровневый container runtime (по умолчанию утилиту runc)containerd/containerd
Containerd Scope and principles
kubelet с помощью протокола CRI вызывает сервис container runtime (например, containerd или crio)Container Runtime Interface
Container Runtimes
CRI: the Container Runtime Interface
containerd вызывает низкоуровневый container runtime (по умолчанию runc)Containerd CRI
cri-o вызывает низкоуровневый container runtime (по умолчанию runc)cri-o/cri-o
container runtime (по умолчанию runc):runc с помощью библиотеки libcontainer создает контейнер по runtime-spec, взаимодействуя с подсистемами ядра Linux – пространствами имен (namespaces) и контрольными группами (cgroups)opencontainers/runc
runc man
opencontainers/runc/libcontainer
crun создает контейнер по runtime-spec, взаимодействуя с подсистемами ядра Linux – пространствами имен (namespaces) и контрольными группами (cgroups)containers/crun
Docker
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1
Forwarded from Machinelearning
⚡ Lightning Thunder: It makes PyTorch programs faster on single accelerators and distributed.
Thunder, новый компилятор для Python!
В задачах обучения LLM (например, Llama 2 7B) он может ускорить работу на 40% по сравнению с обычным PyTorch.
Вы можете использовать его с
▪Github
@ai_machinelearning_big_data
Thunder, новый компилятор для Python!
В задачах обучения LLM (например, Llama 2 7B) он может ускорить работу на 40% по сравнению с обычным PyTorch.
Вы можете использовать его с
pytorch.compile для повышения эффективности. И, конечно же, он также поддерживает обучение с несколькими графическими процессорами через DDP и SDP SDP.▪Github
@ai_machinelearning_big_data
👍3🔥2
ML Advertising
Photo
Продолжаем готовиться к собесу по System Design
Вопрос на сегодня:
Объясните различие основных архитектурных стилей API?
Несмотря на то, что в подавляющем большинстве случаев при слове API мы понимаем REST API, это не единственный архитектурный стиль. Есть другие, и мы их сейчас рассмотрим
SOAP
- Самый старый архитектурный стиль. Представляет собой сильно протоколированые сообщения
- Поддерживает только XML формат
- Используется как правило в legacy приложениях
REST
- REST сервисы должны удовлетворять 6 требованиям:
- Client-server architecture
- Stateless
- Cacheable: данные в ответе от сервера кэшируются
- Uniform interface
- Layered system
- Code on demand
- Очень гибок и зачастую используется для публичных API и простых приложений
- Совместим с большинством форматов XML, JSPN, HTML, text
- Его легко освоить и поддерживать благодаря большому коммьюнити
GraphQL
- Это одновременно и язык запросов, и архитектурный стиль
- Основное отличие от REST в том, что GraphQL позволяет работать с большим количество связанных между собой Data Sourc'ов и общаться между ними за один HTTP запрос, в то время как REST сервису понадобилось бы делать множество запросов, каждый на свой Data Source
- Совместим только с форматом JSON
- Это относительно новый инструмент, и в некоторых случаях GraphQL можно рассматривать как альтернативу REST
RPC
- Основное отличие от REST - это то, что в RPC (Remote Procedure Call) клиент делает на сервер процедуральные запросы.
- Это возможно при выполнении двух условий
- Клиент знает о функционале сервера и поэтому может передавать ему аргументы функций
- Сервер может сохранять состояния между запросами, т.е. он Stateful
- Подход хорошо подходит для распределенных приложений или микросервисах в рамках одной компании
- Также как и REST, RPC поддерживает все основные типы данных + новый формат Google Protobuf, в котором можно форсить схему
- Сейчас особой популярностью пользуется более оптимальный протокол gRPC, разработанный в Google
Вопрос на сегодня:
Объясните различие основных архитектурных стилей API?
Несмотря на то, что в подавляющем большинстве случаев при слове API мы понимаем REST API, это не единственный архитектурный стиль. Есть другие, и мы их сейчас рассмотрим
SOAP
- Самый старый архитектурный стиль. Представляет собой сильно протоколированые сообщения
- Поддерживает только XML формат
- Используется как правило в legacy приложениях
REST
- REST сервисы должны удовлетворять 6 требованиям:
- Client-server architecture
- Stateless
- Cacheable: данные в ответе от сервера кэшируются
- Uniform interface
- Layered system
- Code on demand
- Очень гибок и зачастую используется для публичных API и простых приложений
- Совместим с большинством форматов XML, JSPN, HTML, text
- Его легко освоить и поддерживать благодаря большому коммьюнити
GraphQL
- Это одновременно и язык запросов, и архитектурный стиль
- Основное отличие от REST в том, что GraphQL позволяет работать с большим количество связанных между собой Data Sourc'ов и общаться между ними за один HTTP запрос, в то время как REST сервису понадобилось бы делать множество запросов, каждый на свой Data Source
- Совместим только с форматом JSON
- Это относительно новый инструмент, и в некоторых случаях GraphQL можно рассматривать как альтернативу REST
RPC
- Основное отличие от REST - это то, что в RPC (Remote Procedure Call) клиент делает на сервер процедуральные запросы.
- Это возможно при выполнении двух условий
- Клиент знает о функционале сервера и поэтому может передавать ему аргументы функций
- Сервер может сохранять состояния между запросами, т.е. он Stateful
- Подход хорошо подходит для распределенных приложений или микросервисах в рамках одной компании
- Также как и REST, RPC поддерживает все основные типы данных + новый формат Google Protobuf, в котором можно форсить схему
- Сейчас особой популярностью пользуется более оптимальный протокол gRPC, разработанный в Google
gRPC
A high-performance, open source universal RPC framework
👍3🔥2
Что такое cookie и как работает cookie-sync?
ЧАСТЬ 1
Вероятно, вам знакомы надоедлевые всплывающие окна на web страницах, предлагающие принять куки для обработки персональных данных. В этом и следующих постах мы разберемся с тем, зачем это нужно, и что скрывают за собой файлы cookie
Что такое cookie?
Файлы cookie — это небольшие текстовые файлы, которые собирают определенные данные о пользователях в интернете.
Каждый раз, когда пользователь посещает новый сайт, файлы cookie создаются интернет-браузером и сохраняются на компьютере пользователя. Когда он возвращается на сайт, файлы cookie помогают ему вспомнить некоторые вещи, например, какой контент пользователь просмотрел и какие страницы он посещал.
В качестве примера cookie может выглядеть следующим образом. Здесь можно указать домен, отправку запросов только по протоколу HTTPS
Без cookie мы не могли бы добавлять товары в корзины маркетплейсов, нам пришлось бы вводить наши учетные данные каждый раз при доступе к сайту или приложению, и нам пришлось бы изменять язык по умолчанию при каждом посещении.
Содержимое cookie может отличаться в зависимости от издателя
- ecomm: интернет магазины трекают, какие продукты пользователь просматривал и добавил в корзину
- аналитика: сохраняется анонимный user_id, по которому мапится история его действий
- реклама: трекаются ивенты взаимодействия пользователя с рекламой (impression, video complete, click etc.)
#adtech
ЧАСТЬ 1
Вероятно, вам знакомы надоедлевые всплывающие окна на web страницах, предлагающие принять куки для обработки персональных данных. В этом и следующих постах мы разберемся с тем, зачем это нужно, и что скрывают за собой файлы cookie
Что такое cookie?
Файлы cookie — это небольшие текстовые файлы, которые собирают определенные данные о пользователях в интернете.
Каждый раз, когда пользователь посещает новый сайт, файлы cookie создаются интернет-браузером и сохраняются на компьютере пользователя. Когда он возвращается на сайт, файлы cookie помогают ему вспомнить некоторые вещи, например, какой контент пользователь просмотрел и какие страницы он посещал.
В качестве примера cookie может выглядеть следующим образом. Здесь можно указать домен, отправку запросов только по протоколу HTTPS
FALSE, номер сессии 1089259125, регион 1, ID пользователя 123
techcrunch.com FALSE 1089259125 regionid 1 userid 123
Без cookie мы не могли бы добавлять товары в корзины маркетплейсов, нам пришлось бы вводить наши учетные данные каждый раз при доступе к сайту или приложению, и нам пришлось бы изменять язык по умолчанию при каждом посещении.
Содержимое cookie может отличаться в зависимости от издателя
- ecomm: интернет магазины трекают, какие продукты пользователь просматривал и добавил в корзину
- аналитика: сохраняется анонимный user_id, по которому мапится история его действий
- реклама: трекаются ивенты взаимодействия пользователя с рекламой (impression, video complete, click etc.)
#adtech
👍6
ML Advertising
Photo
Что такое cookie и как работает cookie-sync?
ЧАСТЬ 2
Какие типы cookie существуют?
Различают 2 типа cookie
- first-party cookie
- third-party cookie
1️⃣ First-party cookie
Эти cookie создаются сайтами, которые мы посещаем напрямую. Например, если вы посещаете
Эти типы cookie помогают обеспечить хороший пользовательский опыт, поскольку они запоминают конкретные сведения о пользователе и его поведении (например, данные для входа, товары, добавленные в корзину покупок, предпочитаемый язык и т. д.). С first-party cookie решение о том, какую информацию собирать и хранить, принимает сам веб-сайт.
2️⃣ Third-party cookie
Файлы third-party cookie уже применяются для отслеживания активности пользователя не самим сайтом, а вендором рекламы. На одной web странице может находится сразу несколько third-party трекеров, каждый на свой рекламный слот, поскольку на одной странице разные они могут продаваться и обслуживаться разными Ad Tech вендорами.
Third-party трекеры могут отслеживать следующую инфу пользователя
- трекать тип девайса, ОС, версию, регион, пропускную способность интернет соединения с которого пользователь заходит
- трекать ивенты: скролл, отображение 1 пикселя рекламы, просмотр, клик
- трекать ивенты для видео: start/stop, complete (полный просмотр), progress 5, 10 (прогресс просмотра первых N секунд видео) etc
Если пользователь посещает сайт
Когда пользователь переходит на другой домен, например
source: clearcode
#adtech
ЧАСТЬ 2
Какие типы cookie существуют?
Различают 2 типа cookie
- first-party cookie
- third-party cookie
1️⃣ First-party cookie
Эти cookie создаются сайтами, которые мы посещаем напрямую. Например, если вы посещаете
techcrunch.com, файл cookie будет создан в домене techcrunch.com, а не в домене третьестороннего вендора рекламы или DSP (например, appnexus.com).Эти типы cookie помогают обеспечить хороший пользовательский опыт, поскольку они запоминают конкретные сведения о пользователе и его поведении (например, данные для входа, товары, добавленные в корзину покупок, предпочитаемый язык и т. д.). С first-party cookie решение о том, какую информацию собирать и хранить, принимает сам веб-сайт.
2️⃣ Third-party cookie
Файлы third-party cookie уже применяются для отслеживания активности пользователя не самим сайтом, а вендором рекламы. На одной web странице может находится сразу несколько third-party трекеров, каждый на свой рекламный слот, поскольку на одной странице разные они могут продаваться и обслуживаться разными Ad Tech вендорами.
Third-party трекеры могут отслеживать следующую инфу пользователя
- трекать тип девайса, ОС, версию, регион, пропускную способность интернет соединения с которого пользователь заходит
- трекать ивенты: скролл, отображение 1 пикселя рекламы, просмотр, клик
- трекать ивенты для видео: start/stop, complete (полный просмотр), progress 5, 10 (прогресс просмотра первых N секунд видео) etc
Если пользователь посещает сайт
bestbuy.com и кликает по товару, трекеры регистрируют эти события и отправляют часть кода cookie файла на сервер вендора рекламы. Чтобы облегчить размер самого third-party cookie файла и не писать в него абсолютно все действия пользователя, туда пишется паблишером только user_id, а вся информация о действиях пользователя отправляется для user_id вендору рекламы. Когда пользователь переходит на другой домен, например
techcrunch.com вендор маппит пользователя по его ID и отображает рекламу того же самого товара на слотах techcrunch.com по событиям, загруженным с предыдущего домена.source: clearcode
#adtech
👍6
the-incredible-pytorch
Подборка учебных пособий, проектов, библиотек, видео, статей, книг и всего, что связано с PyTorch.
Что здесь можно найти?
- Туториалы и обучалки
- LLMs
- PyTorch для табличных данные
- Визуализация
- Explainability
- Object Detection
- Архитектуры
- Оптимизаторы
- Квантование
- Сжатие сеток
- Facial/ Pose Recognition
- Super Resolution
- Medical PyTorch
- Video Recognition
- RNNs
- CNNs
- Сегментация
- Графовые сетки
- AE/ VAE
- NLP
- Deep Reinforcement Learning
Сохраняем к себе!
Подборка учебных пособий, проектов, библиотек, видео, статей, книг и всего, что связано с PyTorch.
Что здесь можно найти?
- Туториалы и обучалки
- LLMs
- PyTorch для табличных данные
- Визуализация
- Explainability
- Object Detection
- Архитектуры
- Оптимизаторы
- Квантование
- Сжатие сеток
- Facial/ Pose Recognition
- Super Resolution
- Medical PyTorch
- Video Recognition
- RNNs
- CNNs
- Сегментация
- Графовые сетки
- AE/ VAE
- NLP
- Deep Reinforcement Learning
Сохраняем к себе!
GitHub
GitHub - ritchieng/the-incredible-pytorch: The Incredible PyTorch: a curated list of tutorials, papers, projects, communities and…
The Incredible PyTorch: a curated list of tutorials, papers, projects, communities and more relating to PyTorch. - GitHub - ritchieng/the-incredible-pytorch: The Incredible PyTorch: a curated list...
🔥7👍1
ML Advertising
Traffic Attribution При проведении рекламной кампнии, когда мы продвигаем продукт на разных площадках, нам важно знать откуда приходит больше всего пользователей, и какой KPI на каждой из них. Чтобы это оценить, есть 2 подхода: 1️⃣ bottom-up – когда мы физически…
Ранее я уже писал про метод Marketing Mix Modeling, который помогает анализировать, откуда приходит пользовательский трафик для рекламной кампании. Это особенно актуально в условиях ухода от third-party cookie и ужесточения регламента приватности данных. Но чтобы реализовать MMM, нужны инструменты, например LightweightMMM от Google. В связи с этим, я хотел бы порекомендовать пост Димы, в котором он описывает основные MMM модели с ссылками
Telegram
AdTech & eComm: Мысли одного менеджера
As MMM Rides Again, Google Finds Its Place In The Conversation With Meridian
В мире, где использование куки становится всё менее возможным, маркетологи возвращаются к проверенному временем методу моделирования маркетингового микса (MMM). В марте Google представил…
В мире, где использование куки становится всё менее возможным, маркетологи возвращаются к проверенному временем методу моделирования маркетингового микса (MMM). В марте Google представил…
Forwarded from Machinelearning
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ Morphic
Это поисковая система с интерфейсом, генерирующая ответы на базе ИИ.
Morphic не только отвечает на вопросы, но и генерирует изображения ✨
Проект полностью с открытым кодом и уже находится на 4-м месте в таблице лидеров новичков на Git.
▪Github: github.com/miurla/morphic
▪Попробовать: morphic.sh
@ai_machinelearning_big_data
Это поисковая система с интерфейсом, генерирующая ответы на базе ИИ.
Morphic не только отвечает на вопросы, но и генерирует изображения ✨
Проект полностью с открытым кодом и уже находится на 4-м месте в таблице лидеров новичков на Git.
▪Github: github.com/miurla/morphic
▪Попробовать: morphic.sh
@ai_machinelearning_big_data
👍3
Forwarded from DevOps Docker
Деплой проводится с помощью Open Source CLI-утилиты werf. Она помогает организовать полный цикл доставки приложений в Kubernetes и рассматривает Git как единый источник истины для состояния развёрнутого приложения.
Статья рассчитана на тех, кто только начинает свой путь в мире облаков и кластеризации, рекомендую)
Docker
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Мультирегиональная репликация Apache Kafka: кластерные топологии
Статья о том, какую топологию может иметь кластер Apache Kafka при межрегиональной репликации по нескольким ЦОД и как это реализовать. Плюс описывается, чем брокеры-наблюдатели отличаются от подписчиков в Confluent Server и при чем здесь конфигурация подтверждений
Для репликации в нескольких регионах кластер Kafka может иметь следующую топологию:
- растянутые кластеры (stretched clusters), когда один кластер Kafka устанавливается в нескольких ЦОД. При этом используется протокол синхронной репликации Kafka.
- связанные кластеры (connected clusters) с асинхронной репликацией в нескольких регионах. В этом случае может использоваться внешняя система для копирования данных из одного или нескольких кластеров в другой.
Преимущество растянутого кластера в том, что он сохраняет смещения, а также обеспечивает быстрое аварийное восстановление и автоматическое переключение клиента при сбое без дополнительного кода.
Статья о том, какую топологию может иметь кластер Apache Kafka при межрегиональной репликации по нескольким ЦОД и как это реализовать. Плюс описывается, чем брокеры-наблюдатели отличаются от подписчиков в Confluent Server и при чем здесь конфигурация подтверждений
acks в продюсере.Для репликации в нескольких регионах кластер Kafka может иметь следующую топологию:
- растянутые кластеры (stretched clusters), когда один кластер Kafka устанавливается в нескольких ЦОД. При этом используется протокол синхронной репликации Kafka.
- связанные кластеры (connected clusters) с асинхронной репликацией в нескольких регионах. В этом случае может использоваться внешняя система для копирования данных из одного или нескольких кластеров в другой.
Преимущество растянутого кластера в том, что он сохраняет смещения, а также обеспечивает быстрое аварийное восстановление и автоматическое переключение клиента при сбое без дополнительного кода.
👍1🔥1