MarkTechPost(RSS)
精选
74AI 编辑部评分,满分 100

DFlash:块扩散草稿模型实现最高15倍吞吐量提升

2026-06-24 15:21· 46天前· Asif Razzaq
AI 导读

DFlash 由 UC San Diego 团队提出,是一种用于投机解码的轻量块扩散草稿模型。它一次前向推理生成整块 token,再由目标模型并行验证,保证输出无损。相比 EAGLE-3,DFlash 实现最高 2.5 倍加速,在 Qwen3-8B 等多种模型上平均无损加速超过 6 倍(MATH-500 达 6.08×)。在 NVIDIA Blackwell 上(TensorRT-LLM),gpt-oss-120b 模型吞吐量提升最高 15 倍,约为 EAGLE-3 的 1.5 倍。核心创新是将目标模型多层隐藏特征注入草稿模型每一层的 Key-Value 投影,使接受长度随草稿深度增长。

推荐理由

DFlash把扩散模型引入推测解码草案阶段,一次并行生成整块token,单流加速最高6倍,NVIDIA实测吞吐量提升15倍,推理成本下降幅度很大,部署大模型的团队可以立刻关注。

正文 · AI 翻译

自回归大语言模型每次生成一个模型 token。每个 token 都要等待前一个 token 生成完毕。这种串行循环导致现代 GPU 利用率不足,推理速度缓慢。对于长链式推理模型而言,成本问题更为严重。它们生成的长篇输出使得延迟成为生成过程中的主导因素。

推测解码是标准的解决方案。一个小型草稿模型负责提议未来的 token,大型目标模型则并行验证这些 token。被接受的 token 得以保留,因此输出是无损的。但大多数方法,包括最先进的 EAGLE-3,仍然以自回归方式生成草稿。这种串行草稿生成方式将实际加速比限制在 2–3 倍左右。

由加州大学圣地亚哥分校团队(z-lab)引入的 DFlash 另辟蹊径。它是一个专为草稿生成而设计的轻量级块扩散模型。它并非逐个 token 地生成草稿,而是在单次前向传播中提议整个块。随后,目标模型并行验证该块。

研究团队报告称,在一系列模型和任务上实现了超过 6 倍的无损加速。其加速比最高可达 EAGLE-3 的 2.5 倍。在 NVIDIA Blackwell 上,NVIDIA 工程团队报告称,对于 gpt-oss-120b 模型,在相同的用户交互性目标下,吞吐量提升了高达 15 倍。

https://developer.nvidia.com/blog/boost-inference-performance-up-to-15x-on-nvidia-blackwell-using-dflash-speculative-decoding/

块扩散草稿生成改变了什么

块扩散模型一次性对一组被掩码的 token 块进行去噪。它们将并行生成与自回归块结构相结合。DFlash 仅将这一思想应用于草稿生成阶段。验证环节仍由可靠的自回归目标模型负责。

这种分工对质量至关重要。独立的扩散大语言模型在准确性上往往落后于自回归模型。它们还需要大量的去噪步骤,这拖慢了其原始推理速度。DFlash 规避了这两个问题。草稿只需足够好到能被接受即可。目标模型的并行验证保证了最终的输出分布。

第二个好处是草稿成本。自回归草稿模型的成本会随着推测 token 数量的增加而线性增长。而扩散草稿模型则通过一次并行前向传播生成所有 token。因此,随着块大小的增加,草稿延迟基本保持平稳。这使得 DFlash 能够使用更深、表达能力更强的草稿模型,而不会增加延迟。

这使 DFlash 与早期的扩散草稿模型工作区分开来。像 DiffuSpec 和 SpecDiff-2 这类方法使用了庞大的 7B 草稿模型,速度提升上限约为 3–4 倍。而 DFlash 则使用了一个小型五层草稿模型(对于 Qwen3-Coder 使用八层)。

“目标模型最了解”的洞见

