核心概念
本文提出了一種名為 Ouroboros 的高效解碼框架,透過詞組級別的草稿生成和驗證,以及詞組重用等策略,在不損失模型性能的情況下,顯著提升了推測解碼的速度。
要約
Ouroboros:逐詞組生成更長草稿以實現更快的推測解碼
這篇研究論文介紹了一種名為 Ouroboros 的新型解碼框架,旨在加速大型語言模型 (LLM) 的推論過程。作者指出,現有的推測解碼方法雖然能夠在不損失模型性能的情況下提升推論速度,但其草稿生成效率卻成為最終速度提升的瓶頸。
為了解決這個問題,Ouroboros 提出了以下改進:
1. 詞組級別的草稿生成
不同於逐個詞彙生成草稿,Ouroboros 採用詞組級別的生成方式,並行生成多個詞組,從而更有效地生成更長的草稿。
2. 詞組拼接延長草稿
Ouroboros 利用詞組拼接的方式,以極低的成本進一步延長草稿,並透過定制的 Transformer 注意力遮罩機制,僅需一次前向傳遞即可完成對多個延長草稿的驗證。
3. 從驗證結果中生成詞組
Ouroboros 並未完全捨棄未被目標模型接受的詞彙,而是從中篩選出高質量的詞組,並將其加入詞組庫,用於加速後續的草稿生成。
4. 重用歷史上下文中的詞組
Ouroboros 還提出重用歷史對話中生成的詞組,以利用上下文相似性進一步提升推論速度。
重要的是,Ouroboros 不需要任何額外的訓練,並且可以應用於所有使用推測解碼的應用程序。實驗結果表明,Ouroboros 在不影響任務性能的前提下,可以顯著提升推論速度,相較於現有的推測解碼和lookahead decoding方法,分別有高達 2.8 倍和 1.9 倍的加速。
研究的意義
Ouroboros 為解決推測解碼中的草稿生成效率問題提供了一種新的思路,其提出的詞組級別生成和重用策略具有很高的實用價值。該方法的訓練無關特性也降低了其應用門檻,有利於更廣泛地應用於各種 LLM 推論場景。
未來研究方向
未來可以進一步探索基於訓練的 Ouroboros 版本,以期獲得更大的加速效果。此外,將 Ouroboros 與高效的 LLM 實現和模型壓縮方法相結合,也是一個值得研究的方向。
統計
Ouroboros 在 HumanEval 數據集上使用 Yi 34B/6B 模型,最高可達 61.2 token/s 的生成速度。
與貪婪解碼相比,Ouroboros 速度提升了 3.9 倍。
與推測解碼相比,Ouroboros 速度提升了 2.8 倍。
與 lookahead 解碼相比,Ouroboros 速度提升了 1.9 倍。
引用
"Under such a drafting-verification framework, drafting efficiency has become a bottleneck in the final speedup of speculative decoding."
"Notably, Ouroboros does not require any additional training, and can be applied in all applications with speculative decoding."
"Compared with the recent competitive decoding methods, Ouroboros achieves speedups of up to 1.9× over lookahead decoding, up to 2.8× over speculative decoding, and up to 3.9× over naive autoregressive decoding."