Кто такой MLOps-инженер

MLOps складывается из трёх треков: ML, разработка и эксплуатация. Матанализ и архитектуру трансформеров знать не нужно. Но надо понимать, как работает дата-сайентист: он твой заказчик, и ему нужны правильные инструменты. Платформу для него собирают из готовых кубиков, как LEGO.

Кружки - это то, с чем я сталкиваюсь каждый день, а не обязательный список: у каждого набор будет свой. Пройдись по всем, даже если пришёл из соседней области, и честно оцени себя. У каждого кружка есть подсказка, какой уровень достаточен для MLOps: глубже нырять стоит, только когда появится задача. В конце выгрузи план: в него попадут пробелы, задания и источники.

С чего начать

С нуля: сети (вспоминаются за вечер) → Fit/Predict на Titanic → трекинг экспериментов → инференс на GPU и LLM.

Из DevOps или админства: сначала закрой DevOps-часть, это уже профессия. Параллельно Fit/Predict: ML не стоит откладывать, лучше сразу понять, интересно ли тебе. Distributed training оставь на потом.

Из дата-инженерии: данные уже понятны, начни с Kubernetes и проекта «Полный цикл на MLflow».

Из бэкенда: железо можно пропустить, начни с упаковки модели: проект «Первая модель без GPU».

Где практиковаться, если на работе нет задач

На ноутбуке без GPU: Docker, minikube, MLflow, ONNX Runtime, Triton на CPU. Kubernetes можно потрогать в браузере на Killercoda.

Дешёвые ВМ и облако: пара ВМ на недорогом хостинге или managed Kubernetes на бонусе, который облака дают новым аккаунтам.

GPU: арендовать ВМ с картой на час-другой. Для LLM без реальной GPU ответа, какой конфиг лучше, не получить.

Что спрашивают на собеседовании

В бигтехе отдельного MLOps-трека обычно нет. Инфраструктурщики идут по SRE-треку: Linux, Kubernetes, System Design. Про GPU спросят разве что на финале, и там важнее, как ты подходишь к задачам. ML-специфику спрашивают в средних и небольших компаниях. System Design часто встречается на сеньорных позициях: тут помогают мок-собесы.

Специализации: дата-платформа упрощает работу с данными, ML-платформа ускоряет проверку гипотез, inference-платформа отвечает за ресурсы и надёжность в проде. Это вертикали. Есть и горизонталь: как DevOps сидит рядом с разработчиком, так MLOps сидит рядом с дата-сайентистом и строит конвейер от данных до прода.

На собеседовании концепции важнее конкретных инструментов: если в компании другой инструмент, тебя переучат.

не оценено 42
не оцененоне знаюесть пробелызнаюесть мои статьи или посты

Сквозные проекты

двигай карту пальцем, нажми на кружок

Карта навыков

MLOPSDEVFit/PredictDeepLearningModelmetricsLLMExperimenttrackingVersioningMLpipelinesDataengLLMappsDSworkspaceGPUGPU inK8sGPUsharingGPUschedulingDistributedtrainingLLMservingOptimizationProfilersModelservingAutoscalingMLplatformMLmonitoringCostLinuxNetworkCloudStorageK8SMonitoringSecurityDataBasesIaCSystemDesigndockerCI/CDGitLoadtestingPython/GoEnvsAPITestingOpen/InnerSource

ML

Fit/Predict

Хотя бы пару раз побыть дата-сайентистом. Матан учить не обязательно: берёшь готовый код, fit обучает, predict прогнозирует. Так начинаешь понимать своих заказчиков.

Достаточно для MLOps: прошёл базовый DS-процесс: данные, обучение, подбор гиперпараметров, модель как артефакт.

Попробовать руками

Почитать и посмотреть

ML

Deep Learning

Из чего состоит нейросеть, что такое веса и почему они весят гигабайты.

Достаточно для MLOps: понимаешь веса, эпохи, батчи и разницу между обучением и инференсом. Архитектуру трансформеров знать не нужно.

Попробовать руками

Почитать и посмотреть

ML

Model metrics

Модель работает, а потом по метрикам видно, что она теряет качество. Это дрифт. Если модель переобучают раз в неделю, она часто не успевает просесть.

