DFlash 是一种推测解码方法,它采用轻量级 块扩散 模型并行生成多个 tokens,相比自回归解码实现了高达 4.4 倍 的速度提升。本模型为草稿模型,必须与 Qwen/Qwen3.5-9B 配合使用。
vLLM:
uv pip install vllm
uv pip install -U vllm --torch-backend=auto --extra-index-url https://wheels.vllm.ai/nightlySGLang:
uv pip install "git+https://github.com/sgl-project/sglang.git@refs/pull/20547/head#subdirectory=python"vLLM:
vllm serve Qwen/Qwen3.5-9B \
--speculative-config '{"method": "dflash", "model": "z-lab/Qwen3.5-9B-DFlash", "num_speculative_tokens": 15}' \
--attention-backend flash_attn \
--max-num-batched-tokens 32768SGLang:
# Optional: enable schedule overlapping (experimental, may not be stable)
# export SGLANG_ENABLE_SPEC_V2=1
# export SGLANG_ENABLE_DFLASH_SPEC_V2=1
# export SGLANG_ENABLE_OVERLAP_PLAN_STREAM=1
python -m sglang.launch_server \
--model-path Qwen/Qwen3.5-9B \
--speculative-algorithm DFLASH \
--speculative-draft-model-path z-lab/Qwen3.5-9B-DFlash \
--speculative-num-draft-tokens 16 \
--tp-size 1 \
--attention-backend fa3 \
--mem-fraction-static 0.75 \
--mamba-scheduler-strategy extra_buffer \
--trust-remote-code提示: 对于长上下文或智能体工作负载,可添加
--speculative-dflash-draft-window-size WINDOW_SIZE以启用草稿模型的滑动窗口注意力机制。
from openai import OpenAI
client = OpenAI(base_url="http://localhost:30000/v1", api_key="EMPTY")
response = client.chat.completions.create(
model="Qwen/Qwen3.5-9B",
messages=[{"role": "user", "content": "Write a quicksort in Python."}],
max_tokens=4096,
temperature=0.0
)
print(response.choices[0].message.content)测试环境:单张 NVIDIA B200,SGLang,启用思考模式,最大输出长度 4096。我们报告的是端到端吞吐量,包含预填充时间。如需复现脚本,请参见我们的 GitHub 仓库。
在所有块大小和并发级别下,DFlash 的性能均优于 MTP,在并发度为 1 时,加速比最高可达 4.4 倍。
每秒令牌数(相对于自回归基线的加速比)
块大小 = 16
| 任务 | 并发度 | AR | MTP | DFlash |
|---|---|---|---|---|
| Math500 | 1 | 197 | 379(1.9 倍) | 808(4.1 倍) |
| 8 | 1472 | 2569(1.7 倍) | 5114(3.5 倍) | |
| 16 | 2831 | 4206(1.5 倍) | 7508(2.7 倍) | |
| 32 | 4701 | 6028(1.3 倍) | 9286(2.0 倍) | |
| GSM8K | 1 | 198 | 342(1.7 倍) | 697(3.5 倍) |
| 8 | 1470 | 2331(1.6 倍) | 4351(3.0 倍) | |
| 16 | 2781 | 3794(1.4 倍) | 6325(2.3 倍) | |
| 32 | 4581 | 5445(1.2 倍) | 7559(1.6 倍) | |
| HumanEval | 1 | 193 | 378(2.0 倍) | 840(4.4 倍) |
| 8 | 1414 | 2461(1.7 倍) | 4837(3.4 倍) | |
| 16 | 2638 | 3916(1.5 倍) | 6722(2.5 倍) | |
| 32 | 4217 | 5423(1.3 倍) | 8285(2.0 倍) | |
| MBPP | 1 | 194 | 335(1.7 倍) | 755(3.9 倍) |
| 8 | 1421 | 2064(1.5 倍) | 4202(3.0 倍) | |
| 16 | 2667 | 3358(1.3 倍) | 5843(2.2 倍) | |
| 32 | 4160 | 4610(1.1 倍) | 6961(1.7 倍) | |
| MT-Bench | 1 | 194 | 297(1.5 倍) | 587(3.0 倍) |
| 8 | 1451 | 1945(1.3 倍) | 3611(2.5 倍) | |
| 16 | 2787 | 3115(1.1 倍) | 5185(1.9 倍) | |
| 32 | 4578 | 4453(1.0 倍) | 6225(1.4 倍) | |
| Alpaca | 1 | 197 | 278(1.4 倍) | 545(2.8 倍) |
| 8 | 1460 | 1816(1.2 倍) | 3382(2.3 倍) | |
| 16 | 2789 | 3009(1.1 倍) | 5002(1.8 倍) | |
| 32 | 4574 | 4326(1.0 倍) | 6247(1.4 倍) |
块大小 = 8
| 任务 | 并发度 | AR | MTP | DFlash |
|---|---|---|---|---|
| Math500 | 1 | 195 | 452(2.3 倍) | 664(3.4 倍) |
| 8 | 1458 | 3199(2.2 倍) | 4703(3.2 倍) | |
| 16 | 2825 | 5390(1.9 倍) | 7804(2.8 倍) | |
| 32 | 4712 | 7941(1.7 倍) | 11003(2.3 倍) | |
| GSM8K | 1 | 196 | 421(2.1 倍) | 591(3.0 倍) |
| 8 | 1464 | 2954(2.0 倍) | 4106(2.8 倍) | |
| 16 | 2775 | 4939(1.8 倍) | 6733(2.4 倍) | |
| 32 | 4567 | 7246(1.6 倍) | 9375(2.1 倍) | |
| HumanEval | 1 | 193 | 446(2.3 倍) | 667(3.5 倍) |
| 8 | 1411 | 3020(2.1 倍) | 4366(3.1 倍) | |
| 16 | 2631 | 4884(1.9 倍) | 6815(2.6 倍) | |
| 32 | 4077 | 6819(1.7 倍) | 8899(2.2 倍) | |
| MBPP | 1 | 197 | 409(2.1 倍) | 634(3.2 倍) |
| 8 | 1440 | 2710(1.9 倍) | 3992(2.8 倍) | |
| 16 | 2682 | 4435(1.7 倍) | 6128(2.3 倍) | |
| 32 | 4152 | 6213(1.5 倍) | 8026(1.9 倍) | |
| MT-Bench | 1 | 198 | 374(1.9 倍) | 525(2.7 倍) |
| 8 | 1478 | 2612(1.8 倍) | 3668(2.5 倍) | |
| 16 | 2836 | 4323(1.5 倍) | 5905(2.1 倍) | |
| 32 | 4617 | 6335(1.4 倍) | 8288(1.8 倍) | |
| Alpaca | 1 | 196 | 360(1.8 倍) | 503(2.6 倍) |
| 8 | 1450 | 2497(1.7 倍) | 3493(2.4 倍) | |
| 16 | 2802 | 4194(1.5 倍) | 5714(2.0 倍) | |
| 32 | 4572 | 6175(1.4 倍) | 8077(1.8 倍) |
格式:MTP / DFlash
| 任务 | B8 | B16 |
|---|---|---|
| Math500 | 5.46 / 5.67 | 6.66 / 7.34 |
| GSM8K | 5.27 / 5.33 | 6.37 / 6.71 |
| HumanEval | 5.39 / 5.87 | 6.61 / 7.93 |
| MBPP | 4.78 / 5.31 | 5.49 / 6.62 |
| MT-Bench | 4.52 / 4.53 | 5.30 / 5.49 |
| Alpaca | 4.38 / 4.35 | 5.03 / 5.10 |
特别感谢 David Wang 为本项目提供的卓越工程支持。我们也感谢 Modal、InnoMatrix 和 Yotta Labs 提供用于训练此 draft 模型的计算资源。
如果您发现 DFlash 有用,请引用我们的工作。如需分享关于 DFlash 的反馈或请求新的模型支持,请填写此表单:DFlash Feedback。
@article{chen2026dflash,
title = {{DFlash: Block Diffusion for Flash Speculative Decoding}},
author = {Chen, Jian and Liang, Yesheng and Liu, Zhijian},
journal = {arXiv preprint arXiv:2602.06036},
year = {2026}
}