Anton Alekseev | Инфраструктура для AI и ML
1.09K subscribers
44 photos
3 videos
4 files
88 links
Привет, я Антон @antonaleks
Пишу здесь про инфраструктуру для AI/ML
https://ml-infra.pro/
Download Telegram
В новой 31 версии k8s добавят интересную штуку - Read Only Volumes Based On OCI Artifacts

Можно будет внутри пода монтировать в определенное место другой контейнер, что дает нам возможность (с точки зрения ML)
1. упаковывать и версионировать веса модели в контейнеры и хранить их в container registry
2. тоже самое делать с конфигами (например для того же трайтона)

Сейчас например часто используется s3 для хранение тех же весов моделей (артефакты от обучения), но это дело не очень хорошо версионируется.
Возможно с новым подходом мы станем заливать артефакты обучения в container registry и уже таким образом использовать их в кубе)

И может если прикрутить туда снепшотеры, или хотябы в zstd конвертировать, то скорость скачивания и развертывания весов станет получше...
❤2🔥2
Всем привет!
Уже через час состоится вебинар, где я буду рассказывать как с помощью GPU-оператор настроить кластер k8s для работы с видеокартами.

Все это вы сможете посмотреть по ссылке - необходимо только зарегистрироваться)

Подключайтесь, на практике пройдемся по базовой настройке, попробуем развернуть GPT-2 инференс и настроить автоскейлинг нод по входящему трафику! Также покажу как изи настроить разделение GPU с помощью MIG (все примеры будут доступны в репозитории на github)
🔥6😎2
Хей ребята, всем привет!
На следующей неделе у нас состоится митап по Kubernetes! В этот раз я буду отдыхать и слушать доклады на уютных пуфиках, и приглашаю вас послушать вместе со мной) Как всегда можно будет выиграть тирексика, перекусить пиццей и пивом а также после митапа будет афтепати🍻🍻🍻

🕓 18 сентября, 12:00
📍 Онлайн и офлайн на Цветочной, 19

Будут доклады от
- Selectel про кубер на выделенных серваках (фича топ, такого особо то и не встретишь на рынке)
- Flant про кубер на гибриде облака и on premise
- Магнит Tech про распределенный трейсинг
- Hilbert Team про гитопс и арго CD

И мы с вами подумаем как это переиспользовать все для инфраструктуры в ML)

Чтобы попасть на митапчик нужно зарегистрироваться по ссылке.
🔥10👾1
Привет!

Сегодня вышла моя новая статья по мотивам прошедшего вебинара - про автоскейлинг инференсов в kubernetes 👩‍💻

Там я пошагово расписал как работает в облаке автоскейлинг ресурсов, если у вас используются GPU, а также показал на практике как можно реализовать такую схему у себя с настоящим инференсом (брал за основу фреймворк VLLM и модель chat gpt2)

Так что налетайте читать статью 😎😎😎
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11💅2
Всем привет!
В четверг-пятницу я побывал на AI Conf от Онтико, конференции про прикладной ML. Было круто, площадка топ в центре Мск, доклады тоже были супер! Решил выписать несколько, которые мне запомнились

- За рамками сценария: непрерывное тестирование для адаптивных и безопасных LLM-систем
https://aiconf.ru/2024/abstracts/12981

Evidently AI выкладывают кучу полезной инфы по ML и MLOps у себя на сайте, а здесь даже приехали с докладом. Было интересно послушать как тестировать LLM приложения, когда их пытаются вытащить из контекста корпорации)

- Мастер-класс «Получение высококачественных данных для обучения ИИ-моделей»
https://aiconf.ru/2024/abstracts/id5647224
Сходил на мастер-класс по краудсорсингу. Оказывается у яндекса есть крутой инструмент Яндекс.Задания + toloka, которая позволяет автоматизировать процесс лейблинга данных. Через АПИ создаешь задания на лейблинг, реальные люди видят это и начинают лейблить датасеты, далее его можно взять и дообучить свою модельку. Мы пробовали на YoloV, получились интересные результаты. Больше всего поразило как быстро после публикации задания люди начали их выполнять)