Достаточно для MLOps: знаешь основные метрики качества и что такое дрифт. Тут скорее почитать теорию.

Попробовать руками

  • посчитать precision, recall и ROC-AUC для модели из Fit/Predict туториал ↗

Почитать и посмотреть

ML

LLM

LLM - отдельный трек, не похожий на классический fit/predict. Главные вопросы: влезет ли модель в карту, какую квантизацию выбрать, как проверить качество.

Достаточно для MLOps: считаешь VRAM: параметры × байты (70B в bf16 ≈ 140 ГБ) плюс KV-кэш и активации. Знаешь квантизацию, fine-tuning, OpenAI-протокол и стриминг через SSE.

Попробовать руками

  • подобрать GPU под Qwen3 32B и сравнить с DeepSeek туториал ↗
  • посчитать RPS из суточного трафика: 200 000 запросов в сутки это ≈ 2,5 RPS туториал ↗

Почитать и посмотреть

ML + DEV

Experiment tracking

Дата-сайентист постоянно запускает код с чуть другими параметрами. Раньше это были ноутбуки v1, v2 в папочке. Трекер логирует запуски и сравнивает их, а MLOps разворачивает его на сотню человек с гарантированными ресурсами.

Достаточно для MLOps: поднимал MLflow или ClearML и сам залогировал пару экспериментов.

Попробовать руками

Почитать и посмотреть

ML + DEV

Versioning

DVC версионирует датасеты рядом с кодом.

Достаточно для MLOps: знаешь, зачем это нужно. Глубоко не нырять, пока нет задачи.

Попробовать руками

Почитать и посмотреть

ML + DEV

ML pipelines

CI/CD для моделей: модель сама дообучается на новых данных, параллельно идут эксперименты с разными гиперпараметрами, лучшая уезжает в прод.

Достаточно для MLOps: собирал пайплайн: несколько обучений, выбор лучшей модели, деплой.

Попробовать руками

Почитать и посмотреть

ML + DEV

Data eng

ETL, DAG в оркестраторах и Feature Store. Пример: в скоринг приходит только ID клиента, а Feature Store достаёт по нему историю и доход.

Достаточно для MLOps: понимаешь ETL, DAG и зачем Feature Store (онлайн в Redis, холодное в S3). Тема сложная, глубоко не сразу.

Попробовать руками

Почитать и посмотреть

ML + DEV

LLM apps

RAG, MCP и агенты. MCP подключает LLM к ручкам других сервисов: GitHub, Google Drive.

Достаточно для MLOps: собирал простой RAG и понимаешь, что такое MCP-сервер.

Попробовать руками

Почитать и посмотреть

ML + DEV

DS workspace

Где живёт дата-сайентист: Jupyter, JupyterHub, DevBox. В Jupyter каждая ячейка хранит состояние, поэтому код DS выглядит не как у разработчика: это инструмент для экспериментов.

Достаточно для MLOps: понимаешь, как устроен Jupyter, и разворачивал JupyterHub с профилями под разные окружения.

Попробовать руками

Почитать и посмотреть

ML + OPS

GPU

ML по сути сложение матриц, а у GPU таких ядер в тысячи раз больше, чем у CPU. Главное ограничение - видеопамять. От архитектуры карты зависит, что доступно: MIG и bf16 с Ampere, FP8 с Hopper, FP4 с Blackwell.

Достаточно для MLOps: знаешь поколения, VRAM и терафлопсы, дата-центровые и игровые карты. Драйвер ставишь последний, но смотришь нижнюю границу по архитектуре и совместимость с ядром ОС. CUDA живёт в образе.

Попробовать руками

Почитать и посмотреть

Глубже, если понадобится: версия CUDA в nvidia-smi - совместимая, а не установленная. Если разворачиваешь у заказчика, повтори его окружение вплоть до драйвера.

ML + OPS

GPU in K8s

GPU Operator ставит драйверы и device plugin, поды просят ресурс nvidia.com/gpu. Подготовка GPU-ноды может занимать до 5 минут, и это бьёт по автоскейлингу.

Достаточно для MLOps: ставил GPU Operator и запускал под с GPU.

