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

Scaling

Масштабирование

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

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

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

  • Скейлиться по длине очереди или задержке, а не по CPU: у GPU-сервиса загрузка CPU почти не меняется.
  • Холодный старт при загрузке большой модели — десятки секунд; держите тёплый резерв.
  • Шардирование по пользователям упрощает кеширование и локальность данных.

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

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

1

По какой метрике масштабироваться

CPU здесь плохой сигнал.

  • Длина очереди или время ожидания в ней — самый прямой индикатор нехватки мощности.
  • p99 задержки — то, что реально волнует пользователя.
  • Утилизация GPU — для GPU-сервисов вместо CPU.
  • Комбинация: скейлить вверх агрессивно, вниз — осторожно, с большим окном.
2

Холодный старт

Почему автоскейлинг не спасает от всплеска.

Поднять под, скачать образ, загрузить веса модели в память GPU — это от десятков секунд до нескольких минут. К моменту готовности новой реплики всплеск уже закончится.

  • Держите тёплый резерв под ожидаемые пики.
  • Прогревайте модель фиктивными запросами перед тем, как отдать под в балансировку (readiness probe).
  • Храните веса в образе или на локальном диске узла, а не тяните их по сети при каждом старте.

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

Инференс и эксплуатация

Requirements and SLA85%

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

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

Serving Architecture85%

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

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

Caching85%

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

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

Batching and Queues85%

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

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

GPU Inference85%

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

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

Reliability85%

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

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

Observability85%

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

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

Cost Model85%

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

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

LLM Serving85%

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

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

Model Deployment85%

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

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

Monitoring85%

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

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

Docker85%

Docker · MLOps

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

Kubernetes85%

Kubernetes · MLOps

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