Похожие презентации:
ML Inference в production — final
1.
ML INFERENCE ВPRODUCTION
KARPOV.COURSES
2.
НА ТЕСТЕ — 200 МС. А В ПРОДЕ — 8СЕКУНД?
На локальном тесте модель отвечала за 200 миллисекунд.
Что случилось между тестом и
Вы задеплоили её в production — и через час в чат пишут:
продакшеном? Разберём весь путь
«почему бот отвечает 8 секунд?» GPU не сломался.
запроса — от пользователя до GPU и
Модель та же самая — изменилось только количество
обратно — и вы научитесь чинить это
одновременных запросов.
сами.
3.
ПЛАН УРОКАОт модели к inference
Деплой модели
Как запрос проходит через систему
Нагрузка и мониторинг
Latency и throughput
Типичные ошибки
Runtime и batching
Autoscaling
4.
МОДЕЛЬ РАБОТАЕТ. А PRODUCTION?Локально модель может отлично отвечать на запросы
Поэтому недостаточно просто
одного пользователя. Но в production появляются десятки
запустить модель. Нужно понимать,
и сотни одновременных запросов, требования к SLA и
сколько времени занимает запрос,
ограничения по стоимости инфраструктуры.
сколько запросов система
выдерживает одновременно и как она
ведёт себя при изменении нагрузки.
5.
ОТ МОДЕЛИ К PRODUCTION-СЕРВИСУ1
Модель
2
Runtime
3
Inference
Обученная модель
Среда запуска
API для запросов
4
Scaling
Работа под нагрузкой
6.
PRODUCTION-СЕРВИС — ЭТО КУХНЯРЕСТОРАНА
Обучение модели — это как один раз обучить шеф-повара
Дальше в видео мы будем
новому рецепту: долго, дорого, зато один раз. Inference —
сравнивать production-сервис с
это линия поваров, которые потом готовят это блюдо на
кухней ресторана. Это поможет
каждый заказ за секунды. API — это стойка приёма
держать в голове, зачем нужна
заказов, а load balancer — хостес, которая распределяет
каждая часть системы — от load
заказы между свободными поварами.
balancer до GPU.
7.
ГДЕ ЗАКАНЧИВАЕТСЯ МОДЕЛЬ ИНАЧИНАЕТСЯ СЕРВИС
1/
Модель
4/
Inference-сервис
Веса и логика, необходимые для получения
Инфраструктура, которая принимает запросы,
результата
запускает модель и возвращает результат
Модель → Runtime → API → Пользователь
8.
КАК ЗАПРОС ПОПАДАЕТ ВМОДЕЛЬ
9.
ИЗ ЧЕГО СКЛАДЫВАЕТСЯ LATENCYНа каждом шаге к latency добавляются свои миллисекунды. А если реплик не хватает — сверху добавляются ещё время на
масштабирование и cold start новой реплики.
10.
ДВЕ ГЛАВНЫЕ МЕТРИКИ1/ Latency
Вопрос на подумать:
Если кухня начнёт готовить сразу 10 заказов на одной сковородке
— время ожидания для первого гостя вырастет или упадёт? А что
2/ Throughput
3/ Баланс
будет с throughput всей кухни?
11.
ЧТО ВЛИЯЕТ НА ПРОИЗВОДИТЕЛЬНОСТЬ1
MODEL
2
RUNTIME
3
BATCHING
Размер и архитектура модели
Среда исполнения
Как объединяются запросы
4
HARDWARE
5
SCALING
Какие ресурсы доступны
Сколько реплик модели
работает
12.
RUNTIME: ОДНА МОДЕЛЬ — РАЗНАЯПРОИЗВОДИТЕЛЬНОСТЬ
ПОЧЕМУ СПОСОБ ЗАПУСКА ИМЕЕТ ЗНАЧЕНИЕ
vLLM — continuous batching и PagedAttention: эффективно использует память GPU, хорошо держит высокую нагрузку
SGLang — своя оптимизация под сложные сценарии (structured output, много обращений к модели подряд), быстрее там, где
vLLM не заточен
Ollama — проще всего развернуть, но рассчитан на единичные запросы, а не production-нагрузку
Рецепт (модель) один и тот же — техника готовки разная. Можно совмещать разные уровни оптимизации.
13.
BATCHING1/
Один запрос — один запуск вычислений
2/
Больше throughput, но потенциально выше
latency
2/
Несколько запросов → один batch →
параллельная обработка
Static batching
Dynamic batching
14.
МАСШТАБИРОВАНИЕ15.
КАК РАБОТАЕТ AUTOSCALINGМетрика — это загрузка GPU или длина очереди запросов на реплику
16.
COLD START17.
ПРАКТИКА18.
Тут будет screencast-1Обзор возможностей платформы
Открыть ML Inference.
Показать список inference..
Открыть создание нового inference.
Выбрать модель из Hugging Face.
Показать параметры runtime.
Выбрать GPU.
Настроить replicas/scaling.
Запустить.
19.
ПРОВЕРЯЕМ LATENCY20.
Тут будет screencast-2Public URL
OpenAPI
Chatbox
Запрос
Latency
Несколько запросов
Рост latency
21.
LATENCY ПОД НАГРУЗКОЙ22.
ВКЛЮЧАЕМ AUTOSCALING23.
Тут будет screencast-3Настройки autoscaling.
Min replicas.
Max replicas.
Метрику масштабирования.
Генерацию нагрузки.
Рост количества реплик.
Распределение запросов.
Изменение latency.
24.
СРАВНЕНИЕ ГРАФИКОВ25.
МАСШТАБИРОВАНИЕ НЕ ВСЕГДА ДАЕТМГНОВЕННЫЙ ЭФФЕКТ
Дополнительные реплики не гарантируют снижение
latency при любой нагрузке.
При высокой concurrency:
1 → 32
нагрузка становится достаточно большой, чтобы дополнительные реплики начали реально
использоваться.
Low load → масштабирование почти не помогает
High load → масштабирование повышает capacity
26.
TRADEOFF: LATENCY, THROUGHPUT ИCAPACITY
Одна реплика
Три реплики
При росте concurrency:
Мы увеличиваем доступную
Throughput ↑
вычислительную capacity.
Latency ↑
При высокой нагрузке:
TTFT ↑
Throughput ↑
Latency ↓
Система постепенно упирается в
TTFT ↓
свою вычислительную capacity.
Horizontal scaling позволяет перенести точку насыщения системы вправо.
То есть мы можем обслуживать больше одновременных запросов, прежде чем latency
начнёт резко расти.
27.
ЧТО СМОТРЕТЬ В МОНИТОРИНГЕ1
LATENCY
2
GPU UTILIZATION
Как быстро система отвечает на
Насколько эффективно используется
запросы прямо сейчас
вычислительный ресурс
3
REPLICAS
Сколько экземпляров модели
работает сейчас
28.
Тут будет screencast-4Dashboard
Latency
GPU
Replicas
Logs
29.
ЧТО ЗАБИРАЕМ С СОБОЙМодель → production-сервис
Помните бота, который начал отвечать за 8 секунд?
Теперь вы знаете: скорее всего, не хватало реплик под
Latency и throughput нужно рассматривать вместе
Autoscaling помогает адаптироваться к нагрузке
Cold start нужно учитывать заранее
Мониторинг показывает реальное состояние сервиса
нагрузкой или batching был настроен неоптимально — и
вы умеете это чинить.
30.
СПАСИБОЗА ПРОСМОТР
Кирилл Веловатый
KARPOV.COURSES