Всем привет! Давно не списывались
(честно, я был в отпуске после выступления на Тех Дей)
Сейчас снова приступаю к исследованиям ML инфраструктуры и хочу с вами делиться контентом
Решил посмотреть, можно ли ресурс в kubernetes nvidia.com/gpu (который отвечает за наличие и емкость GPU на нодах) переименовать в конкретную GPU, например nvidia.com/A100
По использованию MIG я знаю что есть конфиг, где мы можем определить названия ресурсов для разных партиций. Можно ли сделать такой же конфиг для обычных GPU?
Логика регистрации ресурсов находиться в этом файле в nvidia device plugin - и к сожалению кроме как обычных nvidia.com/gpu или преобразований с MIG изменить название ресурса нельзя. Только если переписывать код, например так
Но в целом тогда как решить следующую проблему - аллоцирование подов на конкретную GPU?
Можно использовать nodeSelector и лейбл nvidia.com/gpu.product - который сетит название GPU. Выглядить это будет так
Такие вот дела! Ставьте 🔥 если интересны такие посты про мои исследования.
Еще думаю переименуюсь все таки в MLOps...🕺 А то контентик в основном про ML сейчас
(честно, я был в отпуске после выступления на Тех Дей)
Сейчас снова приступаю к исследованиям 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...
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍2
Кастомные формы в Jupyterhub
Привет!
Сейчас столкнулся с задачей - как сделать кастомную формочку в jupyterhub для создания инстансов. Пока требуется просто ручками вводить название образа, либо выбирать дефолтный.
Сначала я хотел сделать по этой замечательной статье Саши Егорова (у него кстати тоже классный канал про MLOps) через шаблоны jinja2, но потом наткнулся на немного другой вариант...
Если вы используете jupyterhub хелм чарт 3.8.8 версии (возможно есть и в версиях пониже, нужен kubespawner 6.1.0+), то можно воткнуть вот такое изящное решение с использованием profileList и unlisted_choice
И выйдет примерно также, как на скриншоте! Еще и валидацию можно прикрутить через regexp - ну кайф! Может еще можно другие параметры kubespawner переопределить так, нужно пробывать...
Привет!
Сейчас столкнулся с задачей - как сделать кастомную формочку в 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, чем отличается от текущих подходов и какие возможности открывает такая механика. Так что следите за обновлениями🤩
Ребята привет!
Смотрите как интересно сейчас развивается поддержка 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 оператор!) - пишите мне в личку) Сама вакансия здесь
Уже на следующей неделе я буду выступать на 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 для визуализации трафика
На этом список источников я закончу, надеюсь вы найдете что то для себя полезное! Те, кто не смог посетить мой доклад - скоро я выложу статьи на хабр с перессказом, где дополню его небольшими уточнениями, так что следите за новостями)
Если у вас остались вопросы после моего доклада - вы можете задать их под этим постом в комментариях или выцепить меня на конференции) Спасибо что послушали доклад, вы классные!😊
По следам моего доклада на 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 части, так что следите за каналом!
Всем привет) Мы выпустили 1 часть статьи по моему докладу на хайлоуд
Здесь я прописал требования к платформе, как мы начинали с Seldon и почему от него отказались и итоговый вид нашей платформы на текущий момент времени!
Так что самое время начать рабочую неделю с просмотра новой статьи)
В следующей части уже будет хардкорное техническое мясо, так что не переживайте) Там я расскажу как мы реализовывали автоскейлинг ресурсов, canary deploy, инференс-граф и как можно автоматизировать подбор конфигурации triton. Уже скоро выпустим 2 части, так что следите за каналом!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12
Калькулятор расчета GPU памяти для LLM
Привет! Смотрите какую классную штуку нашел - калькулятор расчета памяти GPU для ваших LLMок
Если вы раньше задумывались, сколько нужно памяти для обучения или инференса, то можно использовать этот проект. Посчитает вам и уже заготовленные ллмки, и собранные по вышим параметрам.
Так что налетайте)
Привет! Смотрите какую классную штуку нашел - калькулятор расчета памяти GPU для ваших LLMок
Если вы раньше задумывались, сколько нужно памяти для обучения или инференса, то можно использовать этот проект. Посчитает вам и уже заготовленные ллмки, и собранные по вышим параметрам.
Так что налетайте)
Streamlit
LLM Memory Requirements
https://llm-system-requirements.streamlit.app
👍10❤1
Вторая часть статьи про Inference платформу!
Ну что, ребята, в последнюю пятницу этого года я завершаю цикл публикаций статей на хабр второй частью про инференс платформу.
В статье я рассказал как мы реализовывали автоскейлинг ресурсов, canary deploy, инференс-граф и как можно автоматизировать подбор конфигурации triton.
Самое лучшее время, чтобы заварить себе чашечку горячей жидкости и почитать про инференс платформы)
В следующем году также ждите новые статьи от меня! Уже планирую подробнее расписать про свой репозиторий с triton туториалами, про model navigator и analyzer.
Ну что, ребята, в последнюю пятницу этого года я завершаю цикл публикаций статей на хабр второй частью про инференс платформу.
В статье я рассказал как мы реализовывали автоскейлинг ресурсов, canary deploy, инференс-граф и как можно автоматизировать подбор конфигурации triton.
Самое лучшее время, чтобы заварить себе чашечку горячей жидкости и почитать про инференс платформы)
В следующем году также ждите новые статьи от меня! Уже планирую подробнее расписать про свой репозиторий с triton туториалами, про model navigator и analyzer.
🔥12
Запись доклада с Highload++ 24
Спешу вам сообщить, что выложили записи докладов с хайлоуда!
Посмотреть мой рассказ про инференс платформу можно здесь. Так что помимо текстового формата в двух статьях теперь можно послушать мой рассказ и посмотреть презентацию🔥
Думаю особенно всем будет интересна секция ответов на вопросы, там очень много интересовались model analyzer и navigator)
Спешу вам сообщить, что выложили записи докладов с хайлоуда!
Посмотреть мой рассказ про инференс платформу можно здесь. Так что помимо текстового формата в двух статьях теперь можно послушать мой рассказ и посмотреть презентацию
Думаю особенно всем будет интересна секция ответов на вопросы, там очень много интересовались model analyzer и navigator)
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Nvidia Triton Inference Server: строим production ML без разработчиков / Антон Алексеев
Крупнейшая профессиональная конференция для разработчиков высоконагруженных систем HighLoad++ 2024
2 и 3 декабря 2024.
Москва, Кампус СКОЛКОВО
Презентация и тезисы:
https://highload.ru/moscow/2024/abstracts/13369
В докладе я поделюсь опытом разработки…
2 и 3 декабря 2024.
Москва, Кампус СКОЛКОВО
Презентация и тезисы:
https://highload.ru/moscow/2024/abstracts/13369
В докладе я поделюсь опытом разработки…
🔥13
Итоги 2024 года
Друзья, близится к концу 2024 год! В декабре 2023 я первый раз выступил на большую аудиторию с докладом на нашем Selectel Admin митапе - после выступления я понял, что мне нравится делиться опытом на внешнюю аудиторию, нетворкать с людьми и готовить интересные доклады. В тот момент я задумался, чего я могу ждать от 2024?
И на самом деле 2024 оказался наполнен различными выступлениями, о которых я бы хотел вспомнить в этом посте)
1️⃣ Начался год с DevOps Conf - рассказал про наш пайплайн доставки платформы клиенту
2️⃣ Далее ML митап, где я и Ефим Головин (у которого также появился крутой канал) рассказали, как мы подбираем инфраструктуру для ML
3️⃣ Побывал в дискуссии Admin митапа DevOps vs Системный администратор
4️⃣ Рассказал про GPU оператор и шеринг видеокарт на Pycon 2024
5️⃣ Показал как работает автоскейлинг в k8s на вебинаре
6️⃣ Презентовал наш новый продукт - инференс платформа на Selectel TechDay
7️⃣ И показал технические аспекты реализации инференс платформы на HighLoad 2024
Также из результатов за этот год:
🎧 записался в двух подкастах, один из них выйдет в фервале
🏆 получил награду в Selectel за амбоссадорство компании как посол бренда
✒️ написал 6 статьей на Хабр про наши исследования
Год выдался очень продуктивным и надеюсь в следующем году мы не будем снижать поставленной планки! Планирую запустить курс по ML инфраструктуре и выйти на консалтинг)
Всем желаю в следующем году успехов, счастья и конечно же work life balance, без которого никуда) Храните свою менталочку в лучшем состоянии, ведь она как раз и помогает нам достигать успехов и двигаться вперед! Всех обнял, с новым годом!❤️🔥🎄
Спасибо вам огромное, что читаете мой канал! Вас уже почти 300 человечков) В следующем году будет больше и круче!
Друзья, близится к концу 2024 год! В декабре 2023 я первый раз выступил на большую аудиторию с докладом на нашем Selectel Admin митапе - после выступления я понял, что мне нравится делиться опытом на внешнюю аудиторию, нетворкать с людьми и готовить интересные доклады. В тот момент я задумался, чего я могу ждать от 2024?
И на самом деле 2024 оказался наполнен различными выступлениями, о которых я бы хотел вспомнить в этом посте)
1️⃣ Начался год с DevOps Conf - рассказал про наш пайплайн доставки платформы клиенту
2️⃣ Далее ML митап, где я и Ефим Головин (у которого также появился крутой канал) рассказали, как мы подбираем инфраструктуру для ML
3️⃣ Побывал в дискуссии Admin митапа DevOps vs Системный администратор
4️⃣ Рассказал про GPU оператор и шеринг видеокарт на Pycon 2024
5️⃣ Показал как работает автоскейлинг в k8s на вебинаре
6️⃣ Презентовал наш новый продукт - инференс платформа на Selectel TechDay
7️⃣ И показал технические аспекты реализации инференс платформы на HighLoad 2024
Также из результатов за этот год:
🎧 записался в двух подкастах, один из них выйдет в фервале
🏆 получил награду в Selectel за амбоссадорство компании как посол бренда
✒️ написал 6 статьей на Хабр про наши исследования
Год выдался очень продуктивным и надеюсь в следующем году мы не будем снижать поставленной планки! Планирую запустить курс по ML инфраструктуре и выйти на консалтинг)
Всем желаю в следующем году успехов, счастья и конечно же work life balance, без которого никуда) Храните свою менталочку в лучшем состоянии, ведь она как раз и помогает нам достигать успехов и двигаться вперед! Всех обнял, с новым годом!❤️🔥🎄
Спасибо вам огромное, что читаете мой канал! Вас уже почти 300 человечков) В следующем году будет больше и круче!
👍11❤6🔥1
Привет! Тут вышел подкаст с ods завтрака со мной, так что начать первый рабочий день 25 года предлагаю именно с него)
❤6