Speculators v0.5.0 發行說明 / 新功能

Speculators v0.5.0 發行說明 / 新功能

Speculators v0.5.0 引入 DFlash 演算法的支援,以實現單通過草稿 token 生成,並透過 vLLM 原生隱藏狀態提取系統統一線上與離線訓練工作流程。這些更新提升訓練彈性,降低推測解碼開銷,並增強推測解碼工作流程的生產就緒度。

DFlash 演算法支援

Speculators v0.5.0 新增 DFlash 的訓練支援,DFlash 是一種使用區塊擴散在單次前向傳遞中生成所有草稿 token 的推測解碼演算法。這與自回歸模型(如 Eagle 3)不同,後者需要多次前向傳遞才能生成草稿 token。

DFlash 的主要技術特徵包括:

  • 單次生成:DFlash 為每個前綴生成長度為 B 的 token 區塊,減少較長草稿序列的開銷。
  • 非因果注意力:在區塊內,查詢可以關注同一區塊中的所有其他 token,使用特定的注意力遮罩。
  • 優化訓練錨點:為防止注意力遮罩過大而消耗過多記憶體/運算,DFlash 不會在序列的每個點開始預測區塊。相反,它會隨機選擇一個較小的「錨點」集合,這些錨點對訓練損失有貢獻,並僅將預測區塊附加到這些錨點上。

訓練 DFlash 投機者

訓練 DFlash 模型遵循與 Eagle 3 類似的線上工作流程,但需要特定參數。訓練指令使用 torchrun,並包含以下 DFlash 特定旗標:

  • --speculator-type dflash: 指定演算法。
  • --block-size: 定義每個擴散區塊生成的 token 數量。
  • --max-anchors: 設定訓練期間推測的最大錨點數量。

Gemma 4 DFlash 效能

使用新的 DFlash 支援,訓練了一個 Gemma 4 31B DFlash 投機者。在多樣化任務上的評估顯示表現強勁,特別是在推理和程式碼生成方面。

效能基準顯示,Gemma 4 DFlash 的 inter-token 延遲優於 Eagle 3 和獨立的 FP8 量化驗證器。當與 FP8 量化驗證器結合時,inter-token 延遲的提升會進一步增加。

vLLM 整合與服務

DFlash 模型透過 PR #38300 整合到 vLLM 的推測解碼基礎設施中,支援於 vllm>=0.20.0

模型在其 config.json 檔案中包含一個 speculators_config,用於指定目標模型和推測演算法。這使得 DFlash 模型可以使用標準的 vllm serve 指令進行服務:

vllm serve -tp 2 RedHatAI/gemma-4-31B-it-speculator.dflash

統一線上與離線訓練

Speculators v0.5.0 遷移至 vLLM 原生隱藏狀態提取系統(在 vLLM v0.18.0 中引入)。這取代了先前的低階實用工具,並移除 vLLM 作為直接的 Python 依賴項,使訓練管道與 vLLM 的內部 API 脫鉤。

訓練模式

線上與離線訓練現在都使用相同的基於 vLLM 的提取路徑:

  • 線上訓練:隱藏狀態在訓練期間即時提取。該過程涉及向 vLLM 伺服器發送提示,將隱藏狀態提取到磁碟或 RAM 磁碟,載入它們進行訓練,然後刪除檔案。
  • 離線訓練:隱藏狀態在訓練開始前預先生成並快取到磁碟。

由於這些模式緊密耦合,它們可以組合使用。使用者可以離線部分產生隱藏狀態並在線上訓練期間載入它們,或在線上訓練時不清除檔案以在後續 epochs 中重複使用。

透過利用原生提取系統,Speculators 繼承 vLLM 的推論優化,包括硬體加速和高效批次策略,同時透過標準 REST API 與 vLLM 伺服器通訊。

文件更新

此版本包含一個更新的文件網站,內容包括:

  • 支援的推測解碼演算法介紹。
  • 訓練投機者模型的詳細教學步驟。
  • 開發者指南:如何將新的推測解碼演算法加入函式庫。
  • 全面的 API 參考。

Sources