DFlash: 블록 확산(Block Diffusion) 기반으로 LLM 추론 속도를 높이는 오픈소스 라이브러리 (feat. Z.ai)

DFlash 소개

대규모 언어 모델(Large Language Model, LLM)의 추론 속도는 실제 서비스 배포에서 가장 중요한 병목 중 하나입니다. 자동 회귀(Auto-regressive) 방식으로 토큰을 하나씩 생성하는 표준 LLM 디코딩 방식은 하드웨어의 병렬 연산 능력을 충분히 활용하지 못하며, 특히 긴 문장을 생성할수록 지연이 누적됩니다. 이를 극복하기 위한 방법 중 하나가 추측적 디코딩(Speculative Decoding)이지만, 기존 방식은 별도로 훈련된 드래프트 모델(Draft Model)의 품질에 크게 의존한다는 한계가 있었습니다.

DFlash는 이러한 한계를 해결하기 위해 블록 확산(Block Diffusion) 모델을 투기적 디코딩에 적용한 경량 오픈소스 라이브러리입니다. 블록 확산이란 여러 토큰을 동시에 병렬로 초안(Draft)으로 생성하고, 이를 타깃 모델이 한 번에 검증하는 방식입니다. DFlash의 드래프트 모델은 표준 자동 회귀 디코딩과 달리, 여러 토큰 위치를 동시에 마스킹하고 복원하는 확산 기반 접근법으로 훈련되어 병렬 생성이 가능합니다. 이를 통해 타깃 모델의 출력 품질을 유지하면서도 실질적인 추론 속도 향상을 달성합니다.

DFlash는 vLLM, SGLang, Transformers, MLX(Apple Silicon) 등 널리 사용되는 추론 프레임워크와의 호환성을 제공하며, Qwen3, Qwen3.5, LLaMA-3.1, Kimi-K2.5, GPT-OSS 시리즈 등 주요 오픈소스 모델을 위한 드래프트 모델을 Hugging Face에 공개했습니다. MIT 라이선스로 공개되어 연구 및 상업 목적 모두에서 자유롭게 활용할 수 있습니다.

DFlash의 블록 확산 기반 동작 원리

전통적인 추측적 디코딩(Speculative Decoding) 기법은 소형 드래프트 모델이 자동 회귀 방식으로 여러 토큰을 순차 생성한 뒤, 대형 타깃 모델이 이를 한 번에 검증하는 구조입니다. 드래프트 단계의 병목이 여전히 순차적이라는 문제가 있습니다. DFlash는 이 드래프트 단계를 블록 확산 모델로 대체합니다.

블록 확산에서 드래프트 모델은 여러 토큰 위치를 동시에 마스킹한 뒤 한 번의 순전파(forward pass)로 복원합니다. 이 과정은 BERT 스타일의 마스킹 언어 모델과 유사하지만, 학습 방식은 확산 모델의 잡음 제거(denoising) 원리를 따릅니다. 결과적으로 드래프트 토큰을 생성할 때 병렬 연산이 가능해져, 동일한 드래프트 길이에서 기존 자동 회귀 드래프트 대비 연산 효율이 크게 높아집니다.

vLLM에서의 DFlash 사용 예시

vllm serve Qwen/Qwen3.5-27B \
  --speculative-config '{"method": "dflash", "model": "z-lab/Qwen3.5-27B-DFlash", "num_speculative_tokens": 15}'

SGLang 기반 서버 실행

python -m sglang.launch_server \
    --model-path Qwen/Qwen3.5-35B-A3B \
    --speculative-algorithm DFLASH \
    --speculative-draft-model-path z-lab/Qwen3.5-35B-A3B-DFlash

Transformers 백엔드 Python 사용 예시

from dflash import spec_generate
from transformers import AutoModelForCausalLM, AutoTokenizer

target_model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen3-8B")
draft_model = AutoModelForCausalLM.from_pretrained("z-lab/Qwen3-8B-DFlash")
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen3-8B")

inputs = tokenizer("인공지능이란 무엇인가?", return_tensors="pt")
output = spec_generate(
    target_model, draft_model, inputs["input_ids"],
    num_speculative_tokens=16, temperature=0.0, max_new_tokens=512
)
print(tokenizer.decode(output[0], skip_special_tokens=True))

DFlash의 지원 모델 및 평가

DFlash는 2026년 4월 기준으로 다양한 최신 오픈소스 LLM을 위한 드래프트 모델을 Hugging Face에 공개하고 있습니다. Qwen3 시리즈(4B, 8B), Qwen3.5 시리즈(4B~35B), Qwen3.5-Coder, LLaMA-3.1-8B-Instruct, Kimi-K2.5, GPT-OSS(20B, 120B) 등의 드래프트 모델을 제공하며, Qwen3.5-122B-A10B와 Qwen3.5-397B-A17B 등 더 큰 모델 지원도 예정되어 있습니다.

Model DFlash Draft
Qwen3.6-35B-A3B (Preview) z-lab/Qwen3.6-35B-A3B-DFlash
Kimi-K2.5 z-lab/Kimi-K2.5-DFlash
Qwen3.5-4B z-lab/Qwen3.5-4B-DFlash
Qwen3.5-9B z-lab/Qwen3.5-9B-DFlash
Qwen3.5-27B z-lab/Qwen3.5-27B-DFlash
Qwen3.5-35B-A3B z-lab/Qwen3.5-35B-A3B-DFlash
Qwen3-Coder-Next z-lab/Qwen3-Coder-Next-DFlash
Qwen3-Coder-30B-A3B z-lab/Qwen3-Coder-30B-A3B-DFlash
gpt-oss-20b z-lab/gpt-oss-20b-DFlash
gpt-oss-120b z-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-Instruct z-lab/LLaMA3.1-8B-Instruct-DFlash-UltraChat
Qwen3.5-122B-A10B 지원 예정
Qwen3.5-397B-A17B 지원 예정
GLM-5.1 지원 예정

평가 프레임워크는 GSM8K, MATH500, HumanEval, MBPP, MT-Bench 등 표준 벤치마크를 지원하며, vLLM/SGLang/Transformers/MLX 백엔드 각각에 대한 평가 스크립트가 제공됩니다. Apple Silicon 사용자를 위한 MLX 백엔드도 지원하며, 슬라이딩 윈도우 KV 캐시를 활용한 긴 컨텍스트 추론 실험도 가능합니다.

DFlash 설치 방법

git clone https://github.com/z-lab/dflash.git
cd dflash

# Transformers 백엔드
uv pip install -e ".[transformers]"

# SGLang 백엔드
uv pip install -e ".[sglang]"

# MLX 백엔드 (Apple Silicon)
pip install -e ".[mlx]"

vLLM 백엔드 사용 시에는 nightly 빌드가 필요하며, 저장소 README에서 정확한 설치 명령어를 확인하시기 바랍니다.

라이선스

DFlash 프로젝트는 MIT 라이선스로 공개되어 있어 개인 및 상업적 목적으로 자유롭게 사용할 수 있습니다.

:house: DFlash 홈페이지

:scroll: DFlash 논문: Block Diffusion for Flash Speculative Decoding

:github: DFlash 프로젝트 GitHub 저장소

:hugs: DFlash 드래프트 모델 다운로드

더 읽어보기




이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:south_korea:이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일:love_letter:로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)

:wrapped_gift: 아래:down_right_arrow:쪽에 좋아요:+1:를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ :star_struck:

1개의 좋아요