DFlash 的核心思想很简单:目标模型最了解。大型自回归模型的隐藏特征编码了关于多个未来 token 的信息。DFlash 从多个目标层提取隐藏状态,将它们融合成一个紧凑的目标上下文特征。然后,这个特征用于条件化草稿模型。

DFlash 注入该特征的方式与 EAGLE-3 不同。EAGLE-3 仅将目标特征融合到草稿模型的输入嵌入中。随着草稿深度的增加,该信号会被稀释。而 DFlash 则将特征注入到每个草稿层的 Key 和 Value 投影中。这些投影后的特征位于草稿模型的 KV 缓存中,并在多次草稿迭代中持续存在。

这种 KV 注入使得接受长度能够随草稿深度扩展。一个生成 16 个 token 的五层 DFlash 草稿模型,优于生成 8 个 token 的 EAGLE-3。在论文的测试中,它同时实现了更低的延迟和更高的接受率。草稿模型实际上成为了目标模型之上的一个扩散适配器。

两种不同的加速比测量方式

DFlash 研究中的 6 倍加速是单流无损加速。在 Qwen3-8B 上使用贪婪解码(Transformers 后端)时,DFlash 平均实现 4.86 倍加速。EAGLE-3 在树大小为 16 时平均加速 1.76 倍,在树大小为 60 时平均加速 2.02 倍。DFlash 在 MATH-500 上达到峰值 6.08 倍加速(τ = 7.87),并在各任务上平均 τ = 6.49。

NVIDIA 在固定交互性目标下的吞吐量达到 15 倍。该数据适用于 DGX B300 系统中八块 NVIDIA Blackwell GPU 上运行的 gpt-oss-120b 模型,采用 TensorRT-LLM。在每位用户 500–600 tokens/秒的范围内,DFlash 提供的吞吐量是自回归解码的 15 倍以上。这比同条件下的 EAGLE-3 高出约 1.5 倍。

下表展示了论文中 Qwen3-8B 在温度为 0(Transformers 后端)时各任务的加速比。

任务(Qwen3-8B,温度=0)基线EAGLE-3(16)DFlash(16)DFlash τ
GSM8K1.00×1.94×5.15×6.54
MATH-5001.00×1.81×6.08×7.87
AIME251.00×1.79×5.62×7.08
HumanEval1.00×1.89×5.14×6.50
MBPP1.00×1.69×4.65×5.95
LiveCodeBench1.00×1.57×5.51×7.27
MT-Bench1.00×1.63×2.75×4.24
平均1.00×1.76×4.86×6.49

另一项独立的 NVIDIA Speed-Bench 对比测试衡量了在匹配并发条件下的交互速度提升。在 gpt-oss-120b 上,DFlash 平均为 2.3 倍,而 EAGLE-3 为 1.7 倍。在 Llama 3.1 8B Instruct 上,DFlash 平均为 2.8 倍,而 EAGLE-3 为 2.2 倍。

用例与示例

DFlash 针对延迟敏感的推理场景,即逐 token 生成会带来性能损失的情况。以下三种模式尤为适用:

  • 编程智能体:代码生成需要快速、交互式的响应。在 Gemma 4 31B 配合 vLLM 的情况下,NVIDIA 报告在 Math500 上并发度为 1 时加速比可达 5.8 倍。HumanEval 达到 5.6 倍。更快的草稿生成意味着智能体循环内的等待时间更短。
  • 推理模型:长链式思维轨迹占据了生成时间的主要部分。在启用思考模式后,DFlash 在 Qwen3-4B 和 Qwen3-8B 上采用贪心解码时保持约 4.5 倍的加速比。在采样模式下,它保持约 3.9 倍。这降低了长推理输出的成本。
  • 服务与吞吐量:DFlash 还提升了服务吞吐量。在配备 B200 GPU 的 SGLang 上,它在 Qwen3-8B(Math500,并发度 1)上达到最高 5.1 倍的加速比。随着并发度上升,增益逐渐减小,但仍保持正值,因此服务成本仍然下降。

运行 DFlash

