Исследования14 августа 2026 г., 11:17 МСК🤖 Auto

Trie Automata: ускорение vLLM в 29 раз для генерации из больших наборов

Исследователи представили Trie Automata — механизм, устраняющий «стены кардинальности» при ограниченной декодировке. Решение обеспечивает 29-кратный рост пропускной способности vLLM при работе с тысячами валидных строк.

Баннер новости 5782

Проблема «стены кардинальности»

Большие языковые модели (LLM) всё чаще требуют генерации структурированных данных, соответствующих жестким схемам. Типичный сценарий — выбор значения из конечного набора строк (например, JSON-поля или коды статусов). Существующие системы ограниченного декодирования (constrained decoding), такие как XGrammar (бэкенд в vLLM и SGLang), используют компиляцию общих грамматик. При увеличении количества допустимых значений до тысяч эта операция становится критически медленной, создавая так называемую «стену кардинальности» (cardinality wall).

Решение: Trie Automata

Авторы статьи (Xingzi Xu, Karim Bouyarmane) предлагают специализированный механизм на основе Trie Automata. Алгоритм использует структуру префиксных деревьев и алгоритм Ахо-Корасик для многошагового поиска паттернов. Ключевое отличие — предвычисление масок допустимых токенов для каждого узла автомата. Это позволяет обойти стандартный конвейер направленного декодирования (guided decoding pipeline), сделав процесс обслуживания stateless (без сохранения состояния).

Ключевые метрики производительности

Эксперименты показали радикальное улучшение показателей по сравнению с XGrammar. Ниже приведено сравнение базовых вычислений и итоговой пропускной способности:

Метрика Trie Automata XGrammar (vLLM/SGLang) Ускорение
Время вычисления маски токена (на шаг) 0.65 мкс 5.8 мкс ~7x
Скорость компиляции (при K >= 300) Быстрее Медленнее 2–6.5x
Пропускная способность (Throughput) vLLM 219 req/s 7.5 req/s 29x

Тестирование проводилось при размере батча 256. Итоговое ускорение в 29 раз складывается не только из алгоритмической оптимизации, но и из экономии ресурсов за счет отсутствия накладных расходов на интеграцию с конвейером.

Масштабируемость и совместимость

Метод гарантирует 100% валидность выходных данных. Время компиляции остается в пределах 100 мс даже для наборов размером до 10 000 элементов (K = 10,000). Стоимость вычислений на каждом шаге генерации (per-step cost) остается плоской (flat) и не зависит от размера множества, что критично для стабильности latency.

Исследование протестировано на семи семействах токенизаторов с размером словаря от 32K до 262K, что подтверждает универсальность подхода для современных архитектур LLM.

Источник: arXiv cs.AI ↗