DFlash 블록 확산 디코딩: 투기적 디코딩의 드래프트 비용을 상수로 만드는 법
Z.AI가 공개한 DFlash의 블록 확산 드래프팅과 KV 주입 메커니즘을, 자기회귀 디코딩의 병목 및 LLM 추론 가속 기법 전반과 비교해 정리한다
2026-08-15 · 최초 발행 2026-04-26
LLM 추론 가속 분야에서 Z.AI가 공개한 DFlash는 자기회귀 방식의 구조적 한계를 정면으로 돌파하는 접근법이다. 블록 확산 기반의 병렬 드래프팅을 통해 단일 포워드 패스에서 여러 토큰을 동시에 생성함으로써, 기존 투기적 디코딩 방법 대비 최대 2.5배 이상의 추가 가속을 달성했다. 2026년 2월 arXiv에 논문이 공개된 이후 4월 바이럴 데모를 통해 오픈소스 커뮤니티의 폭발적인 관심을 받으며, LLM 추론 스택의 설계 패러다임 자체를 재구성하고 있다.
자기회귀 디코딩이 안고 있는 병목
GPT·LLaMA·Qwen 등 대부분의 대형 언어 모델은 자기회귀(AR) 방식으로 텍스트를 생성한다. 이전 토큰을 기반으로 다음 토큰 하나를 순차적으로 예측하는 이 방식은 몇 가지 치명적인 병목을 안고 있다. 각 토큰은 반드시 이전 토큰이 생성된 후에야 생성할 수 있다는 순차 의존성 때문에 GPU의 병렬 연산 능력을 토큰 생성 단계에서 제대로 활용하지 못한다. 토큰 하나를 생성할 때마다 모델의 전체 파라미터를 GPU 메모리에서 불러와야 하다 보니, 연산량이 아니라 메모리 대역폭이 실제 속도를 결정하는 메모리 바운드 상태에 놓인다. 그 결과 출력 시퀀스 길이가 늘어날수록 지연도 정확히 선형으로 증가한다 — 512토큰 생성은 128토큰 생성보다 정확히 4배 느리다.
이 한계를 극복하기 위해 학계와 산업계는 투기적 디코딩, 병렬 디코딩, 연속 배치, Flash Attention 등 다양한 가속 기법을 개발해왔다. DFlash는 이 중에서도 투기적 디코딩과 확산 기반 병렬 디코딩을 결합한 새로운 패러다임을 제시한다.
투기적 디코딩에 확산 모델을 끼워 넣다
투기적 디코딩은 두 단계로 동작한다. 소형 드래프트 모델이 여러 토큰을 빠르게 추측하는 드래프트 단계, 그리고 대형 타깃 모델이 드래프트된 토큰 전체를 단일 포워드 패스로 병렬 검증하는 검증 단계다. 수락된 토큰은 그대로 출력하고 거부된 이후 토큰은 폐기한다. 타깃 모델의 검증이 병렬로 이뤄지기 때문에 수락률이 높을수록 실질적인 처리 속도가 크게 향상된다.
기존 EAGLE-3 같은 방법은 자기회귀 드래프트 모델을 쓰기 때문에 드래프트 비용이 생성 토큰 수에 비례해 선형 증가한다. DFlash는 이 드래프트 단계를 확산 모델로 대체해 드래프트 비용을 사실상 고정으로 만든다. 구체적으로는 마스크드 이산 확산(Masked Discrete Diffusion) 방식을 쓴다. 예측하려는 블록의 모든 토큰 위치를 [MASK] 토큰으로 채운 뒤, 드래프트 모델이 단일 포워드 패스에서 모든 마스크 위치에 대한 어휘 확률 분포를 동시에 예측한다. 양방향 어텐션을 활용하기 때문에 각 위치가 블록 내 다른 위치의 정보를 참조할 수 있다. 예측 신뢰도가 높은 위치부터 [MASK]를 실제 토큰으로 교체하는 선택적 언마스킹을 여러 스텝 반복하며 점진적으로 블록 전체를 채우고, 생성된 드래프트 블록 전체를 타깃 모델이 한 번에 검증한다.
KV 주입: 타깃 모델의 표현을 드래프트 모델에 직접 넣는다
DFlash의 기술적 차별점은 타깃 모델과 드래프트 모델 간 컨텍스트 공유 방식에 있다. 기존 투기적 디코딩 방식은 두 모델이 독립적으로 동작하거나 단순한 임베딩 연결 방식을 쓰는 데 반해, DFlash는 KV 주입(KV Injection) 메커니즘을 통해 타깃 모델의 내부 표현을 드래프트 모델에 직접 통합한다.
동작 순서는 이렇다. 먼저 타깃 모델의 여러 레이어에서 균등하게 샘플링한 히든 상태를 추출해 특정 레이어 하나가 아니라 모델 전반의 의미 정보를 종합한다. 이를 소형 선형 투영 레이어로 융합해 컴팩트한 컨텍스트 벡터를 만들고, 이 벡터를 드래프트 모델의 모든 레이어에서 Key/Value 프로젝션에 직접 주입한다. 드래프트 모델이 타깃 모델의 시맨틱을 매 레이어마다 참조할 수 있다는 뜻이다. 주입된 KV 피처는 드래프트 모델의 KV 캐시에 저장돼 드래프팅 이터레이션 전반에 걸쳐 재사용되므로, 추가 연산 비용 없이 타깃 모델의 컨텍스트를 지속적으로 활용한다. 이 메커니즘 덕분에 DFlash의 드래프트 모델(5~8 레이어)은 타깃 모델(수십 레이어)의 풍부한 표현을 활용해 높은 수락률을 달성한다.
비용 구조의 차이가 만드는 성능 격차
투기적 디코딩에서 평균 토큰당 지연(L)은 L = (T_draft + T_verify) / τ로 정의된다. 여기서 T_draft는 드래프트 비용, T_verify는 검증 비용, τ는 평균 수락 토큰 수다.
자기회귀 드래프터(EAGLE-3 방식)는 T_draft가 스피큘레이션 버짓(γ)에 비례해 늘어난다. γ를 키울수록 드래프트 비용이 선형 증가하기 때문에 스피큘레이션 버짓과 드래프트 비용 사이에 최적점이 존재한다. 반면 블록 확산 드래프터(DFlash 방식)는 T_draft가 γ와 거의 무관한 상수다. γ를 크게 설정해도 드래프트 비용이 거의 늘지 않으므로, 수락률(τ)을 높이기 위해 스피큘레이션 버짓을 공격적으로 늘릴 수 있다. 이 비용 구조 차이가 DFlash의 핵심 이점이다. DFlash는 한 번의 드래프트 패스에서 68개 토큰을 생성해, EAGLE-3의 34개 대비 약 2배 높은 수락 토큰 수를 달성한다.
Qwen3-8B 기준 성능 비교는 다음과 같다.
| 방법 | 평균 가속 배율 | 수락 토큰 수(τ) | 드래프트 비용 구조 |
|---|---|---|---|
| AR 베이스라인 | 1.0배 | - | 선형 |
| EAGLE-3 | 약 2.0배 | 3~4개 | 선형 (γ 비례) |
| DFlash | 약 4.9배 | 6~8개 | 상수 (γ 무관) |
| DFlash (최고 설정) | 6.0배+ | 8개+ | 상수 |
DFlash는 손실 없는 가속을 보장한다. 투기적 디코딩의 수학적 특성상 거부-수락 샘플링 메커니즘을 통해, 타깃 모델의 출력 분포와 수학적으로 동일한 분포에서 샘플링된 결과를 보장한다. 품질 저하 없이 순수하게 속도만 향상되는 구조다.
LLM 추론 가속 기법 지도에서 DFlash의 위치
LLM 추론 가속 기법은 크게 네 범주로 나뉜다. 메모리 효율화 기법으로는 Flash Attention이 어텐션 연산의 메모리 접근 패턴을 최적화해 표준 어텐션 대비 24배 빠른 속도를 내고(Flash Attention 3는 H100 GPU에서 FP8 연산까지 지원한다), PagedAttention/vLLM은 GPU 메모리를 페이지 단위로 관리해 KV 캐시 낭비를 최소화한다. 배치 처리 최적화 쪽에서는 연속 배치가 정적 배치의 대기 문제를 해결해 처리량을 1020배 향상시킨다. 모델 압축 기법으로는 FP16→INT8→INT4로 이어지는 양자화(FP8 양자화는 품질 저하 없이 2배 처리량 향상)와 지식 증류가 있다.
마지막으로 병렬/투기적 디코딩 범주에서는 투기적 디코딩(23배), 타깃 모델의 히든 상태를 활용하는 EAGLE/EAGLE-3(평균 2배), 여러 디코딩 헤드로 병렬 예측하는 Medusa·Hydra 같은 비확산 병렬 디코딩(1.52배)이 있고, DFlash는 블록 확산 드래프터와 KV 주입을 결합해 평균 5~6배 가속을 내며 현재 투기적 디코딩 계열 중 최고 성능을 기록하고 있다.
훈련 최적화: Flex Attention
DFlash의 드래프트 모델은 Flex Attention을 활용해 훈련된다. Flex Attention은 PyTorch에서 커스텀 어텐션 마스크를 효율적으로 구현할 수 있도록 설계된 API다. 블록 내부에서는 양방향 어텐션을 허용하되 블록 간에는 정보 유출을 방지하는 희소 어텐션 마스크를 적용해, 여러 마스크 블록을 단일 포워드 패스에서 처리할 수 있게 한다. 블록 경계를 가로지르는 어텐션을 차단하는 커스텀 마스크는 Triton 기반 커널로 최적화해 훈련 속도를 높였다. 논문에서는 블록 확산 학습의 그래디언트 분산을 줄이기 위한 추정기와 데이터 기반 노이즈 스케줄도 함께 제안한다.
배포 옵션과 배치 크기의 상관관계
DFlash는 현재 두 가지 추론 프레임워크를 공식 지원한다. SGLang은 고성능 프로덕션 환경을 위한 지원으로, 연속 배치·Flash Attention·PagedAttention과 통합돼 최대 성능을 발휘하며 GPU 클러스터 기반 API 서버 구성에 적합하다. Transformers는 Hugging Face 기반의 빠른 실험과 프로토타이핑을 위한 지원이다. 가장 널리 쓰이는 프로덕션 서빙 엔진인 vLLM에 대한 통합도 진행 중이다.
DFlash를 포함한 투기적 디코딩 기법은 배치 크기에 민감하다. 배치 크기 14는 GPU가 메모리 바운드 상태이므로 투기적 디코딩의 효과가 극대화되는 최적 조건이고, 배치 크기 816에서는 가속 효과가 1.3~2.0배로 줄어들며, 배치 크기 32 이상에서는 투기적 디코딩의 추가 이점이 미미해지고 연속 배치가 처리량 향상의 주도권을 잡는다. 따라서 DFlash는 실시간 대화, 코드 자동완성, 스트리밍 응답처럼 지연 최소화가 중요한 시나리오에서 가장 큰 효과를 발휘한다.
완전한 비자기회귀는 왜 실패하는가
전체 시퀀스를 한 번에 생성하는 완전한 비자기회귀(NAR) 디코딩은 이론적으로 가장 빠르지만, 실제로는 심각한 품질 저하를 동반한다. arXiv 2602.23225 논문은 이 문제를 깊이 분석했는데, 완전 NAR 방식의 확산 언어 모델은 훈련 데이터 자체가 AR 구조를 강하게 내포하기 때문에 훈련 중 왼쪽에서 오른쪽으로의 자기회귀적 의존성을 암묵적으로 학습하는 경향이 있고, 진정한 병렬 디코딩을 강제하면 토큰 간 의존성이 깨져 문법적·의미론적 일관성이 손상된다.
DFlash는 이 딜레마를 블록 수준의 혼합 전략으로 해결한다. 블록 간에는 자기회귀적 순서를 유지해 앞 블록이 결정된 후 뒤 블록을 생성하고, 블록 내에서는 확산 기반 병렬 디노이징으로 토큰을 병렬 생성한다. 자기회귀의 품질 보장과 확산의 병렬성 이점을 동시에 취하는 셈이다. 특히 DFlash는 드래프트 모델을 타깃 모델의 검증으로 교정하기 때문에 최종 출력 품질은 수학적으로 타깃 모델과 동일하게 보장된다.
DFlash는 블록 확산 기반의 병렬 드래프팅과 KV 주입 메커니즘을 결합해, 기존 자기회귀 드래프터의 선형 비용 구조를 상수 비용으로 대체한 LLM 추론 가속 프레임워크다. 비자기회귀 디코딩의 품질 문제를 블록 단위 혼합 전략으로 해결한 이 설계 원리는, 향후 확산 언어 모델 추론 최적화 연구의 중요한 기준점이 될 것이다.
Sources
- DFlash: Block Diffusion for Flash Speculative Decoding (arXiv)
- DFlash arXiv HTML Full Paper
- DFlash: Z Lab Project Page
- GitHub: z-lab/dflash
- Block Diffusion: Interpolating Between Autoregressive and Diffusion Language Models (arXiv 2503.09573)
- Why Diffusion Language Models Struggle with Truly Parallel (Non-Autoregressive) Decoding? (arXiv)
- DFlash: Block Diffusion Delivers 6x Faster LLM Inference - NYU Shanghai RITS
- DFlash on GPU Cloud: 6x Faster LLM Inference - Spheron Blog
- Speculative Decoding: 2-3x Faster LLM Inference (2026) - Prem AI Blog
- LLM Inference Optimization Techniques - Clarifai