Команды EAGLE, vLLM и TorchSpec представили EAGLE 3.1 — новую версию алгоритма спекулятивного декодирования. Разработчики выяснили, что у предыдущих версий была фундаментальная проблема: при глубокой спекуляции дraftsman постепенно теряет фокус на исходных токенах и начинает ориентироваться на собственные сгенерированные токены. Этот эффект назвали attention drift.
Корень проблемы — в двух вещах. Во-первых, входное представление становится несбалансированным: скрытые состояния из верхних слоёв начинают доминировать. Во-вторых, из-за ненормализованного residual-пути величина этих состояний растёт с каждым шагом спекуляции. В результате на больших глубинах дraftsman работает нестабильно.
В EAGLE 3.1 эту проблему решили двумя архитектурными правками. После каждого целевого скрытого состояния добавили нормализацию через полносвязный слой (FC normalization). И подали на следующий шаг декодирования уже пост-нормализованные скрытые состояния. По сути, это заставило дraftsman работать как рекурсивный вызов, а не как последовательное наращивание слоёв.
Улучшения оказались серьёзными. EAGLE 3.1 лучше переносит поведение с тренировки на инференс, стабильнее работает с длинным контекстом и разными chat-шаблонами. На длинных контекстах длина принятых токенов выросла вдвое по сравнению с EAGLE 3.
TorchSpec теперь поддерживает обучение EAGLE 3.1 и упрощает эксперименты с новыми алгоритмами. Для демонстрации команда выпустила готовый дraftsman для модели Kimi K2.6 — он лежит на Hugging Face.
В vLLM EAGLE 3.1 добавили как конфигурационное расширение существующей поддержки EAGLE 3. Совместимость с чекпоинтами EAGLE 3 сохранена, так что обновить модель в продакшне можно через тот же код. Поддержка уже влита в main-ветку vLLM и появится в ночных сборках, а также в релизе v0.22.0.
На бенчмарке SPEED-Bench с Kimi K2.6 EAGLE 3.1 показал 2.03-кратный прирост пропускной способности на одного пользователя при concurrency 1. При росте нагрузки ускорение остаётся ощутимым — 1.71x при C=4 и 1.66x при C=16.