С бурным развитием искусственного интеллекта (ИИ) большие языковые модели (LLM) стали краеугольным камнем обработки естественного языка (NLP). Эти модели демонстрируют выдающиеся способности к генерации и пониманию языка, что делает их неотъемлемой частью таких приложений, как машинный перевод, диалоговые системы и генерация текста. Однако по мере роста размера этих моделей их эффективность инференса и потребление ресурсов остаются существенными узкими местами для масштабного развёртывания.
В последние годы исследователи предложили различные методы оптимизации для повышения эффективности инференса LLM. В нашей предыдущей работе мы достигли ускорения инференса в 1,5 раза за счёт динамического сжатия KV-кэша на основе фреймворка vLLM, заложив прочную основу для оптимизации производительности LLM.
Эта статья подробно рассматривает две дополнительные стратегии оптимизации: спекулятивное декодирование и низкоточную квантизацию. Эти подходы направлены на максимальное использование вычислительных возможностей современного оборудования, снижение затрат на инференс и повышение скорости. Применяя эти методы, мы стремимся предложить новые перспективы и практические решения для повышения эффективности инференса LLM, решая проблемы масштабируемого развёртывания ИИ.
Спекулятивное декодирование
Технические принципы
Спекулятивное декодирование — это метод, ускоряющий инференс за счёт введения меньшей модели, которая генерирует несколько кандидатных токенов, а затем проверяемых большей моделью, что позволяет выполнять параллельное декодирование для повышения скорости. Возможность такого подхода основана на двух ключевых факторах:
Узкое место памяти
В современных GPU пропускная способность доступа к памяти часто ниже вычислительной скорости, необходимой для инференса, что делает процесс существенно ограниченным по памяти. Трафик памяти GPU во время инференса больших языковых моделей в первую очередь определяется размером модели, при этом у GPU часто остаётся избыточная вычислительная мощность. Используя этот избыток через параллельный инференс с помощью малой модели, можно повысить общую эффективность.
Точность предсказаний малой модели
Современные основные модели генерации языка обычно являются авторегрессионными моделями на основе архитектуры Transformer. Малые модели демонстрируют высокую точность в предсказании распространённых языковых шаблонов (например, коллокаций идиом или стандартных выражений). Когда малая модель успешно предсказывает следующий токен, большая модель может напрямую использовать этот результат, что значительно снижает вычислительные затраты.
Метод реализации
Метод спекулятивного декодирования включает следующие основные шаги:
-
Многораундовая генерация кандидатов
- Использование специально обученной малой модели для быстрого инференса, генерирующей несколько качественных кандидатных токенов для каждой позиции.
- Инновационное применение механизма адаптивного порога вероятности для динамического управления количеством кандидатов.
- Внедрение контекстно-зависимого механизма кэширования для повышения точности предсказаний малой модели при непрерывной генерации текста.
-
Эффективная стратегия верификации
- Разработка пакетного механизма верификации для группировки нескольких кандидатных токенов и отправки их в большую модель для однократного оценивания.
- Реализация стратегии раннего завершения для быстрого возврата результатов при обнаружении совпадения с высокой уверенностью.
- Асинхронная обработка результатов верификации для сокращения времени простоя GPU.
-
Интеллектуальная система планирования
- Динамическое балансирование распределения вычислительных ресурсов между предсказанием малой модели и верификацией большой модели.
- Адаптивное предсказание на основе исторической статистики для оптимизации стратегий генерации кандидатных токенов.
- Реализация мелкозернистого разделения задач и планирования для максимального использования оборудования.

Рис. 1. Спекулятивное декодирование с динамической длиной черновика
Результаты экспериментов
Основываясь на передовом фреймворке инференса vLLM, мы провели глубокую настройку и разработку, добившись значительного улучшения производительности. Мы провели эксперименты с моделью LLaMA-3.1-70B-Instruct на GPU H20 и протестировали сценарии с различной длиной контекста. Кроме того, мы сравнили производительность с vLLM без спекулятивного декодирования, сосредоточившись на пропускной способности при разных размерах батча; результаты экспериментов показаны на рисунке 2.
-
Улучшения производительности
- Достигнуто общее ускорение инференса в 1,4 раза при сохранении качества выходных данных.
- Полная совместимость с существующими функциями vLLM, возможность бесшовной интеграции в текущие системы.
- Поддержка языковых моделей различных масштабов, с особенно значительными улучшениями для крупномасштабных моделей.

