DFlash 项目

问:能加快 model 运行吗?

能。 DFlash 是一个专门用于加速大语言模型推理的项目,通过 Speculative Decoding(投机解码) 技术显著提升Token生成速度。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

核心原理分析:

标准 LLM 推理是 自回归 的——每次只生成 1 个 token,每个 token 都需要完整的 target model forward pass,这是瓶颈所在(GPU 利用率低,受 memory bandwidth 限制)。

DFlash 的做法是 Block Diffusion + Speculative Decoding:

  1. 轻量级 Draft Model(草稿模型):一个很小的 diffusion 模型,它不是独立的 LM,而是复用 target model 的 embedding 层和 lm_head,只有几层自己的 transformer layers。

  2. 并行草拟一个 block:Draft model 一次性并行生成 block_size(通常 15-16)个候选 token,而不是逐个生成。它通过以下方式实现:

    • 从 target model 的中间层提取 hidden states(extract_context_feature 从指定的 target_layer_ids 拼接隐藏状态)
    • 将这些 hidden states 作为条件,对一个 masked block 做去噪(类似 diffusion),一步生成整个 block 的预测
  3. Target Model 并行验证:Target model 对这 block_size 个候选 token 做一次 forward pass(而非 block_size 次),验证哪些是正确的。

  4. 接受/拒绝:从左到右找到第一个不匹配的位置,接受之前所有 token,拒绝之后的。关键代码: python acceptance_length = (block_output_ids[:, 1:] == posterior[:, :-1]).cumprod(dim=1).sum(dim=1)[0].item()

  5. 循环:rollback KV cache 到接受位置,继续下一轮。

为什么快?

传统自回归DFlash
每步 1 token,N 步 = N 次 target forward每步验证 block_size 个 token,1 次 target forward
GPU 计算利用率低批量验证充分利用 GPU 并行能力

假设 draft 的平均接受长度是 5 个 token,那么 target model 的 forward 次数减少约 5 倍,整体吞吐量提升 2-4x(取决于模型大小和 acceptance rate)。

DFlash 相比传统 Speculative Decoding 的优势

传统方法用一个小的自回归 LM 做 draft(逐 token 生成),DFlash 用 block diffusion 一步并行生成整个 block,draft 本身也更快。而且 draft model 极轻量(只有几层 + 一个 fc 投影层),参数量远小 于 target,开销很低。

推荐这个项目:

https://github.com/z-lab/dflash

Supported Models

ModelDFlash Draft
gemma-4-26B-A4B-itz-lab/gemma-4-26B-A4B-it-DFlash
gemma-4-31B-itz-lab/gemma-4-31B-it-DFlash
Qwen3.6-27Bz-lab/Qwen3.6-27B-DFlash
Qwen3.6-35B-A3Bz-lab/Qwen3.6-35B-A3B-DFlash
MiniMax-M2.5 (Preview)z-lab/MiniMax-M2.5-DFlash
Kimi-K2.5z-lab/Kimi-K2.5-DFlash
Qwen3.5-4Bz-lab/Qwen3.5-4B-DFlash
Qwen3.5-9Bz-lab/Qwen3.5-9B-DFlash
Qwen3.5-27Bz-lab/Qwen3.5-27B-DFlash
Qwen3.5-35B-A3Bz-lab/Qwen3.5-35B-A3B-DFlash
Qwen3.5-122B-A10Bz-lab/Qwen3.5-122B-A10B-DFlash
Qwen3-Coder-Nextz-lab/Qwen3-Coder-Next-DFlash
Qwen3-Coder-30B-A3Bz-lab/Qwen3-Coder-30B-A3B-DFlash
gpt-oss-20bz-lab/gpt-oss-20b-DFlash
gpt-oss-120bz-lab/gpt-oss-120b-DFlash
Qwen3-4B (non-thinking)z-lab/Qwen3-4B-DFlash-b16
Qwen3-8B (non-thinking)z-lab/Qwen3-8B-DFlash-b16
Llama-3.1-8B-Instructz-lab/LLaMA3.1-8B-Instruct-DFlash-UltraChat
DeepSeek-V4-FlashComing soon
DeepSeek-V4-ProComing soon
MiniMax-M2.7Coming soon
GLM-5.1Coming soon

可以用来提速自部署模型的速度