OpenSource-Hub

dflash

z-lab/dflash

用于 LLM 高效投机解码的块扩散模型。

项目简介

DFlash 是一款轻量级块扩散模型,专为大型语言模型的投机解码设计。它支持 vLLM、SGLang 和 Transformers 等多种推理后端,实现高效高质量的并行草稿生成。项目提供了针对多种流行 LLM 的预训练草稿模型。

README 预览

# DFlash: Block Diffusion for Flash Speculative Decoding\n[**Paper**](https://arxiv.org/abs/2602.06036) | [**Blog**](https://z-lab.ai/projects/dflash/) | [**Models**](https://huggingface.co/collections/z-lab/dflash)\n\n**DFlash** is a lightweight **block diffusion** model designed for speculative decoding. It enables efficient and high-quality parallel drafting.\n\n\n\nhttps://github.com/user-attachments/assets/5b29cabb-eb95-44c9-8ffe-367c0758de8c\n\n## Supported Models\n\n| Model | DFlash Draft |\n|---|---|\n| gemma-4-26B-A4B-it | [z-lab/gemma-4-26B-A4B-it-DFlash](https://huggingface.co/z-lab/gemma-4-26B-A4B-it-DFlash) |\n| gemma-4-31B-it | [z-lab/gemma-4-31B-it-DFlash](https://huggingface.co/z-lab/gemma-4-31B-it-DFlash) |\n| Qwen3.6-27B | [z-lab/Qwen3.6-27B-DFlash](https://huggingface.co/z-lab/Qwen3.6-27B-DFlash) |\n| Qwen3.6-35B-A3B | [z-lab/Qwen3.6-35B-A3B-DFlash](https://huggingface.co/z-lab/Qwen3.6-35B-A3B-DFlash) |\n| MiniMax-M2.5 (Preview) | [z-lab/MiniMax-M2.5-DFlash](https://huggingface.co/z-lab/MiniMax-M2.5-DFlash) |\n| Kimi-K2.5 | [z-lab/Kimi-K2.5-DFlash](https://huggingface.co/z-lab/Kimi-K2.5-DFlash) |\n| Qwen3.5-4B | [z-lab/Qwen3.5-4B-DFlash](https://huggingface.co/z-lab/Qwen3.5-4B-DFlash) |\n| Qwen3.5-9B | [z-lab/Qwen3.5-9B-DFlash](https://huggingface.co/z-lab/Qwen3.5-9B-DFlash) |\n| Qwen3.5-27B | [z-lab/Qwen3.5-27B-DFlash](https://huggingface.co/z-lab/Qwen3.5-27B-DFlash) |\n| Qwen3.5-35B-A3B | [z-lab/Qwen3.5-35B-A3B-DFlash](https://huggingface.co/z-lab/Qwen3.5-35B-A3B-DFlash) |\n| Qwen3.5-122B-A10B | [z-lab/Qwen3.5-122B-A10B-DFlash](https://huggingface.co/z-lab/Qwen3.5-122B-A10B-DFlash) |\n| Qwen3-Coder-Next | [z-lab/Qwen3-Coder-Next-DFlash](https://huggingface.co/z-lab/Qwen3-Coder-Next-DFlash) |\n| Qwen3-Coder-30B-A3B | [z-lab/Qwen3-Coder-30B-A3B-DFlash](https://huggingface.co/z-lab/Qwen3-Coder-30B-A3B-DFlash) |\n| gpt-oss-20b | [z-lab/gpt-oss-20b-DFlash](https://huggingface.co/z-lab/gpt-oss-20b-DFlash) |\n| gpt-oss-120b | [z-lab/gpt-oss-120b-DFlash

常见问题 (4)

information
在DFlash中,哪项消融研究比较了KV缓存注入与输入融合,哪种方法表现更好?

直接消融实验对比了DFlash-inputfusion-5L(将融合后的隐藏特征作为输入)和DFlash-5L(KV注入),结果显示KV注入在接收长度和加速比上均更优。在GSM8K上,KV注入达到4.2 AL和3.3倍加速比,而输入融合为3.5 AL和2.9倍加速比;在HumanEval上,分别为4.0 AL和3.2倍加速比 vs 3.5 AL和2.9倍加速比;在MT-Bench上,为3.0 AL和2.2倍加速比 vs 2.6 AL和2.0倍加速比。KV注入还减少了草稿预填充时间,因为目标上下文跳过了完整的token处理,直接注入到K/V缓存中。

来源 Issue #58
implementation guidance
我可以将DFlash推测解码用于像Qwen3-VL这样的视觉语言模型(VLM)吗?

是的,DFlash可以适配视觉语言模型(VLM)。对于SGLang,使用PR #18387(改编自#16818)。对于vLLM,使用PR #36847。使用Qwen3-VL-8B-Instruct和DFlash-b16进行的初步测试显示,即使没有针对VLM的专门训练,平均接受步长也约为2。针对Qwen3-VL的官方DFlash检查点计划在GPT-OSS和GLM-4.7-Flash工作完成后发布。

来源 Issue #14
故障排除
为什么在使用vLLM配合DFlash投机解码处理GPTQ模型时,会遇到“CUDA error: an illegal memory access was encountered”?

这个CUDA非法内存访问错误(通常出现在cublasGemmEx中)发生在2026年4月初左右的某些vLLM nightly构建版本中。该问题已在后续的nightly版本中得到修复。升级到最新的vLLM nightly版本(2026-04-08之后)以解决此问题。如果错误仍然存在,请同时确保您使用的是兼容的NVIDIA驱动和CUDA版本(例如,CUDA 13.0+)。

来源 Issue #51
故障排除
如何修复在A6000上使用DFlash推测解码时出现的'CUDA error: an illegal memory access'错误?

这种偶发性崩溃发生在 dflash_worker_v2.py:335 行,是在 Ampere GPU(SM86,例如 A6000)上使用 DFlash 推测解码功能并搭配 flashinfer 后端时的已知问题。维护者认为该问题已在 PR #20547 的最新提交中修复。请更新您的 SGLang 安装以拉取最新更改:pip install -e git+https://github.com/sgl-project/sglang.git@refs/pull/20547/head#egg=sglang,然后重新运行。如果问题仍然存在,请使用 CUDA_LAUNCH_BLOCKING=1 启用同步 CUDA 启动,以确定具体有问题的内核,并确保 flashinfer 与您的 SM 架构兼容。

来源 Issue #38