Рис. 2. Диаграмма коэффициента ускорения спекулятивного декодирования.
-
Технические преимущества
- Вероятностная стратегия динамической выборки для эффективного составления и верификации токенов.
- Стабильный интеллектуальный механизм планирования, обеспечивающий постоянный эффект ускорения.
- Экономическая эффективность с низкими накладными расходами ресурсов.
Низкоточная квантизация
Технические принципы
- Обзор квантизации
Квантизация — это широко применяемая техника, которая снижает вычислительные затраты и затраты памяти больших языковых моделей (LLM) путём преобразования весов и активаций модели из представлений с высокой битовой шириной в представления с более низкой битовой шириной. В частности, многие методы включают квантизацию тензоров FP16 в целочисленные тензоры с низкой битовой шириной, как показано ниже:

- Пост-тренировочная квантизация (PTQ)
PTQ квантизует предварительно обученные модели без необходимости повторного обучения, тем самым избегая высоких затрат на переобучение. Однако применение традиционных методов квантизации к LLM сопряжено с уникальными проблемами:
-
- LLM демонстрируют более высокую частоту выбросов (outliers) в весах и активациях, а также более широкие диапазоны распределения по сравнению с меньшими моделями.
- Следовательно, эффективная квантизация LLM требует специализированных методов оптимизации для минимизации потери точности при сохранении эффективности.
Метод реализации
- Оптимизация выбросов
Наличие выбросов в весах и активациях больших языковых моделей представляет собой серьёзную проблему в процессе квантизации. Традиционные методы обычно обрабатывают выбросы с помощью клиппинга или простого масштабирования, что может хорошо работать для меньших моделей, но часто существенно влияет на производительность LLM.
Наш подход улучшает обработку выбросов с помощью детального анализа и стратегий оптимизации. Он не только уточняет вычисление выбросов, но и оптимизирует связанные структуры данных, гарантируя, что модель сохраняет эффективную вычислительную мощность при минимизации потери точности. Например, мы применяем более гибкую стратегию динамического распределения диапазона для иерархической обработки выбросов, что позволяет более точно улавливать характеристики модели.
- Улучшенные операторы и слияние слоёв
Мы разработали ряд улучшенных операторов, которые могут более эффективно обрабатывать квантизованные структуры данных. Например, с помощью техники слияния слоёв мы объединяем несколько последовательных операторов в один оператор во время прямого вычисления, чтобы уменьшить вычислительные накладные расходы и промежуточную передачу данных.
Кроме того, для распространённых операций, таких как умножение матриц в сочетании с функциями активации, мы разработали эффективные низкобитные операторы для ускорения инференса модели. Это улучшение не только значительно снижает требования к пропускной способности на аппаратном уровне, но и дополнительно повышает общую вычислительную эффективность.
- Уникальная схема квантизации FP8
В то время как основные методы квантизации в отрасли обычно используют преобразование из FP16 в INT8, этот подход может не подходить для сценариев, требующих более низкой точности. Наша схема квантизации FP8 вводит адаптивный коэффициент масштабирования для дальнейшего уменьшения битовой ширины при сохранении числовой выразительности модели. В реализации мы настраиваем соотношение экспоненты и мантиссы в FP8, чтобы лучше адаптироваться к характеристикам распределения LLM, гарантируя, что модель сохраняет точность даже при очень низкой битовой ширине.
- Квантизация KVCache
В сценариях, поддерживающих крупномасштабный инференс, эффективность хранения и доступа к KVCache имеет решающее значение. Традиционные методы часто применяют стандартные методы квантизации без оптимизации под специфические характеристики структур хранения KVCache.
Мы предлагаем специализированную технику квантизации KVCache, которая минимизирует требования к вычислительным ресурсам путём применения конкретных стратегий квантизации к запросам (queries) и парам ключ-значение (key-value pairs). В частности, мы оптимизируем динамические обновления и плотность хранения KVCache, комбинируя методы кусочной квантизации и разреженного хранения матриц, что значительно улучшает использование кэша в процессе инференса.
- Оптимизация процесса инференса
Веса модели в FP16 квантизуются в формат FP8 для инференса. Входные токены проходят через слой эмбеддингов и модуль Transformer, включающий механизмы внимания и прямосвязные сети.
Используя FP8 TensorCore и оптимизированный KVCache, система эффективно хранит и обновляет пары ключ-значение.
Линейные преобразования и слой Softmax генерируют распределение вероятностей на выходе, производя окончательный токен.
Этот подход использует вычислительную эффективность FP8 TensorCore для обеспечения более быстрого инференса при более низких вычислительных затратах. На рисунке 3 веса модели, изначально в формате FP16, квантизуются в FP8 для инференса, что значительно снижает накладные расходы на доступ к данным и повышает скорость. В процессе инференса LLM такие операции, как проекция QKV, flash attention и прямосвязные слои, выполняют умножение матриц в формате FP8. Эти вычисления ускоряются с помощью Tensor Cores, что приводит к существенному увеличению скорости инференса. Чтобы смягчить потерю точности, используется небольшой объём дополнительных данных для PTQ, гарантируя, что точность инференса модели остаётся неизменной. В сценариях с длинным текстом накладные расходы, связанные с доступом к данным KV, могут замедлить скорость инференса. Для решения этой проблемы данные KV также квантизуются в FP8, что дополнительно оптимизирует производительность инференса модели.