DFlash 随附检查点和框架支持,因此采用时几乎无需修改代码。在 vLLM 上,只需将 EAGLE-3 配置替换为 DFlash 配置即可。无需重构应用程序。

vllm serve Qwen/Qwen3.5-27B \
  --speculative-config '{"method": "dflash", "model": "z-lab/Qwen3.5-27B-DFlash", "num_speculative_tokens": 15}' \
  --attention-backend flash_attn \
  --max-num-batched-tokens 32768

Transformers 后端支持 Qwen3 和 LLaMA-3.1 模型。它提供了一个 spec_generate 调用,将草稿模型与目标模型配对使用。

from transformers import AutoModel, AutoModelForCausalLM, AutoTokenizer

draft = AutoModel.from_pretrained(
    "z-lab/Qwen3-8B-DFlash-b16", trust_remote_code=True,
    dtype="auto", device_map="cuda:0").eval()
target = AutoModelForCausalLM.from_pretrained(
    "Qwen/Qwen3-8B", dtype="auto", device_map="cuda:0").eval()
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen3-8B")

messages = [{"role": "user", "content": "How many positive whole-number divisors does 196 have?"}]
input_ids = tokenizer.apply_chat_template(
    messages, return_tensors="pt", add_generation_prompt=True,
    enable_thinking=False).to(draft.device)

output = draft.spec_generate(
    input_ids=input_ids, max_new_tokens=2048, temperature=0.0,
    target=target, stop_token_ids=[tokenizer.eos_token_id])
print(tokenizer.decode(output[0], skip_special_tokens=False))

关键要点

  • DFlash 在一次前向传播中草拟整个 token 块,而非逐 token 生成。
  • 它将目标隐藏特征注入每个草稿层的 KV 缓存中,使接受长度随深度扩展。
  • 研究论文指标:在 Qwen3-8B 上实现最高 6.08 倍无损加速;NVIDIA 测试:在 Blackwell 上固定交互性条件下吞吐量最高提升 15 倍。
  • 一个轻量级五层草稿模型取代了此前将扩散方法限制在约 3–4 倍加速的 7B 草稿模型。

交互式解释器


来源:MarkTechPost(RSS) · marktechpost.com

DFlash:块扩散草稿模型实现最高15倍吞吐量提升

MarkTechPost(RSS)·2026-06-24 15:21·46天前·Asif Razzaq
AI 导读

DFlash 由 UC San Diego 团队提出,是一种用于投机解码的轻量块扩散草稿模型。它一次前向推理生成整块 token,再由目标模型并行验证,保证输出无损。相比 EAGLE-3,DFlash 实现最高 2.5 倍加速,在 Qwen3-8B 等多种模型上平均无损加速超过 6 倍(MATH-500 达 6.08×)。在 NVIDIA Blackwell 上(TensorRT-LLM),gpt-oss-120b 模型吞吐量提升最高 15 倍,约为 EAGLE-3 的 1.5 倍。核心创新是将目标模型多层隐藏特征注入草稿模型每一层的 Key-Value 投影,使接受长度随草稿深度增长。

正文 · AI 翻译

自回归大语言模型每次生成一个模型 token。每个 token 都要等待前一个 token 生成完毕。这种串行循环导致现代 GPU 利用率不足,推理速度缓慢。对于长链式推理模型而言,成本问题更为严重。它们生成的长篇输出使得延迟成为生成过程中的主导因素。

推测解码是标准的解决方案。一个小型草稿模型负责提议未来的 token,大型目标模型则并行验证这些 token。被接受的 token 得以保留,因此输出是无损的。但大多数方法,包括最先进的 EAGLE-3,仍然以自回归方式生成草稿。这种串行草稿生成方式将实际加速比限制在 2–3 倍左右。

由加州大学圣地亚哥分校团队(z-lab)引入的 DFlash 另辟蹊径。它是一个专为草稿生成而设计的轻量级块扩散模型。它并非逐个 token 地生成草稿,而是在单次前向传播中提议整个块。随后,目标模型并行验证该块。

