dflash 是什么?

DFlash 是用于投机解码的块扩散草稿模型与工具包。它让 draft 一次并行提出一块 token,再由目标模型验证;项目提供 DFlash 与 DFlash 2 checkpoint,并可通过 Transformers、MLX 或已启用 DFlash 的 OpenAI-compatible vLLM/SGLang 服务运行和评测。

⭐ 4,927 Stars 🍴 357 Forks Python MIT 作者: z-lab
来源:github.com/z-lab/dflash 查看 GitHub 仓库 → 📘 使用教程 →

为什么值得关注

项目已发布 DFlash 2,支持列表、命令和后端边界与旧稿不同;当前正式包为 0.1.0,真正效果必须把目标模型、draft、硬件和基线锁定后再测。

来源:github.com/z-lab/dflash/releases/tag/v0.1.0

核心功能

块扩散并行起草

draft 模型并行生成 token block,由目标模型验证,目标是减少自回归草稿阶段的串行开销。

来源:github.com/z-lab/dflash
DFlash 与 DFlash 2 checkpoint

DFlash 2 当前提供 Muse-Glimmer-30B 和 Qwen3.8-27B checkpoint;原 DFlash 列出 Qwen、Gemma、MiniMax、Kimi、GPT-OSS、Llama、GLM 等多组权重。

来源:github.com/z-lab/dflash
本地与服务端后端

Linux 可用 Transformers,本地 Apple Silicon 可用 MLX;vLLM、SGLang、oMLX 或 llama.cpp 需单独安装并启动兼容服务。

来源:github.com/z-lab/dflash
统一 benchmark CLI

gsm8k、math500、humaneval、mbpp、mt-bench 使用同一入口,可分别测 OpenAI-compatible server、Transformers 与 MLX。

来源:github.com/z-lab/dflash

技术架构

dflash 包负责 CLI、draft/target 配对与 benchmark。Transformers 和 MLX 在本进程加载目标模型及对应 draft;服务端路径把请求发到已加载 DFlash 的 OpenAI-compatible vLLM/SGLang 等服务。checkpoint 与目标模型必须匹配,目标模型仍负责验证,所以输出分布和实际吞吐取决于两者及推理后端。

来源:github.com/z-lab/dflash

项目知识图谱

知识图谱:项目核心节点(中心)+ 核心功能(内环六边形)+ 关键技术依赖(外环 chip) 基础包固定 tqdm 4.70.0、datasets 5.0.1、requests 2.34.2基础包固定 tqdm… dflash[local] 在 Linux 安装 PyTorch/Transformers,在 Apple Silicon 安装 MLX/MLX-LMdflash[local]… 服务端测试需另装支持版本的 SGLang、vLLM、oMLX 或 llama.cpp服务端测试需另装… 目标模型与对应的 DFlash/DFlash 2 checkpoint目标模型与对应的… 块扩散并行起草 DFlash 与 DFlash 2 checkpointDFlash 与 DFlash 2… 本地与服务端后端 统一 benchmark CLI dflash 项目本体 核心功能 关键依赖

技术栈

语言Python 3.10+框架块扩散 draft + speculative decoding
基础包固定 tqdm 4.70.0、datasets 5.0.1、req…dflash[local] 在 Linux 安装 PyTorch/Tra…服务端测试需另装支持版本的 SGLang、vLLM、oMLX 或 lla…目标模型与对应的 DFlash/DFlash 2 checkpoint
本地 GPU/Apple Silicon 推理,或独立 OpenAI-compatible 推理服务;benchmark 会下载并缓存数据集
来源:github.com/z-lab/dflash/blob/main/pyproject.toml

快速上手

先在独立环境安装 pip install dflash;需要本地推理时改用 pip install 'dflash[local]'。选择官方支持表中明确匹配的 target 与 draft。Linux 可先用 Transformers 路径,Apple Silicon 用 MLX;服务端路径要先按后端文档启动已启用 DFlash 的 vLLM/SGLang 服务,再把 --base-url 交给 dflash。
来源:github.com/z-lab/dflash

使用场景

