ML Advertising
1.21K subscribers
134 photos
13 videos
2 files
192 links
Пишу про AdTech, AI и разработку

Для связи: @evgenii_munin
Download Telegram
Следующий вопрос подготовки к собесу System Design?

Как работает Twitter/ X?

Давайте, рассмотрим жизненный цикл:

1. Твит поступает через Write API
2. Write API направляет запрос в сервис Fanout
3. Сервис Fanout выполняет обработку твита и пишет в кеш Redis
4. Сервис Timeline используется для поиска сервера Redis, на котором находится твит с таймлайном домашней ленты пользователя
5. Пользователь получает таймлайн домашней ленты через сервис Timeline


Элементы поиска
• Ingester аннотирует и токенизирует твиты и далее индексирует полученные данные
• Earlybird хранит индексированные данные
• Blender создает таймлайны для поиска и ленты

Элементы отправки данных
• HTTP Push
• Mobile Push
👍3🔥3
Повторяем базу! Основные loss функции для классических ML алгоритмов

#base
🔥5🫡3👍2
🖥 Cheatsheet по Pandas

Держите годную шпаргалку по работе с библиотекой Pandas, тут описано самое основное, что может понадобиться в работе:

Группировка данных по заданным параметрам.

Объединение нескольких таблиц в одну сводную.

Очищение данных от дубликатов и невалидных строк или столбцов.

Вывод определенных значений по фильтрам или уникальности.

Использование агрегирующих функций, включая подсчет значений, суммы элементов, определение среднего значения.

Визуализация собранных данных.

Пользуйтесь)

@machinelearning_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
👍2
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. Теперь, когда и клиент, и сервер имеют одинаковый сеансовый ключ (симметричное шифрование), зашифрованные данные передаются по безопасному двустороннему каналу.
🔥2👍1
Как вы могли видеть из моих крайних постов, в настоящее время я готовлюсь конкретно к собесу по System Design и делюсь своими мыслями. Но чтобы пройти весь процесс найма на позицию ML Engineer, необходимо быть подкованным и в других областях

Алгоритмы и структуры данных
- Набивать руку на задачах из Leetcode
- Уметь обсуждать задачу и задавать правильные вопросы интервьюеру (и особенно делать это в условиях стресса)
- Уметь предлагать разные решения от brute-force до оптимального
- Уметь выделять edge кейсы и тестировтаь их

ML System Design
- Также как и в классическом System Design здесь нужно уметь предлагать построить пайплайн, но уже под ML задачу
- При этом нужно не только рассказать, про то, как собирать данные и обучать модель, но и обосновать ML и бизнес метрики, как использовать модель на проде, какие вспомогательные инструменты потребуются (например, кэширование, хранилища, серверы etc.)
- Нужно уметь предлагать решения для предотвращения инцидентов и мониторинга

Классический ML
- Несмотря на хайп LLM, большая часть ML задач решается с помощью классических алгоритмов
- Поэтому нужно обязательно уметь рассказывать про лог регрессию, деревья, GBDT модели
- Нужно уметь расписать на листочке порядок оптимизации моделей и функции активации
- Уметь рассказывать про облегчение и ускорение моделей


Для этих целей, я хотел бы рекомендовать вам канал Александра Исакова asisakov. Здесь вы сможете найти
- подробную информацию по подготовке и подсказки, которые вам упростят жизнь на собесе
- ссылки на материалы и открытые курсы доступные на ODS и не только
- советы по работе над софт-скиллами, которые также важны для разработчика

Го заценим! 🔥
🔥6👍21
Forwarded from DevOps Docker
🖥 Как устроены конвейеры CI/CD 💻

Схема взаимодействия контейнерных технологий в рамках работы с привычными инструментами может быть представлена так:

1️⃣Утилита podman с помощью Libpod API обращается к библиотеке libpod, которая вызывает низкоуровневый container runtime (по умолчанию утилиту runc)
containers/podman
Podman Commands

2️⃣Утилита docker с помощью Docker API вызывает сервис dockerd
docker/cli
Docker CLI reference
Docker architecture
Docker API

3️⃣Сервис dockerd вызывает сервис containerd
Dockerd reference

4️⃣Сервис containerd вызывает низкоуровневый container runtime (по умолчанию утилиту runc)
containerd/containerd
Containerd Scope and principles

5️⃣Сервис kubelet с помощью протокола CRI вызывает сервис container runtime (например, containerd или crio)
Container Runtime Interface
Container Runtimes
CRI: the Container Runtime Interface

6️⃣Сервис containerd вызывает низкоуровневый container runtime (по умолчанию runc)
Containerd CRI

7️⃣Сервис cri-o вызывает низкоуровневый container runtime (по умолчанию runc)
cri-o/cri-o

8️⃣Утилита OCI 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.

Вы можете использовать его с pytorch.compile для повышения эффективности. И, конечно же, он также поддерживает обучение с несколькими графическими процессорами через DDP и SDP SDP.

Github

@ai_machinelearning_big_data
👍3🔥2
👍1
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
👍3🔥2
Технический стек Netflix
👍4👏1
👍2
Что такое cookie и как работает cookie-sync?

ЧАСТЬ 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
👍4
ML Advertising
Photo
Что такое cookie и как работает cookie-sync?

ЧАСТЬ 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

Сохраняем к себе!
🔥7👍1
ML Advertising
Traffic Attribution При проведении рекламной кампнии, когда мы продвигаем продукт на разных площадках, нам важно знать откуда приходит больше всего пользователей, и какой KPI на каждой из них. Чтобы это оценить, есть 2 подхода: 1️⃣ bottom-up – когда мы физически…
Ранее я уже писал про метод Marketing Mix Modeling, который помогает анализировать, откуда приходит пользовательский трафик для рекламной кампании. Это особенно актуально в условиях ухода от third-party cookie и ужесточения регламента приватности данных. Но чтобы реализовать MMM, нужны инструменты, например LightweightMMM от Google. В связи с этим, я хотел бы порекомендовать пост Димы, в котором он описывает основные MMM модели с ссылками
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
👍3