詳細解釋
投機解碼(Speculative Decoding)是加速大型語言模型 (大語言模型 / 大模型)推理的技術,使用小模型快速生成候選token,大模型驗證,實現2-3倍加速。
核心思想:
- 觀察:大模型生成慢但準確
- 小模型:快但不夠準確
- 組合:小模型「猜測」,大模型「驗證」
- 接受機制:大模型同意小模型的預測則批量接受
工作流程:
- 小模型(草稿模型)快速自回歸生成K個token
- 大模型(目標模型)並行驗證這K個token
- 從左到右檢查,直到發現不一致
- 接受一致的token,在大模型的分布上重新採樣下一個
- 重複過程
加速原理:
- 小模型生成K個token的成本 ≈ 大模型生成1個token的成本
- 如果接受率高,實際生成K個token只花約1個的時間
- 通常接受率60-80%,總體2-3倍加速
- 理論保證:輸出分布與原大模型完全一致(無損)
草稿模型選擇:
- 小版本:7B草稿為70B目標服務
- 專用模型:訓練專門的輕量草稿模型
- 自我投機:同一模型的小步數為大步數服務(Medusa、Lookahead)
- 多頭:Medusa (推論加速)添加多個解碼頭預測未來token
挑戰:
- 記憶體:同時載入兩個模型
- 接受率:依賴小模型與大模型的一致性
- 簡單文本:接受率高,加速明顯
- 複雜文本:接受率低,加速有限
變體:
- Medusa:添加多個解碼頭,無需草稿模型
- Lookahead Decoding:維護n-gram池,無需額外模型
- 投機採樣:非自回歸生成候選
投機解碼是大型語言模型 (大語言模型 / 大模型)推理加速的重要方向。