前文介绍了 Qwen3.5-27B-DFlash,非常神奇

本文更进一步,深入了解一下 DFlash 技术细节

 DFlash + DDTree 加速流水线 先说背景:推测解码(Speculative Decoding)
打开网易新闻 查看精彩图片
DFlash + DDTree 加速流水线 先说背景:推测解码(Speculative Decoding)

大模型生成文本的时候,最大的瓶颈是什么?一个 token 一个 token 地吐

不管你 GPU 有多猛,自回归生成就是一步一步来,快不了

推测解码(Speculative Decoding)是目前主流的加速思路:用一个小模型快速"猜"一串 token,再让大模型一次性验证。猜对了就赚了,猜错了也不亏——大模型自己纠正就行

但传统推测解码有个问题:小模型也是自回归的,猜的速度也不够快。

DFlash:用扩散模型替代自回归草稿

DFlash(Block Diffusion for Flash Speculative Decoding)来自 Z Lab,核心创新就一句话:用轻量级 block diffusion 模型,单次前向传播并行生成整个 token block 作为草稿

传统小模型一个一个猜,DFlash 一次猜一整块(block size = 16)

 DFlash 方法流水线
打开网易新闻 查看精彩图片
DFlash 方法流水线

怎么做到的?

关键技术叫 KV Injection——把目标大模型多层 hidden features 融合后注入草稿小模型的 KV cache,让小模型也能高质量预测

加速效果有多猛?

基准

模型

DFlash 加速

HumanEval T=0.0

Qwen3-30B-MoE

6.09x

MATH-500 T=0.0

Qwen3-8B

6.17x

GSM8K T=0.0

Qwen3-8B

5.20x

AIME24 T=0.0

Qwen3-8B

5.91x

MBPP T=0.0

Qwen3-8B

4.75x

对比 EAGLE-3(目前最流行的推测解码方案),DFlash 快了约 2.5 倍。EAGLE-3 的极限大概 2-3x 加速,DFlash 直接干到 5-6x

而且在采样模式(Temperature=1)和 thinking mode 下仍然保持约 4.5x 加速,这一点非常重要——大部分加速方案在有随机性的时候就拉胯了

DDTree:把 DFlash 再推一把

DDTree(Diffusion Draft Tree)是以色列理工学院 Liran Ringel 在 DFlash 基础上做的进一步优化

核心思路:DFlash 一次前向传播输出的是每个位置的概率分布。DDTree 不是从中只取一条路径,而是用 best-first heap 算法构建一棵草稿树,选出最有希望的多条分支,然后让目标模型一次前向传播验证整棵树

打开网易新闻 查看精彩图片

DDTree 四步流程:

  1. Block diffusion 一次前向生成 L 个位置的分布

  2. Best-first heap 在节点预算 B 下构建最优草稿树

  3. Tree attention 编译为目标模型输入

  4. 验证遍历:匹配子节点则继续,不匹配则取 bonus token 进入下轮

这套方案有个数学保证:构建的树在 draft 模型分布下可证明最大化期望接受长度

效果:

在 HumanEval T=0.0 上,DDTree 把 DFlash 的 6.09x 直接拉到了 8.22x,额外多赚了 2.13x。

最关键的是——完全无损。目标模型用自己的解码规则,DDTree 只是帮它更高效地探索搜索空间,输出分布和不加速时完全一致。

已支持的模型

DFlash 已经为一批主流模型训好了 Draft 模型:

目标模型

Draft 模型

Kimi-K2.5 (Preview)

z-lab/Kimi-K2.5-DFlash

Qwen3.5-4B/9B/27B

z-lab/Qwen3.5-*-DFlash

Qwen3.5-35B-A3B

z-lab/Qwen3.5-35B-A3B-DFlash

Qwen3-Coder-30B-A3B

z-lab/Qwen3-Coder-30B-A3B-DFlash

Llama-3.1-8B-Instruct

z-lab/LLaMA3.1-8B-Instruct-DFlash

Qwen3.5-122B、397B 和 GLM-5.1 的 Draft 模型也在路上了。

怎么用?

DFlash 已经接入了三大推理框架:

SGLang:

python -m sglang.launch_server \
--model-path Qwen/Qwen3.5-35B-A3B \
--speculative-algorithm DFLASH \
--speculative-draft-model-path z-lab/Qwen3.5-35B-A3B-DFlash \
--tp-size 1 --attention-backend trtllm_mha

vLLM:

vllm serve Qwen/Qwen3.5-27B \
--speculative-config '{"method": "dflash", "model": "z-lab/Qwen3.5-27B-DFlash", "num_speculative_tokens": 15}'

Apple Silicon(MLX):

pip install -e ".[mlx]"

对,Mac 用户也能用。

DDTree 跑基准测试:

git clone https://github.com/liranringel/ddtree
cd ddtree
pip install -r requirements.txt
bash run_benchmark.sh
python3 plot_results.py
总结

DFlash + DDTree 这对组合拳,代表了推测解码的下一个阶段:

  • DFlash 解决了"猜得慢"的问题 ——用 block diffusion 一次猜一整块

  • DDTree 解决了"猜得不够多"的问题 ——用概率树探索多条路径

最终效果是 8x+ 无损加速,而且已经接入 SGLang、vLLM、MLX 三大框架,实际可用。

对于部署大模型推理服务的团队来说,这几乎是免费的午餐——加速 5-8 倍,不牺牲任何输出质量,只需要加载一个很小的 Draft 模型

制作不易,如果这篇文章觉得对你有用,可否点个关注。给我个三连击:点赞、转发和在看。若可以再给我加个,谢谢你看我的文章,我们下篇再见!