dflash README

The project's README from github.com/z-lab/dflash. As one markdown file: README.md.

DFlash: Block Diffusion for Flash Speculative Decoding

DFlash is a lightweight block diffusion model designed for speculative decoding. It enables efficient and high-quality parallel drafting.

DFlash 2

Blog | Models

DFlash 2 architecture

https://github.com/user-attachments/assets/f786e7c5-c2bc-47d4-8a32-1f730a689e1b

DFlash

Paper | Blog | Models

DFlash architecture

https://github.com/user-attachments/assets/5b29cabb-eb95-44c9-8ffe-367c0758de8c

Supported Models

DFlash 2

Available checkpoints: Muse-Glimmer-30B and Qwen3.8-27B. See the DFlash 2 collection for updates.

DFlash

Public checkpoints are available in the DFlash collection:

Use the Transformers or MLX backends below for their explicitly listed model families. Other checkpoints can be benchmarked through an OpenAI-compatible SGLang or vLLM server.

📦 Installation

Install the base package for an OpenAI-compatible server, or include local inference dependencies. The local install uses MLX on Apple Silicon and Transformers on Linux.

pip install dflash
pip install "dflash[local]"  # local inference

For serving benchmarks, install a supported version of SGLang, vLLM, oMLX, or llama.cpp separately, launch its OpenAI-compatible server with DFlash, and pass its --base-url below.

🚀 Quick Start

Transformers

The Transformers backend supports DFlash 2 for Muse-Glimmer-30B, and DFlash for Qwen3 and LLaMA-3.1-8B. Muse uses reasoning_strength: low, medium, high (default), or xhigh.

dflash generate transformers \
    --model meta-models/Muse-Glimmer-30B \
    --draft z-lab/Muse-Glimmer-30B-DFlash2 \
    --reasoning high --temperature 1 --top-p 0.95 --top-k 64 \
    "How many positive whole-number divisors does 196 have?"

MLX (Apple Silicon)

The MLX backend supports DFlash 2 for Qwen3.8-27B, and DFlash for Qwen3, Qwen3.5, Qwen3.6, and Gemma 4. Qwen3.8 uses reasoning_effort: low, medium, or xhigh (default). For quantized targets or drafts, use block_size <= 5: MLX's current quantized matmul kernel becomes less efficient at larger verify widths. The example below runs both the target and draft with 4-bit weights.

dflash generate mlx \
    --model mlx-community/Qwen3.8-27B-4bit \
    --draft z-lab/Qwen3.8-27B-DFlash2 \
    --draft-bits 4 --block-size 5 --reasoning xhigh \
    "How many positive whole-number divisors does 196 have?"

OpenAI-compatible server

Launch the latest SGLang or vLLM server separately, then run:

dflash generate openai \
    --base-url http://127.0.0.1:8000 --model Qwen/Qwen3.8-27B \
    "How many positive whole-number divisors does 196 have?"

📊 Evaluation

All benchmarks share the same datasets (gsm8k, math500, humaneval, mbpp, mt-bench), downloaded and cached by Hugging Face Datasets.

OpenAI-compatible server (SGLang or vLLM):

dflash benchmark openai \
    --base-url http://127.0.0.1:8000 --model Qwen/Qwen3.8-27B \
    --dataset gsm8k --num-prompts 128 --concurrency 1 --reasoning xhigh \
    --temperature 1 --top-p 0.95 --top-k 20

Transformers (Muse-Glimmer-30B DFlash 2):

dflash benchmark transformers \
    --model meta-models/Muse-Glimmer-30B --draft z-lab/Muse-Glimmer-30B-DFlash2 \
    --dataset gsm8k --max-samples 128 --reasoning high

MLX (Qwen3.8-27B 4-bit DFlash 2):

dflash benchmark mlx \
    --model mlx-community/Qwen3.8-27B-4bit --draft z-lab/Qwen3.8-27B-DFlash2 \
    --dataset gsm8k --max-samples 128 --reasoning xhigh --block-size 5 --draft-bits 4

Acknowledgement

Huge thanks to @dcw02, @gongy, and the team at @modal-labs for their fast, high-quality support in bringing DFlash to SGLang. And huge thanks as well to @benchislett at NVIDIA for his work in bringing DFlash to vLLM and helping make it available to the broader serving community.

Citation

If you find DFlash useful, please cite our work. To share feedback on DFlash or request new model support, please fill out this form: 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}
}

@misc{inco2026dflash2,
  title  = {DFlash 2: Keep Drafting Parallel},
  author = {{Inco AI}},
  year   = {2026},
  month  = {August},
  url    = {https://inco.ai/blog/dflash2/}
}

dflash (z-lab/dflash)

Searching Database…

6.2K ·GitHub
What is this?DFlash is a lightweight block diffusion model built for speculative decoding, drafting tokens in parallel blocks so a larger target LLM can verify them faster than generating one token at a time.
Is DFlash a standalone model I chat with, or does it plug into an existing LLM server?It is a draft-model package that plugs into an existing serving setup (Transformers, MLX, or an OpenAI-compatible SGLang/vLLM server) to speed up generation from a target LLM, not a chatbot on its own.
How do I get it running?Install the base package for use with an OpenAI-compatible server, or install with local inference dependencies, which use MLX on Apple Silicon and Transformers on Linux; for serving benchmarks you separately install a supported SGLang, vLLM, oMLX, or llama.cpp build and point DFlash at its --base-url.
Which models and backends does DFlash actually support?Public checkpoints cover Qwen, Gemma, MiniMax, Kimi, GPT-OSS, Llama-3.1-8B, GLM, and Alpamayo, and DFlash runs through the Transformers or MLX backends for those families, or through any SGLang/vLLM OpenAI-compatible server for other checkpoints.
Any gotchas when using quantized models?On MLX, quantized target or draft models should use a block size of 5 or less, because the current quantized matmul kernel gets less efficient at larger verify widths.
Does it work the same way on Linux and Mac?Local inference is split by platform: Transformers is used on Linux and MLX is used on Apple Silicon Macs, both supported through the same local install path.
How is DFlash evaluated?Benchmarks run through an OpenAI-compatible SGLang/vLLM server, Transformers, or MLX, all sharing the same datasets: gsm8k, math500, humaneval, mbpp, and mt-bench, cached via Hugging Face Datasets.
What's new in DFlash 2?DFlash 2 adds checkpoints for Muse-Glimmer-30B and Qwen3.8-27B with configurable reasoning intensity (reasoningstrength for Muse, reasoningeffort for Qwen3.8), running on the Transformers and MLX backends.
Who helped bring DFlash to popular serving engines?The DFlash team credits engineers from Modal Labs for integrating DFlash into SGLang and an NVIDIA contributor for bringing it to vLLM.
What are similar projects?ms-swift, NeoHorse, vllm, airllm, jeff, sglang, jeeves, unsloth
Creator
z-lab
Size
1.1 MB
Stars
6.2K
Age
9mo
Commits · 90 Days