研究团队报告称,在一系列模型和任务上实现了超过 6 倍的无损加速。其加速比最高可达 EAGLE-3 的 2.5 倍。在 NVIDIA Blackwell 上,NVIDIA 工程团队报告称,对于 gpt-oss-120b 模型,在相同的用户交互性目标下,吞吐量提升了高达 15 倍。

https://developer.nvidia.com/blog/boost-inference-performance-up-to-15x-on-nvidia-blackwell-using-dflash-speculative-decoding/

块扩散草稿生成改变了什么

块扩散模型一次性对一组被掩码的 token 块进行去噪。它们将并行生成与自回归块结构相结合。DFlash 仅将这一思想应用于草稿生成阶段。验证环节仍由可靠的自回归目标模型负责。

这种分工对质量至关重要。独立的扩散大语言模型在准确性上往往落后于自回归模型。它们还需要大量的去噪步骤,这拖慢了其原始推理速度。DFlash 规避了这两个问题。草稿只需足够好到能被接受即可。目标模型的并行验证保证了最终的输出分布。

第二个好处是草稿成本。自回归草稿模型的成本会随着推测 token 数量的增加而线性增长。而扩散草稿模型则通过一次并行前向传播生成所有 token。因此,随着块大小的增加,草稿延迟基本保持平稳。这使得 DFlash 能够使用更深、表达能力更强的草稿模型,而不会增加延迟。

这使 DFlash 与早期的扩散草稿模型工作区分开来。像 DiffuSpec 和 SpecDiff-2 这类方法使用了庞大的 7B 草稿模型,速度提升上限约为 3–4 倍。而 DFlash 则使用了一个小型五层草稿模型(对于 Qwen3-Coder 使用八层)。

“目标模型最了解”的洞见

DFlash 的核心思想很简单:目标模型最了解。大型自回归模型的隐藏特征编码了关于多个未来 token 的信息。DFlash 从多个目标层提取隐藏状态,将它们融合成一个紧凑的目标上下文特征。然后,这个特征用于条件化草稿模型。

DFlash 注入该特征的方式与 EAGLE-3 不同。EAGLE-3 仅将目标特征融合到草稿模型的输入嵌入中。随着草稿深度的增加,该信号会被稀释。而 DFlash 则将特征注入到每个草稿层的 Key 和 Value 投影中。这些投影后的特征位于草稿模型的 KV 缓存中,并在多次草稿迭代中持续存在。

这种 KV 注入使得接受长度能够随草稿深度扩展。一个生成 16 个 token 的五层 DFlash 草稿模型,优于生成 8 个 token 的 EAGLE-3。在论文的测试中,它同时实现了更低的延迟和更高的接受率。草稿模型实际上成为了目标模型之上的一个扩散适配器。

两种不同的加速比测量方式

DFlash 研究中的 6 倍加速是单流无损加速。在 Qwen3-8B 上使用贪婪解码(Transformers 后端)时,DFlash 平均实现 4.86 倍加速。EAGLE-3 在树大小为 16 时平均加速 1.76 倍,在树大小为 60 时平均加速 2.02 倍。DFlash 在 MATH-500 上达到峰值 6.08 倍加速(τ = 7.87),并在各任务上平均 τ = 6.49。

NVIDIA 在固定交互性目标下的吞吐量达到 15 倍。该数据适用于 DGX B300 系统中八块 NVIDIA Blackwell GPU 上运行的 gpt-oss-120b 模型,采用 TensorRT-LLM。在每位用户 500–600 tokens/秒的范围内,DFlash 提供的吞吐量是自回归解码的 15 倍以上。这比同条件下的 EAGLE-3 高出约 1.5 倍。

下表展示了论文中 Qwen3-8B 在温度为 0(Transformers 后端)时各任务的加速比。

