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

FAQ (4)

information
어떤 ablation study가 DFlash에서 KV cache injection과 input fusion을 비교하며, 어떤 방법이 더 나은 성능을 보입니까?

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배 속도 향상 대 3.5 AL 및 2.9배 속도 향상, MT-Bench에서는 3.0 AL 및 2.2배 속도 향상 대 2.6 AL 및 2.0배 속도 향상을 기록했습니다. KV 주입은 또한 드래프트 프리필 시간을 줄이는데, 이는 대상 컨텍스트가 전체 토큰 처리를 거치지 않고 K/V 캐시에 직접 주입되기 때문입니다.

원본 Issue #58
implementation guidance
Qwen3-VL과 같은 vision-language models (VLMs)에서 DFlash speculative decoding을 사용할 수 있나요?

네, 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
문제 해결
왜 GPTQ 모델에서 vLLM과 DFlash speculative decoding을 사용할 때 'CUDA error: an illegal memory access was encountered' 오류가 발생하나요?

이 CUDA 불법 메모리 접근 오류(주로 cublasGemmEx에서 발생)는 2026년 4월 초경의 일부 vLLM 나이틀리 빌드에서 발생했습니다. 이후 나이틀리 릴리스에서 수정되었습니다. 최신 vLLM 나이틀리 버전(2026-04-08 이후)으로 업그레이드하여 문제를 해결하세요. 오류가 지속되면 호환되는 NVIDIA 드라이버 및 CUDA 버전(예: CUDA 13.0 이상)을 사용하고 있는지도 확인하십시오.

원본 Issue #51
문제 해결
A6000에서 DFlash speculative decoding 사용 시 발생하는 'CUDA error: an illegal memory access'를 해결하는 방법?

이 간헐적 충돌(dflash_worker_v2.py:335 발생)은 Ampere GPU(SM86, 예: A6000)에서 flashinfer 백엔드로 DFlash speculative decoding 기능을 사용할 때 알려진 문제입니다. 유지 관리자들은 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