Что такое механизм инференса на самом деле? — Чарльз Фрай, Modal
Всплеск трафика на генераторе музейных табличек приводит к увеличению времени ожидания первого токена и замедлению обработки последующих. Чарльз Фрай анализирует эти симптомы на панели мониторинга вывода и показывает, как дополнительные реплики разгружают очередь. В примере показано, как приложение, видимое пользователям, взаимодействует с механизмом, стоящим за его API. Он отслеживает запрос через операции ввода-вывода сервера, токенизацию, планирование, выполнение модели и детокенизацию, используя SGLang и vLLM в качестве ориентиров. Планировщик контролирует, что поступает на графический процессор, и может стать узким местом, даже несмотря на то, что выполняет гораздо меньше вычислений. Чат-боты, фоновые агенты и обработчики документов предъявляют разные требования к этому механизму, при этом ограничения по задержке, длина входных и выходных данных, а также повторное использование префиксов определяют развертывание. Затем Фрай раскрывает методы повышения производительности внутри движка. Кэширование ключ-значение повторно использует ранее вычисленную работу, в то время как емкость и структура кэша определяют, насколько эффективно движок может поддерживать поток запросов. Графы CUDA уменьшают повторяющуюся работу на ЦП, которая запускает операции на графическом процессоре. Спекулятивное декодирование позволяет модели-спекулянту предлагать несколько токенов для совместной проверки целевой моделью. Библиотеки ядра обрабатывают большую часть базовых вычислений, оставляя движку задачу организации пакетов и избегая помех для графического процессора. В заключительном разделе рассматриваются вопросы корректности и отладки в производственной среде: оценка фактического развертывания, регистрация идентификаторов токенов для проблем с токенизатором и сбор достаточного количества метрик и трассировок для исследования регрессий между репликами. Небольшие эталонные движки предоставляют отправную точку для изучения кода и постановки более глубоких архитектурных вопросов. Информация о докладчике: https://charlesfrye.github.io https://modal.com/blog/spec-is-all-u-need https://github.com/sgl-project/mini-sglang Временные метки: 0:00 - Введение и вопрос о механизме вывода 2:15 - Схема архитектуры 3:27 - Почему важна разработка механизмов вывода 6:34 - Приложение для музейных табличек 8:11 - Три типа рабочих нагрузок 10:16 - Предварительное заполнение, декодирование и метрики задержки 15:36 - Отслеживание запроса через механизм 18:31 - Серверы, механизмы, сессии и состояние 20:53 - Планировщик и узкое место GPU 24:59 - Жизненный цикл запроса и пакетная обработка 29:12 - Вопросы токенизации и задержки 32:56 - Процессы, Python и хост накладные расходы 36:36 - Выполнение модели и бэкэнды ядра 44:41 - Параллелизм и нагрузка на кэш 46:43 - Кэширование ключ-значение и повторное использование префиксов 49:02 - Накладные расходы хоста и графики CUDA 50:50 - Спекулятивное декодирование 53:53 - Корректность и наблюдаемость производительности 56:20 - Чтение панели мониторинга под нагрузкой 58:16 - Эталонные механизмы и дополнительные ресурсы
Название:
Что такое механизм инференса на самом деле? — Чарльз Фрай, Modal
Категория:
Разное