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

Для связи: @evgenii_munin
Download Telegram
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
Forwarded from DevOps Docker
🤓🖥 Настраиваем CI/CD с GitHub Actions и werf: инструкция для новичков

В этой статье рассматривается, как настроить пайплайн CI/CD в GitHub: подготовка репозитория, заливание приложения, создание файлов конфигурации GitHub Actions.
Деплой проводится с помощью 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 и при чем здесь конфигурация подтверждений acks в продюсере.

Для репликации в нескольких регионах кластер Kafka может иметь следующую топологию:

- растянутые кластеры (stretched clusters), когда один кластер Kafka устанавливается в нескольких ЦОД. При этом используется протокол синхронной репликации Kafka.

- связанные кластеры (connected clusters) с асинхронной репликацией в нескольких регионах. В этом случае может использоваться внешняя система для копирования данных из одного или нескольких кластеров в другой.

Преимущество растянутого кластера в том, что он сохраняет смещения, а также обеспечивает быстрое аварийное восстановление и автоматическое переключение клиента при сбое без дополнительного кода.
👍1🔥1