ChatPaper.aiChatPaper

Пакетное спекулятивное декодирование, выполненное правильно

Batch Speculative Decoding Done Right

October 26, 2025
Авторы: Ranran Haoran Zhang, Soumik Dey, Ashirbad Mishra, Hansi Wu, Binbin Li, Rui Zhang
cs.AI

Аннотация

Спекулятивное декодирование ускоряет вывод LLM, используя небольшую черновую модель для предложения нескольких токенов, которые целевая модель проверяет параллельно. Расширение этой идеи на батчи крайне важно для промышленного обслуживания, однако оно порождает проблему рваных тензоров: последовательности в одном батче принимают разное количество черновых токенов, что нарушает правое выравнивание и искажает позиционные идентификаторы, маски внимания и состояние KV-кэша. Мы демонстрируем, что несколько существующих реализаций батчей нарушают эквивалентность вывода — фундаментальное требование, согласно которому спекулятивное декодирование должно порождать идентичные последовательности токенов стандартному авторегрессионному生成. Эти нарушения происходят именно из-за некорректного обращения с проблемой рваных тензоров. В ответ мы (1) характеризуем требования синхронизации, гарантирующие корректность, (2) представляем ориентированный на корректность батчевый метод спекулятивного декодирования EQSPEC, который выявляет, что перевыравнивание занимает 40% накладных расходов, и (3) представляем EXSPEC, который поддерживает скользящий пул последовательностей и динамически формирует группы одинаковой длины, чтобы сократить накладные расходы на перевыравнивание, сохраняя при этом спекулятивное ускорение для каждой последовательности. На наборе данных SpecBench, для пар целевая/черновая модель Vicuna-7B/68M, Qwen3-8B/0.6B и GLM-4-9B/0.6B, наш подход демонстрирует до 3-кратного увеличения пропускной способности при размере батча 8 по сравнению с размером батча 1, с эффективным масштабированием до размера батча 8, сохраняя при этом 95% эквивалентности вывода. Наш метод не требует специальных ядер и чисто интегрируется с существующими стеками вывода. Наш код доступен по адресу https://github.com/eBay/spec_dec.
English
Speculative decoding speeds up LLM inference by using a small draft model to propose multiple tokens that a target model verifies in parallel. Extending this idea to batches is essential for production serving, but it introduces the ragged tensor problem: sequences in the same batch accept different numbers of draft tokens, breaking right-alignment and corrupting position IDs, attention masks, and KV-cache state. We show that several existing batch implementations violate output equivalence-the fundamental requirement that speculative decoding must produce identical token sequences to standard autoregressive generation. These violations occur precisely due to improper handling of the ragged tensor problem. In response, we (1) characterize the synchronization requirements that guarantee correctness, (2) present a correctness-first batch speculative decoding EQSPEC that exposes realignment as consuming 40% of overhead, and (3) introduce EXSPEC, which maintains a sliding pool of sequences and dynamically forms same-length groups, to reduce the realignment overhead while preserving per-sequence speculative speedups. On the SpecBench dataset, across Vicuna-7B/68M, Qwen3-8B/0.6B, and GLM-4-9B/0.6B target/draft pairs, our approach achieves up to 3times throughput improvement at batch size 8 compared to batch size 1, with efficient scaling through batch size 8, while maintaining 95% output equivalence. Our method requires no custom kernels and integrates cleanly with existing inference stacks. Our code is available at https://github.com/eBay/spec_dec.
PDF231December 1, 2025