GPT-4可能也在用的推測解碼是什么?一文綜述前世今生和應用情況
眾所周知,大型語言模型(LLM)的推理通常需要使用自回歸采樣,這個推理過程相當緩慢。為了解決這個問題,推測解碼(Speculative Decoding)已經成為 LLM 推理的一種新型采樣方法。這種方法在每個采樣步驟中,會先預測幾個可能的 token,然后并行地驗證是否準確。與自回歸解碼不同,推測解碼能夠單步解碼多個 token,從而加速推理。
雖然推測解碼可以大有作為,但也引出了一些需要進一步調研的關鍵問題。首先需要考慮如何選擇或設計近似模型,以在推測準確性和生成效率之間取得平衡。其次,有必要考慮評估標準是否能夠保持生成多樣性和輸出質量。最后,應仔細考慮對齊近似模型和目標大模型之間的推理過程,以提高推理準確性。
基于上述問題,來自香港理工大學、北京大學、MSRA 以及阿里的研究者對推測解碼進行了全面的調研。機器之心進行了總結整理。
- 論文標題:Unlocking Efficiency in Large Language Model Inference: A Comprehensive Survey of Speculative Decoding
- 論文地址:https://arxiv.org/pdf/2401.07851.pdf
推測解碼的演化之路
本文首先深入介紹了推測解碼的早期研究情況,并通過其演變的時間表進行了說明(如下圖 2 所示)。
分塊采樣(Blockwise Decoding)是一種在 Transformer 解碼器上集成額外前饋神經(FFN)頭的方法,能夠單步生成多個 token。
為了進一步釋放分塊采樣算法的潛力,推測解碼的方案被提了出來。這種算法包含一個獨立的近似模型,通常是一個專門的非自回歸 Transformer,能準確高效地執行生成任務。
繼推測解碼出現之后,有學者接著提出了「投機采樣算法」(Speculative Sampling),在推測解碼中加入了無損加速核采樣。
簡而言之,這些在推測解碼方面的開創性努力已經逐漸鞏固了 Draftthen-Verify 范式,展示了其在 LLM 加速方面的巨大潛力。
公式和定義
本節首先簡要概述了標準自回歸解碼的內容,然后深入闡述了推測解碼算法,包括對形式定義、方法論的全面描述以及算法的詳細闡述。
本文提出了一個組織框架來對相關研究進行分類,如下圖 3 所示。
本文在前人的基礎上,對「推測解碼算法」再次進行了正式的定義:
推測解碼算法是一種先生成后驗證的解碼模式,在每個解碼步驟,它首先需要能生成多個可能的 token,然后使用目標大語言模型并行地評估所有這些 token,以加快推理速度。算法表 2 是一個詳細的推測解碼過程。
隨后,本文深入研究了這一范式不可或缺的兩個基本子步驟 —— 生成和評估。
生成
在每個解碼步驟中,推測解碼算法首先會生成多個可能的 token,作為對目標大語言模型的輸出內容的推測。
本文將生成的內容分為兩類:獨立生成(independent drafting )和自生成(self-drafting),并在下表 1 中總結了其公式。
驗證
在每個解碼步驟中,并行地驗證近似模型生成的 token,以確保輸出質量與目標大語言模型高度一致。這個過程還確定了每一步可允許的 token 數量,這是一個能夠影響加速情況的一個重要因素。
對各種驗證標準的總結如下表 2 所示,包括那些在大語言模型推理中支持貪心解碼和核采樣的標準。
生成和驗證的子步驟會持續迭代,直到滿足終止條件為止,即 [EOS] token 被解碼或句子達到最大長度。
此外,本文引入了 token 的樹驗證算法,這是一種逐步提高 token 接受度的有效策略。
模型對齊
提高推測準確性是加速推測解碼的關鍵:近似模型的預測行為越接近目標大語言模型,對其生成 token 的接受率就越高。為此,現有的工作探索了各種知識提取(KD)策略,以使近似模型的輸出內容與目標大語言模型的輸出內容保持一致。
分塊解碼首先采用序列級知識提取(Seq-KD)來進行模型對齊,用目標大語言模型生成的句子訓練近似模型。
此外,Seq-KD 也是提高并行解碼生成質量的有效策略,提高了并行解碼的生成性能。
下表 3 中總結了現有推測解碼方法的主要特征,包括近似模型的類型或生成策略、模型對齊方法、支持的評估策略和加速程度等情況。
應用
除了作為一種通用范式外,最近的工作還表明,推測解碼的一些變體在特定任務中表現出非凡的有效性。此外,其他研究已經將這種范式應用于解決某些應用場景特有的延遲問題,從而實現推理加速。
例如,有些學者認為,推測解碼特別適合于模型輸入和輸出高度相似的任務,如語法糾錯和檢索增強生成。
除了這些工作之外,RaLMSpec(Zhang et al., 2023b)用推測解碼來加速檢索增強語言模型(RaLMs)。
機遇與挑戰
問題 1:如何權衡預測內容的準確性和生成效率?盡管目前對這個問題取得了一些進展,但在使近似模型與目標大語言模型生成內容保持一致方面仍有相當大的改進空間。除了模型對齊之外,其他因素(如生成質量和預測長度的確定)也會影響推測的準確性,值得進一步探索。
問題 2:如何將推測解碼與其他領先技術相結合?作為一種通用的解碼模式,推測解碼已經與其他先進技術相結合,展示了其潛力。除了加速純文本的大語言模型之外,推測解碼在多模式推理中的應用,如圖像合成、文本到語音合成和視頻生成,也是未來研究的一個有趣而有價值的方向。
更多細節內容請參閱原論文。