Draft Model Knows When to Stop: Self-Verification Speculative Decoding for Long-Form Generation

Ziyin Zhang, Jiahao Xu, Tian Liang, Xingyu Chen, Zhiwei He +2 more
11/27/2024
cs.CLcs.AI

No official code found. Best implementation: Geralt-Targaryen/SVIP (13 stars, MIT, last commit 2024-11-28).

Abstract

Conventional speculative decoding (SD) methods utilize a predefined length policy for proposing drafts, which implies the premise that the target model smoothly accepts the proposed draft tokens. However, reality deviates from this assumption: the oracle draft length varies significantly, and the fixed-length policy hardly satisfies such a requirement. Moreover, such discrepancy is further exacerbated in scenarios involving complex reasoning and long-form generation, particularly under test-time scaling for reasoning-specialized models. Through both theoretical and empirical estimation, we establish that the discrepancy between the draft and target models can be approximated by the draft model's prediction entropy: a high entropy indicates a low acceptance rate of draft tokens, and vice versa. Based on this insight, we propose SVIP: Self-Verification Length Policy for Long-Context Speculative Decoding, which is a training-free dynamic length policy for speculative decoding systems that adaptively determines the lengths of draft sequences by referring to the draft entropy. Experimental results on mainstream SD benchmarks as well as reasoning-heavy benchmarks demonstrate the superior performance of SVIP, achieving up to 17% speedup on MT-Bench at 8K context compared with fixed draft lengths, and 22% speedup for QwQ in long-form reasoning.

View on arXivView PDF

Code Implementations(1)

MIT

EMNLP 2025

131PythonNov 28, 20241 years agoMIT

Similar Papers

Cite this paper

@article{zhang2024draft,
  title  = {Draft Model Knows When to Stop: Self-Verification Speculative Decoding for Long-Form Generation},
  author = {Ziyin Zhang and Jiahao Xu and Tian Liang and Xingyu Chen and Zhiwei He and Rui Wang and Zhaopeng Tu},
  year   = {2024},
  eprint = {2411.18462},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2411.18462v2}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2411.18462.svg)](https://codeofpaper.com/paper/2411.18462)

Discussion