Оптимизация больших языковых моделей

Ускорение вывода LLM:
квантование, спекулятивное декодирование и Continuous Batching

Практическое руководство по современным методам ускорения инференса с примерами библиотек vLLM, TensorRT-LLM и TGI

Современные языковые модели становятся всё больше, а требования к скорости и эффективности инференса — всё жёстче. В этой статье разберём четыре ключевых подхода, которые позволяют значительно ускорить работу моделей без заметной потери качества.

Квантование моделей

INT8

Целочисленное квантование

Преобразует веса из FP16/BF16 в 8-битные целые числа. Снижает потребление памяти в 2 раза и ускоряет вычисления на GPU с поддержкой INT8.

Пример: Llama-2-7B уменьшается с 14 ГБ до 7 ГБ
FP8

Квантование с плавающей точкой

Использует 8-битные числа с плавающей точкой (E4M3/E5M2). Сохраняет динамический диапазон лучше INT8 и отлично работает на новых GPU NVIDIA Hopper.

AWQ

Activation-aware Weight Quantization

Защищает наиболее важные веса от квантования, анализируя активации. Один из лучших методов по соотношению качество/скорость на 4-битном уровне.

Спекулятивное декодирование

Метод позволяет генерировать сразу несколько токенов за один проход большой модели. Небольшая «черновая» модель предлагает кандидатов, а основная модель проверяет их параллельно.

2–3×
ускорение
0–1%
потеря качества
Популярные реализации:
  • Medusa
  • Speculative Sampling (Google)
  • EAGLE

Continuous Batching (вечно-дружественный батчинг)

В отличие от классического статического батчинга, Continuous Batching позволяет добавлять и удалять запросы из батча в реальном времени. Это особенно эффективно при работе с переменной длиной последовательностей и онлайн-запросами.

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

Популярные библиотеки

vLLM Open Source
Поддерживает Continuous Batching, PagedAttention и AWQ. Одна из самых быстрых библиотек для онлайн-инференса.
TensorRT-LLM
От NVIDIA. Поддержка FP8, INT8 и спекулятивного декодирования. Лучшая производительность на H100/A100.
TGI Hugging Face
Простой в развёртывании HTTP-сервер с поддержкой квантования и Continuous Batching.
Все описанные методы можно комбинировать для достижения максимальной производительности