Попробовать руками

Почитать и посмотреть

ML + OPS

GPU sharing

В нативном Kubernetes контейнер получает целую карту: сервис на 500 МБ съедает H100. Частый запрос компаний: несколько дата-сайентистов на одной GPU в JupyterHub.

Достаточно для MLOps: знаешь MIG (до 7 изолированных частей), MPS, time-slicing и HAMi и выбираешь под архитектуру карты и нагрузку.

Попробовать руками

Почитать и посмотреть

ML + OPS

GPU scheduling

Дефолтный kube-scheduler плохо управляет GPU. Когда сотня людей запускает ноутбуки на GPU, нужны очереди и квоты.

Достаточно для MLOps: понимаешь, что дают очереди, квоты и вытеснение, и знаешь Kueue, Volcano, KAI.

Почитать и посмотреть

Глубже, если понадобится: fair share между командами, gang scheduling для распределённого обучения.

ML + OPS

Distributed training

Как склеиваются GPU: PCIe (через CPU и RAM), NVLink (мостик между картами), NVSwitch (коммутатор на 8 карт), InfiniBand между узлами. Кластер иногда собирают люди, которые не знают, что это.

Достаточно для MLOps: понимаешь, что это есть и когда нужно. NVLink важен для обучения и моделей, которые не влезают в одну карту. Для инференса небольших моделей хватит PCIe.

Попробовать руками

Почитать и посмотреть

ML + OPS

LLM serving

Ollama для дома. vLLM сейчас выигрывает по соотношению усилий и результата: TensorRT-LLM быстрее на бумаге, но его сборка работа не на 5 минут. Для отказоустойчивости и маршрутизации смотри vLLM Production Stack.

Достаточно для MLOps: запускал vLLM в Docker и крутил конфиг: max-num-seqs, контекст, tensor parallel. Понимаешь выбор между минимальной задержкой и максимальной пропускной способностью.

Попробовать руками

Почитать и посмотреть

Глубже, если понадобится: KV-кэш между репликами (LMCache), CUDA graphs, выгрузка весов на CPU, автотюнинг конфига.

ML + OPS

Optimization

Как DevOps ужимает Dockerfile разработчика, так MLOps из неоптимальной модели делает артефакт, который быстро работает и мало весит. Цепочка форматов: PyTorch или TensorFlow → ONNX → TensorRT.

Достаточно для MLOps: понимаешь форматы и точности (bf16, fp8, int4). Квантизацию проверяешь на своём наборе эталонных ответов, а не по бенчмаркам: int4 занимает около 30% памяти.

Попробовать руками

Почитать и посмотреть

Глубже, если понадобится: pickle внутри содержит Python-код, это риск. Tensorizer грузит веса в GPU в разы быстрее.

ML + OPS

Profilers

Заказчик принёс модель, а утилизация GPU не 100%. Профайлер показывает, что какой-то метод выполняется на CPU.

Достаточно для MLOps: умеешь снять профиль и найти узкое место.

Попробовать руками

Почитать и посмотреть

ML + OPS + DEV

Model serving

Inference-сервер берёт модель как артефакт и отдаёт endpoint. Свой сервис на Flask упрётся в версии фреймворков, форматы и обновление без даунтайма. Инференс бывает онлайн (HTTP, gRPC) и офлайн (джоба по расписанию).

Достаточно для MLOps: поднимал Triton или KServe и понимаешь разницу между форматом модели и сервером. Для пары простых моделей хватит ONNX Runtime в Docker, Triton там избыточен.

Попробовать руками

Почитать и посмотреть

Глубже, если понадобится: в Triton тяжело войти, документации много: начни с Conceptual Guide. Дальше NVIDIA Dynamo для распределённого инференса.

ML + OPS + DEV

Autoscaling

Пики приходят быстрее, чем стартуют реплики: GPU-нода готовится минутами, образы и веса весят десятки гигабайт. HPA по CPU не видит нагрузку на GPU.

Достаточно для MLOps: скейлишь по очереди или concurrency, а не по CPU, и понимаешь, из чего складывается холодный старт.

Попробовать руками

Почитать и посмотреть

