llama.cpp 引入了一種新的提示詞查找草稿技術,透過在提示詞內進行字串比對來生成候選詞元序列,將草稿步驟的處理速度提升了 42 倍。這項優化在不需額外草稿模型的情況下,顯著降低了自回歸解碼的延遲,為本地大型語言模型使用者提供了輕量級的替代方案,有望提升系統的響應性與易用性。

該技術依賴 N-Gram 快取在輸入提示詞中尋找匹配項,其效果高度取決於工作負載的特性。在提示詞重複性高的工作負載下,N-Gram 快取能發揮最大效益,帶來顯著增益;但對於多變的一次性提示詞,效果則相對有限。此外,雖然草稿步驟實現了 42 倍的加速,但整體端到端的加速效果仍取決於草稿階段與主模型推論所佔的時間比例。

事件背景

猜測解碼是一種透過使用較小、較快的模型(或啟發式方法)來預測即將生成的詞元,並由大模型進行平行驗證,從而加速大型語言模型生成的技術。提示詞查找解碼是猜測解碼的一種特定形式,它取代了草稿模型,改為對輸入提示詞進行簡單的字串比對,利用文本中的重複模式來高效生成草稿詞元。

社群觀察

社群成員希望此功能能合併至 llama.cpp 的主程式碼庫中,但也有人擔心會導致分支版本過多。使用者指出效能增益高度依賴於工作負載的模式,重複性提示詞能獲得最大效益,同時也有人建議自動化工具有助於管理各種變體版本的整合。