AI

DFlash:利用區塊擴散模型實現高效並行投機採樣,大幅提升 LLM 推理速度

github.com

DFlash 是一個專為投機採樣(Speculative Decoding)設計的輕量化區塊擴散模型(Block Diffusion Model)。它不再像傳統投機採樣那樣逐個 Token 預測,而是能一次性並行生成一整塊(Block)Token 候選集,並由大模型一次性驗證,從而顯著降低推理延遲。該專案已提供多款主流模型(如 Qwen3, Gemma-4)的預訓練 Draft 模型,並深度整合至 vLLM 與 SGLang 等高效推理框架。

DFlash:利用區塊擴散模型實現高效並行投機採樣,大幅提升 LLM 推理速度

DFlash 是一個旨在解決大語言模型(LLM)推理速度瓶頸的技術方案。它核心在於優化投機採樣(Speculative Decoding)的過程,讓模型在生成文字時能「快步前進」,而非緩慢地一個字一個字產出。


什麼是投機採樣與 DFlash 解決的問題


在標準的 LLM 生成過程中,每產生一個 Token 都需要運行一次巨大的模型,這導致了極高的推理延遲。投機採樣的傳統做法是使用一個極小的模型(Draft Model)先快速預測接下來的幾個 Token,再交由大模型(Target Model)一次性驗證。如果小模型猜對了,就能一次產出多個 Token;但如果猜錯,則需要回溯。


傳統小模型依然是逐個 Token 遞迴生成,這在並行計算能力強大的 GPU 上其實造成了資源浪費。DFlash 引入了區塊擴散(Block Diffusion)的概念,讓 Draft Model 能夠並行地生成一整塊(例如 16 個)Token 候選集,將投機採樣從序列生成轉變為並行生成,進一步壓低延遲。


核心運作機制


DFlash 的運作邏輯可以簡單理解為:它不是在猜下一個字是什麼,而是在嘗試一次性填滿一個空白的 Token 區塊。


首先,DFlash 會從目標大模型中提取特定的中間層特徵(Context Feature),作為生成候選 Token 的依據。

接著,它利用擴散模型的去噪過程,在一個預設大小的區塊(Block)中並行地生成 Token。

最後,這些生成的區塊被送入大模型進行單次前向傳播驗證。由於大模型驗證多個 Token 的速度遠快於逐個生成,因此只要 DFlash 的命中率夠高,整體吞吐量就會大幅提升。


適合誰使用


這項技術非常適合對推理延遲(Latency)極其敏感的生產環境,例如即時對話機器人、高效能程式碼補全工具。如果你已經在使用 vLLM 或 SGLang 等推理框架,且部署的是 Qwen 或 Gemma 系列模型,導入 DFlash 可以直接獲得顯著的加速效果而不需要修改業務邏輯。


技術亮點與實務限制


技術亮點在於其極強的框架適配能力。DFlash 不僅有純 PyTorch 的實作,還針對 vLLM 和 SGLang 做了深度整合,甚至提供了針對 Apple Silicon 的 MLX 版本,讓 Mac 用戶也能體驗到並行投機採樣。


然而,實務上存在明顯的限制。DFlash 的效果高度依賴於 Draft 模型與 Target 模型之間的匹配度。目前官方雖提供了大量預訓練模型,但如果你使用的是私有微調模型,則必須按照官方即將開源的訓練配方(Training Recipe)重新訓練對應的 DFlash Draft 模型,否則命中率過低反而會因為驗證失敗而導致速度下降。


導入風險與成熟度判斷


導入風險主要在於環境依賴的複雜度。從程式碼與安裝指南可以看到,DFlash 為了追求性能,大量依賴特定版本的 vLLM 分支或 SGLang PR 分支,這意味著它尚未完全進入主流框架的穩定版(Stable Release)。在生產環境導入時,可能會遇到與現有推理框架版本衝突的問題。


目前該專案處於研究成果轉化階段,成熟度屬於早期可用(Early Adopter)。它提供了完整的 Benchmark 工具來量化加速比,建議工程師在導入前先使用其提供的 benchmark.py 在自己的硬體環境下測試實際的 Token/s 提升量,而非僅參考論文數據。