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 參考。