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

LLM Serving

Обслуживание LLM

новинкаНовое или быстро растущее направление

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

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

  • Continuous batching (vLLM, TGI) кратно повышает утилизацию по сравнению со статическим батчем.
  • PagedAttention экономит память под KV-кеш и позволяет держать больше параллельных сессий.
  • Стриминг токенов улучшает воспринимаемую скорость, даже если общее время не изменилось.
Тема также относится к главам:Генеративный ИИПриложения

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

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

1

Пропускная способность LLM

Continuous batching и KV-кеш.

  • Continuous batching: новые запросы подсаживаются в батч по мере освобождения слотов, а не ждут окончания всего батча.
  • PagedAttention: KV-кеш хранится страницами, как виртуальная память, — меньше фрагментации и больше параллельных сессий.
  • Prefix caching: общий системный промпт считается один раз для всех запросов.
Обозначения
  • число объектов в выборке
  • функция потерь — то, что минимизируется при обучении
Отсюда и берётся ограничение на число одновременных сессий
2

Качество, стоимость, задержка

Три ручки, которые всегда в конфликте.

ПриёмСтоимостьКачествоЗадержка
Меньшая модель↓↓↓↓
Квантизация int4↓↓≈ / ↓
Спекулятивное декодирование=↓↓
RAG вместо длинного контекста
Каскад моделей↓↓
На практике

Каскад — самый недооценённый приём: 80% запросов решает маленькая модель, остальные уходят в большую. Средняя стоимость падает в разы при почти неизменном качестве.

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

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

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-сервисов

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

Model Deployment85%

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

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

Monitoring85%

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

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

Docker85%

Docker · MLOps

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

Kubernetes85%

Kubernetes · MLOps

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