Глубже, если понадобится: заранее подготовленные ноды, кэш весов по NFS, Tensorizer, скейлинг в ноль.

ML + OPS + DEV

ML platform

Платформу собирают из кубиков, как LEGO: IDE, трекинг экспериментов, S3, пайплайны, инференс. В Kubernetes почти всё это ставится Helm-чартами.

Достаточно для MLOps: можешь нарисовать свою платформу из кубиков и поднять пару из них.

Попробовать руками

Почитать и посмотреть

ML + OPS + DEV

ML monitoring

Метрики те же, что в Ops-части: инференс - обычный сервис. Сверху смотришь метрики самой модели: качество и дрифт.

Достаточно для MLOps: метрики инференса в Prometheus (RPS, задержка, очередь, GPU) и понимание, как ловить дрифт.

Попробовать руками

Почитать и посмотреть

ML + OPS + DEV

Cost

Выбирать железо по метрикам, а не по чуйке: GPU или CPU, игровая или дата-центровая карта, с NVLink или без. Клиенту говоришь: за эту цену такие метрики, за другую такие.

Достаточно для MLOps: сравниваешь конфигурации по цене и метрикам (TTFT, throughput) и знаешь, что маленькие модели и рекомендашки часто выгоднее на CPU.

Почитать и посмотреть

OPS

Linux

Все сервисы работают на Linux.

Достаточно для MLOps: подключиться по SSH, настроить сервис, почитать логи. Ядро на уровне SRE не нужно.

Попробовать руками

  • продиагностировать падающий systemd-сервис через journalctl туториал ↗

Почитать и посмотреть

OPS

Network

Отсюда проще всего начать трек: базу можно вспомнить за вечер. На практике: дата-сайентист хочет открыть сервис в браузере, а ты настраиваешь ingress и HTTPS с автоперевыпуском сертификата.

Достаточно для MLOps: OSI, IP, DNS, TLS, как связаны виртуалки, ingress в Kubernetes.

Попробовать руками

  • рассказать, что происходит, когда вводишь google.com туториал ↗

Почитать и посмотреть

  • книгаОлифер: «Компьютерные сети» (целиком читать не нужно)
  • githubnicolaka/netshoot

OPS

Cloud

Открой список продуктов любого облака, и увидишь все компоненты из System Design: ВМ, managed-базы и Kubernetes, S3, registry.

Достаточно для MLOps: разбираться с каждым облаком не нужно: выбери одно и сделай мини-проект на GitHub, где инфраструктура разворачивается Terraform.

Попробовать руками

  • развернуть managed Kubernetes в Yandex Cloud (новым аккаунтам дают бонус) туториал ↗

Почитать и посмотреть

OPS

Storage

Где хранить веса и артефакты. S3 для моделей, NFS как общий кэш, чтобы каждая реплика не качала веса заново.

Достаточно для MLOps: знаешь S3, NFS и как ускорить загрузку весов в реплики.

Попробовать руками

Почитать и посмотреть

OPS

K8S

Почти все ML-платформы строятся на Kubernetes: оркестрация, изоляция, обновление без даунтайма. Все MLOps-инструменты ставятся Helm-чартами, а Helm-чарт - почти Docker Compose для Kubernetes.

Достаточно для MLOps: ставишь Helm-чарт и знаешь сущности от пода до ingress. Если нет автоскейлинга, обновлений без даунтайма и изоляции окружений, небольшому проекту хватит ВМ с Docker Compose.

Попробовать руками

Почитать и посмотреть

Глубже, если понадобится: писать Helm-чарты, Kustomize, политики безопасности.

OPS

Monitoring

Чтобы не следить за сервисами 24/7: пришёл алерт, пошёл починил. Экспортеры у сервисов, Prometheus забирает метрики, Grafana рисует, алерты уходят в Telegram. Важны концепции, а не конкретный инструмент.

Достаточно для MLOps: сам собрал Prometheus, Grafana и алерт.

Попробовать руками

Почитать и посмотреть

Глубже, если понадобится: VictoriaMetrics быстрее Prometheus. ELK нужен для полнотекстового поиска по логам, но тяжёлый.

OPS

Security

