What is Speculative Decoding(推測性解碼)?

    使用小型快速草稿模型一次提議多個 token,由較大目標模型並行驗證的推論加速技術。

    Definition

    推測性解碼是一種在不改變輸出分佈的情況下加速大型語言模型文字生成的推論優化技術。關鍵洞察是 LLM 推論受記憶體頻寬限制——瓶頸是從記憶體讀取模型權重,而非用它們進行計算。處理 5 個 token 的單次前向傳遞與處理 1 個 token 的成本幾乎相同,因為權重載入成本占主導。推測性解碼利用這一點,使用小型快速草稿模型預測多個 token,然後在大型目標模型的單次前向傳遞中驗證所有預測。

    該技術分三個步驟運作:(1)草稿模型自回歸地生成 K 個候選 token(快速,因為草稿模型很小),(2)目標模型在單次前向傳遞中處理所有 K 個候選(計算它分配給每個候選的機率),(3)驗證步驟接受目標模型同意的最長候選前綴,拒絕其餘部分。至關重要的是,接受標準的設計確保最終輸出分佈在數學上與從目標模型進行標準自回歸解碼完全一致——推測性解碼是無損的。

    加速幅度取決於接受率——草稿模型的預測與目標模型將生成的內容匹配的頻率。當草稿模型是目標的良好近似(例如同一系列的 1B 模型為 70B 模型做草稿)時,70-90% 的接受率很常見,在零品質退化的情況下產生 2-3 倍的每秒 token 數加速。

    Why It Matters

    LLM 推論延遲直接影響使用者體驗和成本。使用者將 token 之間超過 200ms 的延遲感知為遲緩,而長生成任務(摘要、程式碼生成)可能需要數十秒。推測性解碼在不改變輸出品質的情況下將這種延遲減少 2-3 倍,使其成為少數在品質折衷方面真正免費的優化之一。

    對於推論提供者,推測性解碼減少了每個請求所需的 GPU 時間,直接降低服務成本。與以品質換取速度的量化不同,推測性解碼在數學上保證產生與標準解碼相同的輸出分佈。這使其適用於輸出品質不能妥協的應用。

    How It Works

    草稿模型運行標準自回歸解碼以生成 K 個 token(通常 K=4-8)。這很快,因為草稿模型比目標模型小 10-50 倍。然後目標模型在單次前向傳遞中處理整個序列(原始上下文加上 K 個草稿 token),為每個位置產生機率分佈。

    驗證步驟依次檢查 K 個草稿 token。對於每個位置,它將草稿模型選擇的 token 與目標模型的分佈進行比較。如果目標模型為草稿 token 分配了足夠的機率(使用修改的拒絕抽樣方案),則該 token 被接受。如果被拒絕,驗證停止,並使用拒絕點處目標模型的分佈來抽樣替代 token。這保證了輸出分佈匹配標準的目標模型解碼,同時通常接受大多數草稿 token。

    Example Use Case

    一個推論平台向請求長篇內容生成的使用者提供 Llama 3 70B。平均生成 2,000 個 token 需要 45 秒。透過部署 Llama 3 8B 作為推測性解碼的草稿模型(K=5,平均接受率 78%),他們將生成時間減少到 18 秒——在輸出品質完全相同的情況下實現 2.5 倍加速。使用者報告體驗顯著改善,平台每個請求的 GPU 成本降低了 60%。

    Key Takeaways

    • 推測性解碼使用小型草稿模型提議由大型目標模型驗證的 token。
    • 它產生與標準解碼在數學上完全相同的輸出——零品質損失。
    • 典型加速為 2-3 倍,取決於草稿模型品質和接受率。
    • 該技術利用了 LLM 推論受記憶體頻寬限制而非計算限制的事實。
    • 與目標相同模型系列的草稿模型產生最高的接受率。

    How Ertas Helps

    在 Ertas Studio 中微調的模型可以透過將微調的大型模型與同一系列的較小草稿模型配對來部署推測性解碼,兩者都匯出為 GGUF 檔案以實現高效的本地推論。

    Related Resources

    Ship AI that runs on your users' devices.

    Early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.