- Разметка будущего: как GPT помогает обучать модели?
https://aiconf.ru/2024/abstracts/id5602978
В продолжении мастер класса интересно показали как использовать GPT для тех же операций лейблинга. В целом результаты гуд

- Как «Писец» на «Тотальный диктант» ходил, или Пара слов о робастном распознавании речи
https://aiconf.ru/2024/abstracts/12975
История про дообучение whisper модели для улучшений транскрибации русского языка. Учили на подкастах) А также выложили ее в опенсорс https://huggingface.co/bond005/whisper-large-v3-ru-podlodka

- Эволюция Transformer: как меняется самая успешная архитектура в DL
https://aiconf.ru/2024/abstracts/id5523026
Большая история архитектуры transformers. Интересно было послушать про ее эволюцию)

Вроде можно даже посмотреть презентацию здесь https://mellain.github.io/data/AI_Conf_Transformer_Arcitecture_Full_Slides_2024.pdf


Возможно через время начнут выкладывать доклады в открытый доступ, тогда можно будет и вам глянуть видео)
👍10🔥5👾1
Всем привет!
Уже в этот четверг я буду выступать с рассказом про наш новый продукт Inference платформа на базе Triton Nvidia Server на конференции TechDay.

Вы можете посмотреть онлайн, если зарегистрируетесь по ссылке

Я расскажу про жизненый цикл модели, как будет не очень хорошо делать свои собственные инференсы, а также как устроена наша платформа

Расскажу про автоскейлинг, как мы избавляемся от даунтайма с помощью canary деплоя и как построить инференс граф с помощью Ray!

Также кто будет оффлайн - покажу демо по платформе, как ей пользоваться)

Еще у нас будет стенд, где расскажем что за дела у AMD и как он конкурирует с NVIDIA в ML части. Регистрируйтесь и присоединяйтесь!
🔥8❤1😎1
Привет, привет, привееет!
Вчера на тех дее мы анонсировали наш новый продукт, разработчиком которой я непосредственно являюсь - Инференс платформа!
Платформа сделана на базе nvidia triton server, который вы часто можете видеть в моих статьях на хабр. А ведь это действительно отличный опенсорс инференс, который закрывает кучу болей связанных с оптимизацией его работы на уровне железа.

Я рассказывал про ее основные фичи в докладе, который уже доступен по ссылке. В этот раз он больше продуктовый - так как конференция про наши продукты, а не про технику. Но при этом он раскрывает причины разработки такой платформы и основную ее функциональность) Так что налетайте смотреть!

Но если вы интересуетесь с какими проблемами мы сталкивались и как их решали при разработки платформы - я рад вам сообщить что в декабре буду рассказывать технические нюансы на HighLoad++
Там я уже расскажу почему мы отказались от Seldon, как реализовывали автоскейлинг, канареечный деплой и инференс граф🔥🔥🔥
🔥9👍4👾1
Всем привет! Давно не списывались
(честно, я был в отпуске после выступления на Тех Дей)

Сейчас снова приступаю к исследованиям ML инфраструктуры и хочу с вами делиться контентом

Решил посмотреть, можно ли ресурс в kubernetes nvidia.com/gpu (который отвечает за наличие и емкость GPU на нодах) переименовать в конкретную GPU, например nvidia.com/A100

По использованию MIG я знаю что есть конфиг, где мы можем определить названия ресурсов для разных партиций. Можно ли сделать такой же конфиг для обычных GPU?

Логика регистрации ресурсов находиться в этом файле в nvidia device plugin - и к сожалению кроме как обычных nvidia.com/gpu или преобразований с MIG изменить название ресурса нельзя. Только если переписывать код, например так


for i := 0; i < deviceCount; i++ {
device, err := nvml.DeviceGetHandleByIndex(i)
if err != nil {
return fmt.Errorf("failed to get device handle: %v", err)
}

model, err := nvml.DeviceGetName(device)
if err != nil {
return fmt.Errorf("failed to get device name: %v", err)
}

// Register resource with the model name
resourceName := "nvidia.com/" + strings.ToLower(model)
_ = config.Resources.AddGPUResource("*", resourceName)
}