Обычная Ops-задача, не MLOps-специфика: креды не храним в репозитории, код проверяем, инференс закрываем авторизацией.

Достаточно для MLOps: токены в Vault или маскированных переменных CI, линтеры и SAST в пайплайне, авторизация перед инференсом.

Попробовать руками

Почитать и посмотреть

OPS

DataBases

Под капотом у любого open source лежит база: PostgreSQL, Redis, MongoDB.

Достаточно для MLOps: знаешь виды баз и когда какую выбрать на уровне System Design. Синтаксис SQL помнить не обязательно.

Попробовать руками

Почитать и посмотреть

  • книгаDesigning Data-Intensive Applications, Martin Kleppmann

OPS

IaC

Сервер-снежинка: зашёл по SSH, сделал руками, документации нет, у следующего квест. Сервер-феникс восстанавливается из кода. 40 ВМ в облаке накликивать долго, Terraform сделает за минуту.

Достаточно для MLOps: Terraform поднимает ВМ, Ansible её настраивает. В облаке и небольших компаниях это база, в бигтехе инфраструктура обычно уже развёрнута.

Попробовать руками

Почитать и посмотреть

OPS

System Design

MLOps строит инфраструктуру из тех же компонентов: S3, базы, балансировщики. Для инфраструктурщика ML-сервис на схеме просто квадрат. GPU - ещё один ресурс, где лежат веса.

Достаточно для MLOps: проходишь мок-собес: требования, расчёт нагрузки, API, базы, компоненты. Понимаешь, что отказоустойчивость дают реплики в разных зонах за балансировщиком, а не веса на нескольких GPU.

Попробовать руками

Почитать и посмотреть

  • githubsystem-design-primer
  • книгаDesigning Data-Intensive Applications, Martin Kleppmann
  • книгаDesigning Machine Learning Systems, Chip Huyen

OPS + DEV

docker

LLM проще всего поднимать в контейнере. По умолчанию у контейнера нет доступа к GPU, нужен runtime.

Достаточно для MLOps: Dockerfile с правильным порядком слоёв (часто меняемое вниз), контейнер с GPU.

Попробовать руками

Почитать и посмотреть

Глубже, если понадобится: большие ML-образы: только CUDA весит ~6 ГБ. Lazy loading, zstd, P2P-раздача.

OPS + DEV

CI/CD

То же, что в DevOps: из репозитория через пайплайн в прод. Добавляются стадии обучения моделей.

Достаточно для MLOps: написал пару пайплайнов в GitLab CI или GitHub Actions.

Попробовать руками

  • собрать пайплайн: линтер, тесты, образ, деплой туториал ↗

Почитать и посмотреть

OPS + DEV

Git

Ветки, ревью, GitOps.

Достаточно для MLOps: ветки, rebase, ревью, поиск регрессий.

Попробовать руками

  • найти коммит, который сломал тест, через git bisect туториал ↗

Почитать и посмотреть

OPS + DEV

Load testing

Без тестов на реальных GPU нет ответа, какая конфигурация оптимальна. Воспроизводишь сценарий клиента (50 чатов, запрос раз в 30 секунд) и сравниваешь TTFT и задержку. Один запрос из Python-скрипта - не нагрузка.

Достаточно для MLOps: умеешь подать параллельную нагрузку и снять TTFT, latency, throughput. Понимаешь разницу между request rate и concurrency.

Попробовать руками

Почитать и посмотреть

Глубже, если понадобится: если T4 и A100 дают одинаковый результат, скорее всего в конфиге батч равен единице.

DEV

Python/Go

Инструменты меняются так быстро, что документация отстаёт. Бывает, запускаешь фичу из доки, а в issues мейнтейнер пишет, что её больше не поддерживают. Узнаёшь, только если полез в код.

Достаточно для MLOps: уверенно читаешь код Python (язык ML) или Go (язык сервисов).

Попробовать руками

  • написать скрипт, который параллельно дёргает API модели туториал ↗

Почитать и посмотреть

DEV

Envs

У дата-сайентистов всё разваливается при смене версии PyTorch или CUDA. А в CI зависимости ставятся на каждый прогон, и если пакеты тянутся полчаса, это долго: тут выручает uv.