任务(Qwen3-8B,温度=0)基线EAGLE-3(16)DFlash(16)DFlash τ
GSM8K1.00×1.94×5.15×6.54
MATH-5001.00×1.81×6.08×7.87
AIME251.00×1.79×5.62×7.08
HumanEval1.00×1.89×5.14×6.50
MBPP1.00×1.69×4.65×5.95
LiveCodeBench1.00×1.57×5.51×7.27
MT-Bench1.00×1.63×2.75×4.24
平均1.00×1.76×4.86×6.49

另一项独立的 NVIDIA Speed-Bench 对比测试衡量了在匹配并发条件下的交互速度提升。在 gpt-oss-120b 上,DFlash 平均为 2.3 倍,而 EAGLE-3 为 1.7 倍。在 Llama 3.1 8B Instruct 上,DFlash 平均为 2.8 倍,而 EAGLE-3 为 2.2 倍。

用例与示例

DFlash 针对延迟敏感的推理场景,即逐 token 生成会带来性能损失的情况。以下三种模式尤为适用:

  • 编程智能体:代码生成需要快速、交互式的响应。在 Gemma 4 31B 配合 vLLM 的情况下,NVIDIA 报告在 Math500 上并发度为 1 时加速比可达 5.8 倍。HumanEval 达到 5.6 倍。更快的草稿生成意味着智能体循环内的等待时间更短。
  • 推理模型:长链式思维轨迹占据了生成时间的主要部分。在启用思考模式后,DFlash 在 Qwen3-4B 和 Qwen3-8B 上采用贪心解码时保持约 4.5 倍的加速比。在采样模式下,它保持约 3.9 倍。这降低了长推理输出的成本。
  • 服务与吞吐量:DFlash 还提升了服务吞吐量。在配备 B200 GPU 的 SGLang 上,它在 Qwen3-8B(Math500,并发度 1)上达到最高 5.1 倍的加速比。随着并发度上升,增益逐渐减小,但仍保持正值,因此服务成本仍然下降。

运行 DFlash

DFlash 随附检查点和框架支持,因此采用时几乎无需修改代码。在 vLLM 上,只需将 EAGLE-3 配置替换为 DFlash 配置即可。无需重构应用程序。

vllm serve Qwen/Qwen3.5-27B \
  --speculative-config '{"method": "dflash", "model": "z-lab/Qwen3.5-27B-DFlash", "num_speculative_tokens": 15}' \
  --attention-backend flash_attn \
  --max-num-batched-tokens 32768

Transformers 后端支持 Qwen3 和 LLaMA-3.1 模型。它提供了一个 spec_generate 调用,将草稿模型与目标模型配对使用。

from transformers import AutoModel, AutoModelForCausalLM, AutoTokenizer

draft = AutoModel.from_pretrained(
    "z-lab/Qwen3-8B-DFlash-b16", trust_remote_code=True,
    dtype="auto", device_map="cuda:0").eval()
target = AutoModelForCausalLM.from_pretrained(
    "Qwen/Qwen3-8B", dtype="auto", device_map="cuda:0").eval()
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen3-8B")

messages = [{"role": "user", "content": "How many positive whole-number divisors does 196 have?"}]
input_ids = tokenizer.apply_chat_template(
    messages, return_tensors="pt", add_generation_prompt=True,
    enable_thinking=False).to(draft.device)

output = draft.spec_generate(
    input_ids=input_ids, max_new_tokens=2048, temperature=0.0,
    target=target, stop_token_ids=[tokenizer.eos_token_id])
print(tokenizer.decode(output[0], skip_special_tokens=False))

关键要点

  • DFlash 在一次前向传播中草拟整个 token 块,而非逐 token 生成。
  • 它将目标隐藏特征注入每个草稿层的 KV 缓存中,使接受长度随深度扩展。
  • 研究论文指标:在 Qwen3-8B 上实现最高 6.08 倍无损加速;NVIDIA 测试:在 Blackwell 上固定交互性条件下吞吐量最高提升 15 倍。
  • 一个轻量级五层草稿模型取代了此前将扩散方法限制在约 3–4 倍加速的 7B 草稿模型。

交互式解释器


来源:MarkTechPost(RSS)· marktechpost.com