适合已经自托管大模型、能固定请求集并测量端到端吞吐和延迟的推理团队。先用相同 prompt、采样参数、batch/concurrency 与输出长度分别跑不开启 draft 和开启 DFlash 的基线;同时记录显存、接受长度、首 token 与总时延。

来源:github.com/z-lab/dflash

优势与局限

优势

  • 同时提供方法、公开 checkpoint 和多后端 CLI
  • DFlash 2 与原版覆盖不同模型,可按硬件选 Transformers 或 MLX
  • benchmark 数据集和主要参数在命令中显式给出
  • MIT 许可,基础包依赖较少

局限

  • target 与 draft 需要配套,支持表外模型不能随意组合
  • 速度提升不是固定值,受接受率、block size、采样、并发、硬件和后端实现影响
  • 本地依赖固定到很新的 PyTorch/Transformers/MLX 版本,既有环境可能冲突
  • MLX 对量化模型建议 block_size 不超过 5,较大验证宽度反而可能降低内核效率
  • 模型和 benchmark 数据下载量大,本轮没有复现实验
来源:github.com/z-lab/dflash

最新版本

最新 GitHub release 和 pyproject 版本均为 v0.1.0,发布于 2026-08-18。README 已加入 DFlash 2 checkpoint 与新 CLI 用法,部署时仍应固定 0.1.0 或具体 commit,并核对后端支持版本。

来源:github.com/z-lab/dflash/releases/tag/v0.1.0

实测与证据

status: docs-only  |  checked_at: 2026-09-23  |  environment: 核对官方 README、pyproject.toml、MIT LICENSE、DFlash/DFlash 2 checkpoint 列表、评测命令与 v0.1.0 release  |  limitations: 未安装 dflash、PyTorch、Transformers、MLX、vLLM 或 SGLang,未下载模型与数据集,未验证生成质量、接受率、延迟、吞吐和显存  |  observed_output: PyPI/project 版本与最新 GitHub release 均为 0.1.0;release 页面标注 2026-08-18,pyproject 要求 Python 3.10+

来源:github.com/z-lab/dflash/releases/tag/v0.1.0

同类项目对比

SafeAILab/EAGLE 的 EAGLE-3 用自回归 draft head 做投机解码,官方仓库提供训练、推理和一批匹配 checkpoint;DFlash 的区别是用 block diffusion 并行起草,并把 Transformers、MLX 与 OpenAI-compatible server benchmark 放进同一 CLI。已有 EAGLE checkpoint 或依赖 SGLang SpecForge 训练链时先看 EAGLE;想评估扩散式并行 draft 或 Apple Silicon MLX 路径时看 DFlash。

来源:github.com/SafeAILab/EAGLE

总结评价

DFlash 把扩散式 draft 从论文推进到可调用的本地和服务端工具。是否值得采用只能靠同条件对照实验决定;先从一个官方配对的 target/draft 和 128 条固定请求开始,再决定是否承担额外模型、显存与后端复杂度。

来源:github.com/z-lab/dflash

常见问题

DFlash 2 的 draft 可以配任意目标模型吗?

不可以。DFlash 2 当前明确列出 Muse-Glimmer-30B 和 Qwen3.8-27B;target 与 draft 应按官方支持表配对。

安装 dflash 后会自动安装 vLLM 或 SGLang 吗?

不会。基础包只提供 CLI 与轻量依赖;服务端后端需要单独安装和启动,dflash 再通过 base URL 访问。

Apple Silicon 上的 block_size 越大越快吗?

不一定。官方对量化 target 和 draft 建议 block_size 不超过 5,因为 MLX 当前量化矩阵乘内核在更大验证宽度下会变慢。

如何判断 DFlash 在自己的服务上有收益?

用同一请求集、采样参数、并发和输出长度做开关对照,同时记录首 token、总时延、吞吐、显存和 draft 接受情况。

资料与核验范围
本文依据项目公开资料整理。版本、安装命令和功能边界可能随上游更新,请以所列来源和项目当前版本为准。 资料核对时间: 2026-09-23 13:55.

参考材料:README、GitHub API、依赖文件