Но в целом тогда как решить следующую проблему - аллоцирование подов на конкретную GPU?

Можно использовать nodeSelector и лейбл nvidia.com/gpu.product - который сетит название GPU. Выглядить это будет так


apiVersion: v1
kind: Pod
metadata:
name: gpu-pod
spec:
containers:
- name: gpu-container
image: nvidia/cuda:11.0-base
resources:
limits:
nvidia.com/gpu: 1
nodeSelector:
nvidia.com/gpu.product: "A100-SXM4-40GB" # Используйте метку для выбора узла


Такие вот дела! Ставьте 🔥 если интересны такие посты про мои исследования.
Еще думаю переименуюсь все таки в MLOps...🕺 А то контентик в основном про ML сейчас
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍2
Channel name was changed to «MLOps Цыган»
Кастомные формы в Jupyterhub

Привет!
Сейчас столкнулся с задачей - как сделать кастомную формочку в jupyterhub для создания инстансов. Пока требуется просто ручками вводить название образа, либо выбирать дефолтный.
Сначала я хотел сделать по этой замечательной статье Саши Егорова (у него кстати тоже классный канал про MLOps) через шаблоны jinja2, но потом наткнулся на немного другой вариант...

Если вы используете jupyterhub хелм чарт 3.8.8 версии (возможно есть и в версиях пониже, нужен kubespawner 6.1.0+), то можно воткнуть вот такое изящное решение с использованием profileList и unlisted_choice



profileList:
- display_name: "Demo"
description: "Demo entry 1."
slug: "demo-1"
default: true
profile_options:
image:
display_name: "Image"
choices:
base:
display_name: "jupyter/base-notebook:latest"
kubespawner_override:
image: "jupyter/base-notebook:latest"
minimal:
display_name: "jupyter/minimal-notebook:latest"
default: true
kubespawner_override:
image: "jupyter/minimal-notebook:latest"
unlisted_choice:
enabled: true
display_name: "Other image"
display_name_in_choices: "Enter image manually"
validation_regex: "^jupyter/.+:.+$"
validation_message: "Must be an image matching"
kubespawner_override:
image: "{value}"


И выйдет примерно также, как на скриншоте! Еще и валидацию можно прикрутить через regexp - ну кайф! Может еще можно другие параметры kubespawner переопределить так, нужно пробывать...
1🔥10
Нативная поддержка GPU ресурсов в K8S

Ребята привет!
Смотрите как интересно сейчас развивается поддержка GPU в K8S.
Ранее я вам рассказывал про новую фишку DRA - Dynamic Resource Allocation в кубере. Так вот вчера на KubeCon подробно рассказывали про эту фичу в контексте использования GPU).

Нас ждет новый интересный вариант определения ресурсов GPU с расширенными возможностями)

Уже с 30 версии доступен нативный шеринг ГПУ с помощью таймслайсинга и MPS.

с 33 версии будет доступен динамический MIG (что сейчас только кастыльными методами можно реализовать)

Конечно поделюсь с вами исследованиями как такая фича может нам помочь с менеджментом GPU в K8S, чем отличается от текущих подходов и какие возможности открывает такая механика. Так что следите за обновлениями 🤩
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍4❤2
Ребята всем привет!

Уже на следующей неделе я буду выступать на Highload++ 2024 - расскажу про наш опыт разработки Inference платформы на базе Nvidia Triton Server.
Поделюсь с вами следующим
- Почему мы отказались от Seldon
- Как реализовали канареечный деплой моделей
- Каким образом происходит автоскейлинг нод с GPU в k8s
- Как создать цепочку моделей с помощью Ray
- Что даст оптимизация triton на GPU и как подбирать лучшую конфигурацию автоматически
- Как мы реализовали UI без фронтендеров

Приходите на выступление 2 декабря в 10:00 в зал 11! Отвечу на ваши попросы и просто поделимся опытом)

