白話EAGLE2:解鎖大模型的“打草稿”技術 原創
實時了解業內動態,論文是最好的橋梁,專欄精選論文?重點解讀熱點論文,圍繞著行業實踐和工程量產。若在某個環節出現卡點,可以回到大模型必備腔調?或者LLM背后的基礎模型?重新閱讀。而最新科技(Mamba,xLSTM,KAN)?則提供了大模型領域最新技術跟蹤。
1.總覽EAGLE-2
EAGLE-2是一種加速大型語言模型(LLM)推理過程的技術。具體來說,它采用了基于推測性采樣(speculative sampling)的技術,它通過引入動態草稿樹和草稿模型的置信度分數來提高LLM的推理效率。EAGLE-2能確保模型生成的文本概率分布不變,也使得其成為一種無損加速算法。
- 推測性采樣(Speculative Sampling)是一種通過生成和驗證多個候選詞來加速LLM推理的方法。具體來說,它首先使用一個小模型快速生成一些候選詞(Draft),然后用更大的模型來驗證這些候選詞正確性。
- 草稿樹(Draft Tree)是一種數據組織結構,用來組織和存儲草稿模型(Draft Model)生成的候選詞。
- 動態草稿樹(Dynamic Draft Trees)是在EAGLE-2過引入的,它改進了傳統靜態草稿樹的局限性。動態草稿樹會根據草稿模型的置信度分數和生成上下文,動態調整草稿樹的結構。
- 置信度分數是指草稿模型對某個候選詞的信心程度,它近似表示該候選詞被最終模型接受的概率。
先來感受一下EAGLE-2技術令人震撼的效果,在各種的模型的推理上遙遙領先,基本面能夠達到3-4倍數的加速。
上面的統計結果在temperature=0時候的加速比。
temperature是LLM推理的超參數。大模型在預測下一個字符的時候,會針對詞匯表的所有候選者都生產預測的概率,0代表選擇永遠選擇概率最高的。隨著temperature設置數據的增加,下一個預測字符的隨意性就會增加
上圖中,對于推測采樣,Vicuna系列使用Vicuna-68M作為草稿模型。LLaMA2-Chat 7B、13B 和 LLaMA3-Instruct 8B缺乏合適的草稿模型,標記為 N/A。LLaMA2-Chat 70B和 LLaMA3-Instruct 70B分別使用LLaMA2-Chat 7B和LLaMA3-Instruct 8B作為草稿模型。在表 1 中展示了與其他方法的比較,但該圖僅展示了一個子集,包括這些方法中最快的EAGLE。
2.Speculative Sampling
推測采樣技術
推測采樣技術是鼻祖,其核心思想是先起草(Draft)然后驗證(Verification):快速生成一個可能正確的草案,然后檢查草案中哪些Token可以被接受。
2023年5月份提出的一種推測技術如上圖所示,每行代表算法一次迭代。
此處的近似模型,或者稱為草稿模型的是一個6M的類GPT的解碼器。這個模型是利用8k個Token訓練出來的,目標模型是具有97M個參數的類GPT解碼器!
綠色標記是近似(草稿)模型提出的建議,而被目標模型接受,而紅色和藍色標記分別是被拒絕的建議及其更正。例如,在第一行中,目標模型僅運行了一次,生成了5個Token。
2024年2月份的Ouroboros針對打草稿的技術進行加速。它從前瞻解碼中得到啟發,使用草稿短語直接加速目標模型T。因為每輪草稿短語都需要目標模型T的前向傳遞來驗證,因此限制了前瞻解碼的整體加速效果。
它先通過使用現有的較小模型(橙色部分)進行草稿,然后以低成本生成草稿短語(粉色部分),緊接這并行 的方式使用目標LLM來驗證草稿。在這種草稿-驗證框架下,打草稿的效率已成為這種推測采樣技術的加速瓶頸。但是它以較低的成本生成更長的草稿可以帶來更好的解碼加速,而且它無需對草稿和目標模型進行微調。
一句話,作為幕后代筆的草稿模型而言,打草稿的效率十分重要!!
與前瞻解碼不同,它使用草稿短語通過草稿模型S間接加速目標模型T,讓目標模型的每次Forward(大白話,吐新的Token)可以同時驗證多輪短語,從而實現更好的加速。如圖2所示,在Ouroboros中,草稿模型的起草過程是逐個草稿短語而不是逐個Token進行,在草稿模型的每次Forward傳遞過程中,都會并行生成多個新短語。<如何生成另外講解!>
3.EAGLE
2024年1月份的EAGLE是對抽樣技術的改進。在提交這項工作時,EAGLE在Spec-Bench中排名第一,這是一個很全面的評估基準,旨在評估不同場景中的推測采樣的技術。
EAGLE 的流水線。上半部分說明了計算過程,下半部分顯示了每個步驟對應的生成結果。在上半部分中,綠色塊表示token嵌入,橙色塊表示特征f,紅色框表示草稿模型的預測,帶有雪花圖標的藍色模塊表示目標大模型LLM的參數,這些參數是凍結的。
上圖為起草階段。與自回歸預測 token序列的標準推測性抽樣不同,EAGLE 在更結構化的特征級別運行,即使用LLM原始的LM Head獲取草稿token。為了消除不確定性,EAGLE還帶上每個階段的特征(可以大致理解為上下文)f。
驗證階段。在標準推測性抽樣中,草稿是鏈式結構的,如果草稿token被拒絕,則需要丟棄所有后續 token。EAGLE 使用樹形結構草稿,允許在草稿 token被拒絕時嘗試替代分支。圖b說明了兩者之間的差異。
4.EAGLE Vs EAGLE-2
EAGLE和EAGLE-2之間的差異。EAGLE始終使用固定的草稿形狀。當查詢為“10+2=”時,下一個標記很可能被正確預測為“1”。但是,使用靜態草稿樹,即便另一個候選“3”正確的概率非常低,EAGLE仍會添加兩個候選。而EAGLE-2根據上下文調整草稿樹的形狀。當查詢為“10+2”時,下一個標記很難預測,因此 EAGLE-2 添加了兩個候選。對于更簡單的查詢“10+2=”,EAGLE-2僅添加一個候選“1”。
由此可以看到EAGLE-2根據上下文動態調整草稿樹,增強推測性抽樣。其方法包括兩個主要階段:擴展和重新排名。該過程從擴展階段開始,在該階段,草稿模型從草稿樹的最新層輸入最有希望的節點以形成下一層。來自草案模型的置信度分數可以用于接受率,從而可以有效地預測和驗證Token。在重新排名階段,會選擇接受概率較高的Token作為目標LLM的輸入。
這種兩階段方法確保草稿樹適應上下文,顯著提高Token被目標大模型接受的概率。同時消除了多次Forward的推理,在不影響生成文本質量的情況下加快了推理過程。
下圖為EAGLE-2這種技術在多個模型推理上面的提升倍數。
這一期幫助讀者解鎖了大模型的打草稿技術,其實就是通過利用小模型快速并行的吐出草稿以便加速完整的推理過程。其實也好理解,比如在現實生活中的文學創作,也是先陸續生成草稿,然后再最后精校,包括這篇文章,當然中間還有很多細節值得深究。
本文轉載自 ??魯班模錘??,作者: 龐德公
