Speculative decoding на Qwen3.6-27B: чем тяжелее квантизация, тем выше прирост скорости
Бенчмарк speculative decoding на Qwen3.6-27B показал парадоксальный результат: чем меньше сжата модель (Q8 против Q4), тем больший прирост даёт спекулятивная генерация. DFlash — самый быстрый алгоритм в общем случае, MTP — стабильная альтернатива, EAGLE3 и ngram проигрывают. Результаты справедливы для узкого сценария (короткие выходы, один поток), под нагрузкой выигрыш сожмётся.
Помогает выбрать оптимальную стратегию ускорения LLM: для максимального эффекта от speculative decoding стоит использовать менее агрессивную квантизацию и алгоритмы типа DFlash/MTP. Важно учитывать, что реальный выигрыш в продакшн-сценариях будет скромнее.
Парадокс квантизации в speculative decoding
Бенчмарк speculative decoding (спекулятивной генерации) на модели Qwen3.6-27B выявил контринтуитивную закономерность: чем меньше сжата модель, тем больший прирост скорости даёт спекулятивная генерация. Все 10 протестированных конфигураций показали порядок Q8 > Q6 > Q4 по множителю ускорения.
Механика парадокса
Причина — в балансе накладных расходов. Acceptance rate (процент принятых токенов драфт-модели) не зависит от квантизации при одинаковой глубине. Но базовый шаг замедляется пропорционально размеру весов, а overhead на драфт+верификацию остаётся постоянным. Для лёгких квантов это съедает весь выигрыш.
Исключение: nvfp4 в связке с SGLang — самая быстрая пара квант/движок в абсолюте, нарушающая тренд.
Что быстрее всего
DFlash — лидер среди универсальных алгоритмов. Weaver обгоняет его, но это outlier: форк llama.cpp, заточенный под одну модель/квант-комбинацию, не общее решение (детали в gist).
MTP — стабильная вторая позиция во всех конфигурациях. EAGLE3 уступает обоим, годится только как фолбэк при отсутствии драфтера для DFlash. ngram не стоит внимания: ~1.03× прироста независимо от кванта, под конкуренцией вообще негативный эффект.
Аномалия и оговорки
Выявлен странный баг: llama.cpp MTP на UD-Q4 патологически медленный — Q4 MTP-3 в абсолютных tok/s медленнее Q6 MTP-3 при идентичном acceptance, что пропускная способность не объясняет. Вывод корректный, причина неизвестна.
Важно: это узкий датапоинт (Spec-Bench, короткие выходы, greedy, batch=1) — почти best-case для spec-decode. Под конкуренцией выигрыш на поток сжимается, длинные контексты сожмут ещё сильнее. Это верхняя граница для данного workload, не универсальный спидап. Точности пока не сравнивали — неизвестно, окупает ли качество тяжёлых квантов их оставшееся отставание по скорости.
Ключевые выводы
- Speculative decoding даёт больший прирост на тяжёлых квантах (Q8 > Q6 > Q4) из-за постоянного overhead драфт+верификации при замедлении базовых шагов
- DFlash — самый быстрый универсальный алгоритм, MTP — надёжная альтернатива, EAGLE3 и ngram проигрывают
- Результаты справедливы для идеального сценария (короткие выходы, batch=1); под конкуренцией и на длинных контекстах выигрыш сожмётся
- nvfp4+SGLang — самая быстрая пара квант/движок, нарушающая общий тренд
- llama.cpp содержит необъяснимый баг: MTP на UD-Q4 аномально медленный
Автор: Анна Мельникова · Источник: reddit.com
Это тот редкий случай, когда бенчмарк честно признаёт свои границы. Автор не продаёт "революционное ускорение", а чётко оговаривает: batch=1, короткие выходы, без конкуренции — почти лабораторные условия. В реале выигрыш сожмётся, но сама закономерность интересна.
Парадокс "тяжелее квант = больше спидап" объясняется просто: overhead spec-decode фиксирован, а базовая модель тормозит от весов. Легко забыть, что оптимизация — это баланс накладных расходов, а не магия. Аномалия с llama.cpp на Q4 намекает, что даже в mature-движках водятся баги производительности. Ждём A/B точности: если Q8 не даёт преимущества в качестве, весь выигрыш бессмысленен.
Комментарии