Text Generation Inference 文件

推測(Speculation)

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

推測

推測解碼(Speculative decoding)、輔助生成(Assisted generation)、Medusa 等,都是指同一個概念的不同名稱。其核心概念是在大型模型實際執行「之前」先行生成 Token,然後僅需「檢查」這些生成的 Token 是否有效。

這意味著您在大型語言模型(LLM)上進行了更多的計算,但如果您的猜測準確,則可以在單次 LLM 傳輸中產生 1、2、3 個或更多個 Token。由於 LLM 通常受限於記憶體(而非計算能力),只要您的猜測足夠準確,這將帶來 2-3 倍的推理速度提升(例如在處理程式碼相關任務時,提升幅度可能更大)。

您可以參考這篇 詳細說明

文字生成推理(Text-generation inference)支援兩種主要的推測方法

  • Medusa
  • N-gram

Medusa

Medusa 是一種 簡單的方法,透過在現有模型之外使用經過微調的 LM 頭(LM heads),在單次傳輸中建立多個 Token。

您可以查看一些針對常見模型所做的現有微調版本:

若要為您自己的微調模型建立 Medusa 頭,請參考原版的 Medusa 儲存庫。更多詳細資訊請參閱 訓練 Medusa

若要在 TGI 中使用 Medusa 模型,只需指定一個已啟用 Medusa 的模型,系統便會自動載入。

N-gram

如果您沒有 Medusa 模型,或沒有資源進行微調,可以嘗試使用 n-gram。N-gram 的運作原理是試圖在先前的序列中尋找匹配的 Token,並將其用作生成新 Token 的推測依據。例如,如果 “np.mean” 這類 Token 在序列中多次出現,模型可以推測 “np.” 後面的延續內容很可能也是 “mean”。

這是一種極其簡單的方法,最適合用於程式碼或高度重複的文字。如果推測失誤過多,這種方法可能不會帶來明顯效益。

若要啟用 n-gram 推測,只需使用

在您的旗標中加入 --speculate 2

旗標相關詳細資訊

在 GitHub 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.