Роадмап продакшен ML-платформы Путь от первой GPU в кластере до платформы, на которой команды сами обучают и деплоят модели. На каждом шаге: какая проблема появляется, как её решать и где я об этом писал или рассказывал.
На каком уровне твоя команда? Проверь по уровням зрелости MLOps →
DAY 0 фундамент DAY 1 запуск DAY 2 продакшен ЗРЕЛОСТЬ 1 → 5 DAY 0 · ФУНДАМЕНТ Стартовый набор без GPU
Если GPU и LLM пока нет, платформа всё равно нужна. Для небольшой команды хватит пяти вещей:
Git с ревью и базовый CI один трекер экспериментов: MLflow или ClearML оркестратор: Airflow или Prefect сервис модели в контейнере с единым способом выката и отката базовый мониторинг с заделом под качество модели Цель простая: эксперименты повторяются, деплой повторяемый, прод наблюдаемый. Feature store, реестр как продукт и шаблоны - потом.
01 GPU в Kubernetes Проблема: GPU в кластере есть, а поды её не видят или падают на несовместимой CUDA.
драйверы и GPU Operator одной версией на все ноды матрица совместимости драйвер / CUDA / фреймворк ноды и кластер описаны кодом 02 Подбор железа под модель Проблема: Модель не влезла в карту, или влезла, но под KV-кэш не осталось места.
считать память под веса и KV-кэш до покупки выбирать точность под железо: bf16, FP8, int4 смотреть на пропускную способность, а не только на VRAM DAY 1 · ЗАПУСК 03 Первый сервинг Проблема: Модель живёт в ноутбуке у DS, а в прод её выкатывают руками.
один сервер инференса: Triton или vLLM модель как артефакт в реестре, а не файл на диске деплой через CI, а не через ssh 04 Self-service для ML-команд Проблема: Каждый ноутбук и пайплайн заводится тикетом в DevOps.
JupyterHub с профилями под GPU пайплайны и обучение в Kubeflow квоты на команду вместо ручной раздачи карт DAY 2 · ПРОДАКШЕН 05 Холодный старт Проблема: Новая реплика поднимается минутами: образы и веса на десятки гигабайт.
ленивая загрузка образов: eStargz, SOCI, Nydus веса отдельно от образа: S3, OCI-тома быстрая загрузка весов в GPU 06 Автоскейлинг инференса Проблема: HPA по CPU не видит нагрузку на GPU, а пики приходят быстрее, чем стартуют реплики.
скейлить по очереди и concurrency KEDA или Knative вместо голого HPA держать минимум тёплых реплик 07 Шеринг GPU Проблема: Под маленькую модель отдали целую A100, и она простаивает.
MIG там, где нужна изоляция time-slicing и MPS для dev и лёгких нагрузок HAMi как альтернатива без MIG 08 Утилизация и скедулинг Проблема: GPU заняты, но не загружены, а команды стоят в очереди.
мерить реальную загрузку, а не аллокацию квоты и приоритеты в Kueue вытеснение и fair share между командами 09 Платформа целиком Проблема: Каждая команда строит свой маленький MLOps для обучения и инференса, и решения расходятся.
общий горизонтальный слой для обучения и инференса, а модели остаются у продуктовых команд платформа как внутренний продукт: golden path, шаблоны деплоя и стандартные пайплайны наблюдаемость по SLO, а не «под живой», обновления драйверов и моделей без даунтайма не строить «как у бигтеха», пока нет такого масштаба 10 Безопасный выкат модели Проблема: Новая модель уходит сразу на всех, а при просадке её откатывают руками.
canary или blue-green: сначала малая доля трафика A/B на доле пользователей с бизнес-метриками, а не только с accuracy автооткат, если метрики просели 11 Мониторинг качества, а не только аптайма Проблема: Сервис жив и отвечает 200 OK, а модель тихо деградирует.
дрифт входных данных и прогноз против факта бизнес-метрики и алерты рядом с RPS и задержкой логи и трейсы, чтобы найти причину, а не только симптом Уровни зрелости MLOps Day 0/1/2 - это порядок, в котором строят инфраструктуру. Зрелость - про то, как команда работает с моделями. Отметь, что у вас уже есть, и увидишь свой уровень и что закрыть дальше. Критерии - мой пересказ публичных моделей зрелости Microsoft Azure и Google Cloud . Без честной оценки легко оптимизировать не то: на уровне 1-2 рано думать о шеринге GPU.
1 Ручной режимточка отсчёта
Ноутбуки без структуры, эксперименты нигде не записаны, данные готовят руками, модель выкатывают руками или не выкатывают вовсе. Мониторинга нет. Отсюда стартуют почти все.
2 ПовторяемоКод в Git, обучение запускается скриптом, есть CI с тестами. Результат можно повторить, но многое держится на людях.
3 ВоспроизводимоОбщий трекер и реестр, автоматическое обучение, данные с версиями. Любую модель в проде можно пересобрать.
4 АвтоматизированоВыкат на долю трафика с автооткатом, мониторинг качества с алертами, CI/CD проверяет модель перед продом.
5 СамоулучшениеЦикл от данных до мониторинга идёт без ручных шагов: дрифт сам запускает переобучение, у команд есть шаблоны.
Твоя команда
Уровень 1 · Ручной режим Уровень 2 · Повторяемо Уровень 3 · Воспроизводимо Уровень 4 · Автоматизировано Уровень 5 · Самоулучшение Что закрыть дальше до уровня 2 · Повторяемо
до уровня 3 · Воспроизводимо
до уровня 4 · Автоматизировано
до уровня 5 · Самоулучшение
Версионирование Весь код лежит в Git, изменения проходят ревьюGit Эксперименты Обучение запускается скриптом с параметрами, а не ячейками ноутбукаExperiment tracking Envs Оркестрация Шаги от данных до модели описаны в коде и запускаются одной командойML pipelines Данные Подготовка данных оформлена скриптом, а не ручной выгрузкойData eng Развёртывание Модель упакована в контейнер и выкатывается по записанной инструкциишаг 03 · Первый сервинг docker Model serving Мониторинг Есть базовые алерты: сервис модели жив и отвечаетMonitoring CI/CD CI гоняет линтер и тесты на каждый merge requestCI/CD Testing Версионирование Данные и модели версионируются: у каждой модели видно, на какой версии данных она обученаVersioning Эксперименты Все запуски в общем трекере, лучшие модели в реестре со ссылкой на свой запускшаг 04 · Self-service для ML-команд Experiment tracking Оркестрация Обучение идёт автоматическим пайплайном на общей инфраструктуре, а не на машине одного DSшаг 04 · Self-service для ML-команд ML pipelines DS workspace Данные Есть каталог данных и общие витрины признаков, данные проверяются перед обучениемData eng Data validation Развёртывание Инференс берёт модель только из реестра, а не из файла на дискешаг 03 · Первый сервинг Model serving Experiment tracking Мониторинг Кроме аптайма видны метрики самой модели: качество и дрифтшаг 11 · Мониторинг качества, а не только аптайма ML monitoring CI/CD Пайплайн сам собирает образ и деплоит его без ручных шаговшаг 03 · Первый сервинг CI/CD docker Версионирование От модели в проде можно дойти до кода, данных и эксперимента, из которых она получиласьVersioning Experiment tracking Эксперименты Новая модель автоматически сравнивается с текущей на одних и тех же тестовых наборахModel metrics Оркестрация Переобучение запускается по расписанию или по событию, без человекаML pipelines Данные Проверка данных останавливает пайплайн и шлёт алертData validation Развёртывание Новая версия выходит на долю трафика (canary, blue-green, A/B) и откатывается автоматическишаг 10 · Безопасный выкат модели шаг 06 · Автоскейлинг инференса Rollout & A/B Мониторинг Бизнес-метрики и дрифт заведены в алерты рядом с RPS и задержкойшаг 11 · Мониторинг качества, а не только аптайма ML monitoring Monitoring CI/CD CI/CD работает с реестром и не пускает в прод модель, которая не прошла проверкушаг 10 · Безопасный выкат модели CI/CD Model metrics Версионирование Версии, lineage и метаданные платформа собирает сама, команде не нужно об этом помнитьшаг 09 · Платформа целиком Versioning ML platform Эксперименты Новая задача стартует с готового шаблона, а не с чистого листашаг 09 · Платформа целиком Experiment tracking ML platform Оркестрация Переобучение запускает мониторинг, когда видит дрифт, а не человек по календарюшаг 11 · Мониторинг качества, а не только аптайма шаг 08 · Утилизация и скедулинг ML pipelines ML monitoring Данные Путь от сырых данных до признаков идёт без ручных шагов, с проверкой на каждом этапеData validation Data eng Развёртывание Выкат и откат одинаковы для всех команд (golden path), под свои нужды допилены свои инструменты или open sourceшаг 09 · Платформа целиком Rollout & A/B ML platform Open/InnerSource Мониторинг На дрифт есть автоматическая реакция (переобучение или откат), деградацию разбирают до причинышаг 11 · Мониторинг качества, а не только аптайма ML monitoring CI/CD Команды берут стандартные шаблоны пайплайнов, CI с нуля никто не пишетшаг 09 · Платформа целиком CI/CD ML platform Все пункты закрыты. Теперь главное - так и держать :)
Сбросить галочки Уровень засчитывается, только когда закрыты все его пункты и все пункты ниже : дыра на втором уровне не даст записать себе четвёртый. Галочки хранятся только в твоём браузере.