Также на правах рекламы - сейчас мы выходим на вторую стадию разработки нашей платформы и ищем GO разработчика в нашу команду! Если вы интересуетесь ML и имеете опыт в Go разработке (а предстоит писать бекенд к нашей платформе и возможно даже k8s оператор!) - пишите мне в личку) Сама вакансия здесь
🔥11
Как мы строили Inference платформу - источники

По следам моего доклада на HighLoad выкладываю источники, которые вам встречались в ходе рассказа. Так сказать все в одном месте в одном сообщении🐹

1. Istio + Canary deploy

Как работает Istio
Как реализовать basic auth
Canary deploy в Istio

2. Autoscaling

Что это такое?
Автоскейлинг в k8s с GPU нодами
Node autoscaler в k8s
Как работает GPU оператор

Ускоряем автоскейлинг
Выносим кеш моделей в PVC S3
Lazy loading образов - как помогает ускорить пуллинг контейнеров
eStargz, SOCI, Nydus - снепшоттеры для ленивой загрузки образов
ZSTD формат образов - быстрее чем gzip

Шерим GPU
MIG, MPS, Timeslicing - технологии шеринга GPU и их сравнение
Бенчмарк для замера производительности GPU на основе YOLOv5

3. Inference Graph

Ray Serve, Ray Cluster - граф на нескольких нодах
Triton ансамбль моделей - граф на одной ноде

4. Оптимизация Triton

Как работает оптимизация Triton
Perf_client - делает нагруженные тесты трайтона
Model Analyzer - подберет конфиг тритона
Model Navigator - подберет формат модели

5. UI интерфейс без разработчиков

Istio дашборд
DCGM дашборд
Triton дашборд
Kiali для визуализации трафика


На этом список источников я закончу, надеюсь вы найдете что то для себя полезное! Те, кто не смог посетить мой доклад - скоро я выложу статьи на хабр с перессказом, где дополню его небольшими уточнениями, так что следите за новостями)

Если у вас остались вопросы после моего доклада - вы можете задать их под этим постом в комментариях или выцепить меня на конференции) Спасибо что послушали доклад, вы классные!😊
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥24
Вышла первая часть статьи про inference платформу!

Всем привет) Мы выпустили 1 часть статьи по моему докладу на хайлоуд🕺🕺🕺

Здесь я прописал требования к платформе, как мы начинали с Seldon и почему от него отказались и итоговый вид нашей платформы на текущий момент времени!

Так что самое время начать рабочую неделю с просмотра новой статьи)

В следующей части уже будет хардкорное техническое мясо, так что не переживайте) Там я расскажу как мы реализовывали автоскейлинг ресурсов, canary deploy, инференс-граф и как можно автоматизировать подбор конфигурации triton. Уже скоро выпустим 2 части, так что следите за каналом!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12
Калькулятор расчета GPU памяти для LLM

Привет! Смотрите какую классную штуку нашел - калькулятор расчета памяти GPU для ваших LLMок

Если вы раньше задумывались, сколько нужно памяти для обучения или инференса, то можно использовать этот проект. Посчитает вам и уже заготовленные ллмки, и собранные по вышим параметрам.

Так что налетайте)
👍10❤1
Вторая часть статьи про Inference платформу!

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

В статье я рассказал как мы реализовывали автоскейлинг ресурсов, canary deploy, инференс-граф и как можно автоматизировать подбор конфигурации triton.

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

В следующем году также ждите новые статьи от меня! Уже планирую подробнее расписать про свой репозиторий с triton туториалами, про model navigator и analyzer.
🔥12
Запись доклада с Highload++ 24

Спешу вам сообщить, что выложили записи докладов с хайлоуда!

Посмотреть мой рассказ про инференс платформу можно здесь. Так что помимо текстового формата в двух статьях теперь можно послушать мой рассказ и посмотреть презентацию🔥

Думаю особенно всем будет интересна секция ответов на вопросы, там очень много интересовались model analyzer и navigator)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13