Рис. 3. Обзор конвейера квантизации точности FP8.
Результаты экспериментов
- На рисунке 4 показан коэффициент ускорения после применения низкоточной квантизации к Llama3-8B-BF16 при различных длинах входных и выходных данных (10000-1000, 5000-500, 2000-200) и размерах батча (Batch Size). Чем больше длина входных и выходных данных, тем более значителен эффект ускорения, особенно при инференсе с большими батчами. На одном GPU 4090 при запуске Llama3-8B-FP8-KV8 с ограничением ttft (time-to-first-token) менее 2 секунд размер батча составляет около 4, а коэффициент ускорения — 1,4x.

Рис. 4. Коэффициент ускорения за счёт квантизации FP8.
- Наш метод значительно снижает влияние выбросов при обработке больших длин входных и выходных данных и повышает вычислительную эффективность и эффективность передачи благодаря таким оптимизациям, как слияние слоёв. Традиционные отраслевые методы PTQ часто сталкиваются с трудностями при обработке больших длин входных и выходных данных в крупномасштабных моделях, но наше решение специально разработано для решения этой проблемы, обеспечивая стабильную производительность модели.
- Эксперименты показывают, что на GPU 4090 наш метод демонстрирует превосходное ускорение при обработке входных и выходных данных большой длины и средних размерах батча, сохраняя при этом задержку инференса (ttft) ниже 2 секунд, что удовлетворяет требованиям инференса в реальном времени.
Оценка качества
Чтобы протестировать различные API моделей (например, openrouter.ai) на тестовом наборе mmlu_pro (5-shot) с помощью инструмента lm-evaluation-harness, выполните следующие шаги для инференса с конфигурацией по умолчанию инструмента. Результаты показаны на рисунке 5.

Рис. 5. Сравнение показателей точного совпадения между Meta-Liama-3.1-8B-Instruct-FP8 и Meta-Liama-3.1-8B-Instruct.
Заключение
В этой статье представлены спекулятивное декодирование и низкоточная квантизация как взаимодополняющие методы, направленные на повышение эффективности инференса больших языковых моделей (LLM). Спекулятивное декодирование ускоряет процесс инференса за счёт использования меньшей модели для генерации кандидатных токенов, которые затем параллельно проверяются большей моделью, обеспечивая ускорение в 1,4 раза.
В отличие от этого, низкоточная квантизация снижает вычислительные накладные расходы и затраты памяти путём преобразования весов модели в представления с более низкой битовой шириной, сохраняя при этом производительность модели. В совокупности эти методологии предоставляют новые идеи и практические решения для достижения высокоэффективного инференса, дополняя существующие методы, такие как динамическое сжатие KV-кэша.
Originally published at Novita AI
Novita AI — это облачная платформа ИИ, которая предлагает разработчикам простой способ развёртывания моделей ИИ через наш простой API, а также предоставляет доступные и надёжные GPU-облака для создания и масштабирования.
Рекомендуемое чтение
