MLOps

Docker

Docker

актуальноТекущий рабочий стандарт

Контейнеризация фиксирует окружение целиком: код, зависимости, системные библиотеки.

Ключевые тезисы

  • Multi-stage сборка резко уменьшает итоговый образ.
  • Пины версий обязательны — иначе воспроизводимости нет.
  • Тот же образ едет из CI в staging и в прод без изменений.
Тема также относится к главам:Системный дизайн ML-сервисовПроектирование

Подробный разбор

2 подтем — раскройте любую, чтобы увидеть объяснение, формулы, примеры и интерактивные графики.

1

Многостадийная сборка

Меньше образ — быстрее деплой и меньше уязвимостей.

FROM python:3.12-slim AS builder
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir --prefix=/install -r requirements.txt

FROM python:3.12-slim
WORKDIR /app
COPY --from=builder /install /usr/local
COPY src/ ./src/
COPY model/ ./model/
ENV PYTHONUNBUFFERED=1
USER 1000
CMD ["python", "-m", "src.serve"]
Инструменты сборки остаются в первой стадии и не попадают в финальный образ
  • Пинуйте версии зависимостей — иначе воспроизводимости нет.
  • Копируйте зависимости отдельным слоем до кода: тогда кэш не будет сбрасываться при каждом изменении.
  • Не запускайте контейнер от root.
2

Особенности ML-образов

Размер, GPU и модельные веса.

  • Веса модели обычно не кладут в образ: они меняются чаще кода. Лучше монтировать или скачивать при старте из объектного хранилища.
  • CUDA-образы тяжёлые (несколько ГБ) — используйте runtime-версии, а не devel.
  • Слои: сначала системные зависимости, потом Python-пакеты, потом код — так кэш работает эффективнее всего.
  • Фиксируйте базовый образ по дайджесту, а не по тегу latest.

Связанные темы

Инференс и эксплуатация · Продакшен и эксплуатация

Model Deployment97%

Деплой моделей · MLOps

Доставка модели пользователю: онлайн-сервис, батч-скоринг или встраивание в приложение.

Monitoring97%

Мониторинг · MLOps

Наблюдение за инфраструктурой, данными и качеством предсказаний после релиза.

Kubernetes97%

Kubernetes · MLOps

Оркестрация контейнеров: масштабирование, самовосстановление, обновления без простоя.

Requirements and SLA85%

Требования и SLA · Системный дизайн ML-сервисов

Числа, которые нужно зафиксировать до архитектуры: задержка, пропускная способность, доступность, стоимость запроса.

Serving Architecture85%

Архитектура инференса · Системный дизайн ML-сервисов

Модель внутри приложения, отдельный сервис или платформа инференса — три уровня связанности.

Caching85%

Кеширование · Системный дизайн ML-сервисов

Не считать то, что уже посчитано: кеш предсказаний, признаков и эмбеддингов.

Batching and Queues85%

Батчинг и очереди · Системный дизайн ML-сервисов

Собирать запросы в пачки, чтобы загрузить GPU, и сглаживать всплески нагрузки очередью.

Scaling85%

Масштабирование · Системный дизайн ML-сервисов

Горизонтальное и вертикальное масштабирование инференса и правильные метрики автоскейлинга.

GPU Inference85%

GPU-инференс · Системный дизайн ML-сервисов

Как выжать из видеокарты пропускную способность и не переплачивать.

Reliability85%

Отказоустойчивость · Системный дизайн ML-сервисов

Что происходит, когда модель недоступна, отвечает медленно или выдаёт мусор.

Observability85%

Наблюдаемость · Системный дизайн ML-сервисов

Логи, метрики и трассировки, по которым можно восстановить, что произошло с конкретным запросом.

Cost Model85%

Экономика сервиса · Системный дизайн ML-сервисов

Стоимость одного предсказания и точка, где модель перестаёт окупаться.

LLM Serving85%

Обслуживание LLM · Системный дизайн ML-сервисов

Отдельная инженерная дисциплина: KV-кеш, непрерывный батчинг, потоковая отдача и контроль стоимости.

Drift Detection80%

Детекция дрейфа · MLOps

Обнаружение расхождения между данными обучения и данными прода.

Retraining80%

Переобучение моделей · MLOps

Регулярное обновление модели на свежих данных по расписанию или по триггеру.

ML Pipelines80%

ML-пайплайны · MLOps

Оформление обучения как воспроизводимой последовательности шагов вместо разрозненных ноутбуков.

Production ML80%

ML в продакшене · Практика ML

Модель в проде — это сервис с SLA, мониторингом, версионированием и планом отката.