Достаточно для MLOps: понимаешь conda, venv, poetry, uv и собираешь воспроизводимое окружение.

Попробовать руками

Почитать и посмотреть

DEV

API

Инференс - это веб-сервис, внутри которого модель как чёрный ящик. С него собирают такие же метрики: RPS, задержку.

Достаточно для MLOps: HTTP и REST, OpenAI-протокол и V2 (KServe, Triton). gRPC пока можно отложить. Если не поднимал сервис на FastAPI, сделай мини-прототип.

Попробовать руками

Глубже, если понадобится: SSE для стриминга токенов, WebSocket.

DEV

Testing

Развернули платформу: надо проверить, что сервисы доступны и работают. Unit-тесты больше для разработчиков.

Достаточно для MLOps: e2e-проверка платформы и базовые unit-тесты.

Попробовать руками

DEV

Open/InnerSource

Всё, чем пользуется MLOps, лежит на GitHub. В бигтехе MLOps берут open source и патчат под свою платформу. Оценивать проект помогают звёзды, статус в CNCF и то, кто его делает.

Достаточно для MLOps: читаешь код open source, ищешь по issues, открывал PR.

Попробовать руками

Почитать и посмотреть

Сквозной проект

Первая модель без GPU

Упаковать и запустить модель на ноутбуке, без GPU и Kubernetes. Хороший вход для бэкендера.

Шаги

  1. обучить простую модель: регрессия или дерево на XGBoostFit/Predict
  2. экспортировать в ONNXOptimization
  3. ONNX Runtime в Docker или Triton по Conceptual GuideModel servingdocker
  4. онлайн через API и офлайн джобой по расписаниюAPI
  5. позже арендовать GPU на час и запустить тот же контейнерGPU

Сквозной проект

Полный цикл на MLflow

Прочувствовать цикл дата-сайентиста и развернуть его инструменты. Недели две.

Шаги

  1. MLflow локально, пара экспериментов с простой модельюFit/PredictExperiment tracking
  2. MLflow в Kubernetes: minikube или дешёвый managedK8S
  3. окружения для экспериментовEnvsDS workspace
  4. вывести модель из registry в инференс, например KServeModel serving

Сквозной проект

Мини ML-платформа в облаке

Весь цикл от ноутбука дата-сайентиста до endpoint. Готовый проект для портфолио на GitHub.

Шаги

  1. Terraform поднимает managed Kubernetes, Ansible настраиваетIaCCloudK8S
  2. JupyterHub как IDE дата-сайентистаDS workspaceEnvs
  3. ClearML: логирование и сравнение экспериментовExperiment tracking
  4. MinIO как S3 для артефактовStorage
  5. ClearML Pipelines: обучение с разными гиперпараметрами и выбор лучшейML pipelines
  6. KServe берёт модель из S3 и отдаёт endpointModel servingAPI

Сквозной проект

Сайзинг self-hosted LLM

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

Шаги

  1. посчитать RPS из трафика и VRAM под модельLLMCost
  2. арендовать GPU, поставить драйвер и Container ToolkitGPUdocker
  3. vLLM: выбрать стратегию (задержка или throughput) и подкрутить конфигLLM serving
  4. AIPerf: нагрузка по request rate, concurrency и чат-сценарийLoad testing
  5. сравнить bf16 и int4 на своих эталонных ответахOptimizationModel metrics
  6. продвинутый уровень: Production Stack, метрики, HPA, несколько моделей на GPUMonitoringAutoscalingGPU sharing

Сквозной проект

Whisper на Triton с мониторингом

Продовая ASR-модель: быстро, с метриками и алертами.

Шаги

  1. Whisper + TensorRT из готового репозитория и Docker-образаOptimizationdockerGPU
  2. Triton отдаёт модель, Model Analyzer подбирает конфигModel serving
  3. встроенный экспортер Triton → Prometheus → GrafanaMonitoringML monitoring
  4. Alertmanager: алерт в Telegram, если очередь растётMonitoring
  5. нагрузочный тест, выбор карты и конфигурацииLoad testingCost

↑↓ выбор · Enter открыть · Esc закрыть