Learning to Draft: Adaptive Speculative Decoding with Reinforcement Learning

Jiebin Zhang, Zhenghan Yu, Liang Wang, Nan Yang, Eugene J. Yu +6 more
3/2/2026
cs.CL

No official code found. Best implementation: zhzihao/Learning-to-Draft (23 stars, Apache-2.0, last commit 2026-03-01).

Abstract

Speculative decoding accelerates large language model (LLM) inference by using a small draft model to generate candidate tokens for a larger target model to verify. The efficacy of this technique hinges on the trade-off between the time spent on drafting candidates and verifying them. However, current state-of-the-art methods rely on a static time allocation, while recent dynamic approaches optimize for proxy metrics like acceptance length, often neglecting the true time cost and treating the drafting and verification phases in isolation. To address these limitations, we introduce Learning to Draft (LTD), a novel method that directly optimizes for throughput of each draft-and-verify cycle. We formulate the problem as a reinforcement learning environment and train two co-adaptive policies to dynamically coordinate the draft and verification phases. This encourages the policies to adapt to each other and explicitly maximize decoding efficiency. We conducted extensive evaluations on five diverse LLMs and four distinct tasks. Our results show that LTD achieves speedup ratios ranging from 2.24x to 4.32x, outperforming the state-of-the-art method Eagle3 up to 36.4%.

View on arXivView PDF

Code Implementations(1)

Apache-2.0

Official implementation of "Learning To Draft: Adaptive Speculative Decoding with Reinforcement Learning" (ICLR 2026)

238Shell, PythonFeb 15, 20267 months agoApache-2.0

Similar Papers

Cite this paper

@article{zhang2026learning,
  title  = {Learning to Draft: Adaptive Speculative Decoding with Reinforcement Learning},
  author = {Jiebin Zhang and Zhenghan Yu and Liang Wang and Nan Yang and Eugene J. Yu and Zheng Li and Yifan Song and Dawei Zhu and Xingxing Zhang and Furu Wei and Sujian Li},
  year   = {2026},
  eprint = {2603.01639},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2603.01639v1}
}

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/2603.01639.svg)](https://codeofpaper.com/paper/2603.01639)

Discussion