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
Где будет жить модель: в облаке или на девайсе?
📱 Девайс
К модели есть автономный доступ без интернета, входные данные не отправляются на третью сторону, нет расходов на сервер
Правда, стоит держать в уме, что если у вас сложная хитрая архитектура модели, которая включает еще и препроцессинг, то скорее всего ее будет непросто уложить на девайс. В таком случае всю логику с условиями надо будет переписать на тензорную арифметику
Например, можно рамещать ML модели, например, на смартфоны и платы Raspberry Pi, Arduino. Для этих целей предусмотрены соответствующие либы
- TensorFlow Lite
- Core ML от Apple
- Pytorch Mobile
☁️Облако
Можно использовать большую модель, легко обновлять у всех пользователей, масштабировать. Сейчас существует много удобных сервисов, которые сертифицированы по privacy и выставляют счета on-demand.
На том же AWS предлагаются образы AMI, с помощью которых ML либы предустанливаются на машину
📱 Девайс
К модели есть автономный доступ без интернета, входные данные не отправляются на третью сторону, нет расходов на сервер
Правда, стоит держать в уме, что если у вас сложная хитрая архитектура модели, которая включает еще и препроцессинг, то скорее всего ее будет непросто уложить на девайс. В таком случае всю логику с условиями надо будет переписать на тензорную арифметику
Например, можно рамещать ML модели, например, на смартфоны и платы Raspberry Pi, Arduino. Для этих целей предусмотрены соответствующие либы
- TensorFlow Lite
- Core ML от Apple
- Pytorch Mobile
☁️Облако
Можно использовать большую модель, легко обновлять у всех пользователей, масштабировать. Сейчас существует много удобных сервисов, которые сертифицированы по privacy и выставляют счета on-demand.
На том же AWS предлагаются образы AMI, с помощью которых ML либы предустанливаются на машину
Google AI for Developers
Google AI Edge | Google AI for Developers
🔥2👍1
tqdm для pandas
Небольшой hint по препроцессингу данных.
Есть такая удобная библиотека tqdm, которая позволяет прикреплять прогресс бар для циклических операций. В работе с pandas зачастую приходится применять циклы к датафреймам через метод apply (хотя это и не всегда оптимально). Если датафрейм большой, то это может занять много времени (поскольку pandas нагружает только один поток, но как бороться с этим поговорим отдельно). И чтобы понимать, сколько это займет времени можно воспользоваться расширением progress_apply в tqdm
Достаточно инициировать tqdm для пандаса и использовать progress_apply вместо apply.
#mltips
Небольшой hint по препроцессингу данных.
Есть такая удобная библиотека tqdm, которая позволяет прикреплять прогресс бар для циклических операций. В работе с pandas зачастую приходится применять циклы к датафреймам через метод apply (хотя это и не всегда оптимально). Если датафрейм большой, то это может занять много времени (поскольку pandas нагружает только один поток, но как бороться с этим поговорим отдельно). И чтобы понимать, сколько это займет времени можно воспользоваться расширением progress_apply в tqdm
tqdm.auto import tqdm
tqdm.pandas()
result = df.progress_apply(lambda row: row['label']+2, axis=1)
Достаточно инициировать tqdm для пандаса и использовать progress_apply вместо apply.
#mltips
👍11