跳到內容

技術

推測式解碼 (Speculative decoding)

Speculative decoding

用小模型先預測幾個 token、大模型一次驗證的推理加速技巧,能在不損失品質下讓 LLM 生成快 2-3 倍。

登入以收藏
Speculative decoding 是不改變輸出的推理加速技巧。一個小的「draft」模型(便宜)先生成接下來 4-8 個 token;大的「target」模型用一次 forward pass 同時驗證這些 token。target 同意的 token 接受,第一個不同意的修正掉,後面的丟掉。然後重複。 它重要的原因是:LLM 生成的瓶頸是序列化的——每個 token 都要跑一次完整的 forward pass。把 target 的檢查 batch 起來,等於用一些算力換更少的序列化 pass,得到 2-3× 的時鐘速度提升,而輸出的機率分布跟單獨用 target 一模一樣。 舉個例子:單獨跑 Llama 3 70B 可能 40 tokens/sec。配一個 Llama 3 8B draft 模型,可能變 100 tokens/sec,輸出分布一模一樣。這個技巧在 draft 跟 target 常常同意時效果最好,所以 draft 通常是同家族的小版本。 主流推理引擎現在都預設支援:vLLM、TensorRT-LLM、llama.cpp 都有。OpenAI、Anthropic、Google 的 API 內部幾乎肯定用某種 speculative decoding。延伸閱讀:KV cache、inference、draft model、batching。

最後更新: 2026-04-29

We use cookies

Anonymous analytics help us improve the site. You can opt out anytime. Learn more