LLM의 추론속도를 빠르게 만드는 비결, Speculative Decoding이란 무엇인가?
먼저 30초 요약
Speculative Decoding은 2026년 LLM 추론의 “기본 가속 레이어”가 됐습니다. vLLM·SGLang에서 플래그 하나만 켜면 활성화되고, 안 쓰는 게 이상한 시점입니다.
원리는 단순합니다. 작고 빠른 “draft 모델”이 여러 토큰을 미리 예측하고, 크고 정확한 “target 모델”이 한 번의 forward pass로 검증·승인하는 구조입니다. 한 토큰씩 만드는 autoregressive 병목을 우회합니다.
2026년 SOTA 흐름: n-gram(~1.3x) → Medusa(~2x) → EAGLE-3(~3x) → MTP(DeepSeek native 1.8x / Gemma 4 drafter 3x) → DFlash(6x lossless). 같은 모델·같은 GPU에서 throughput이 6배까지 갈 수 있습니다.
운영 관점에서는 NVFP4 양자화로 가중치를 압축한 모델에 speculative decoding을 한 번 더 얹는 “이중 가속” 조합이 가장 강력합니다. 같은 시리즈로 NVFP4 + vLLM 듀얼 Blackwell 서빙 가이드와 2026 오픈소스 LLM 동향도 함께 보시기를 권장합니다.
들어가며: 왜 LLM 추론은 이렇게 느린가
LLM을 한 번이라도 직접 띄워본 분이라면 같은 의문을 가지셨을 겁니다. “GPU 사용률은 30%대인데, 응답은 왜 이렇게 늦지?” 답은 LLM 추론이 본질적으로 autoregressive(자기회귀)라는 데 있습니다. 매 토큰을 만들 때마다 모델 전체를 다시 한 번 통과시켜야 하고, 그 다음 토큰은 직전 토큰이 결정돼야 시작할 수 있습니다. 1.6T 파라미터 MoE라면 한 토큰을 위해 49B 활성 파라미터가 매번 계산됩니다.
더 결정적인 문제는 decode 단계가 memory-bound라는 점입니다. 모델 가중치를 HBM에서 SM으로 옮기는 시간이 압도적으로 길고, GPU compute는 노는 시간이 많습니다. 1토큰 = 1 forward pass = 1 메모리 읽기. “GPU는 일감을 한 번에 더 받고 싶어 하는데, autoregressive가 그걸 막고 있다”가 한 줄 요약입니다.
Speculative Decoding은 정확히 이 병목을 푸는 방법입니다. 한 forward pass에 토큰을 여러 개씩 만들어, GPU의 compute·메모리 IO를 한꺼번에 더 쓰자는 발상입니다.
1. Speculative Decoding의 핵심 아이디어
아이디어는 한 줄로 요약할 수 있습니다. “추측하고, 한 번에 검증한다(Speculate, then verify in parallel).” 작동은 이렇게 됩니다.
Draft 단계: 작고 빠른 draft 모델이 다음 K개 토큰을 빠르게 예측합니다.
Verify 단계: 크고 정확한 target 모델이 “원래 입력 + K개 draft 토큰”을 한 번의 forward pass로 모두 동시에 처리합니다.
Accept/Reject: target이 만든 분포와 draft 토큰을 비교해, 일치하는 prefix까지 승인합니다. 첫 mismatch가 나오는 위치에서는 target이 만든 정답 토큰을 채택합니다.
이 알고리즘의 결정적 성질은 lossless라는 점입니다. 즉 target 모델 단독으로 생성한 결과와 분포적으로 동일합니다. 품질을 깎아서 속도를 얻는 게 아니라, “같은 품질, 더 적은 wall-clock”을 만듭니다.
가속 효과는 acceptance rate에 비례합니다. draft가 잘 맞을수록 한 forward pass로 여러 토큰을 얻고, 잘못 맞을수록 mismatch 위치까지만 진행돼 효과가 줄어듭니다. 그래서 2024~2026년의 speculative decoding 연구는 사실상 “어떻게 draft acceptance rate를 올릴 것인가”의 경쟁이었습니다. 아래 다섯 가지 접근이 그 답입니다.
2. 가장 단순한 시작: n-gram speculative decoding
가장 가벼운 접근부터 보겠습니다. 별도 draft 모델 없이, 입력 컨텍스트에서 n-gram 패턴을 찾아 다음 토큰을 추측합니다. 예를 들어 입력에 같은 함수 시그니처나 같은 문장이 반복되면, 그 패턴을 그대로 draft 토큰으로 사용합니다.
장점: 추가 학습이 필요 없고, 별도 모델이 필요 없습니다. 메모리 오버헤드 zero에 가깝습니다.
단점: acceptance rate가 낮습니다. 새로운 분포의 토큰을 예측하기에는 부족합니다.
적합 워크로드: RAG, 코드 자동 완성, 정형 응답처럼 입력 컨텍스트에 답이 부분적으로 포함된 경우에 강합니다. 가속은 보통 1.2~1.4배 수준입니다.
n-gram은 speculative decoding의 “하한선” 같은 존재입니다. 그 위에 모든 다른 기법이 쌓입니다.
3. Medusa: target 모델에 여러 개의 머리를 단다
Medusa는 발상이 단순합니다. Target 모델 위에 “미래 i번째 토큰”을 예측하는 여러 개의 prediction head를 추가합니다. 기본 head는 next-token을, Medusa head 2번은 다다음 토큰을, head 3번은 그 다음 토큰을 동시에 예측하는 식입니다.
각 head가 만들어낸 후보 토큰들로 tree-shaped candidate를 만들고, 트리 전체를 target 모델이 한 번에 검증합니다. 트리 형태 덕분에 하나의 draft 시퀀스에 그치지 않고 여러 후보 경로를 동시에 시험할 수 있습니다.
장점: 별도 draft 모델 없이 target에 head만 추가하면 됩니다.
단점: Medusa head들을 추가로 학습해야 하고, 메모리 오버헤드가 생깁니다.
가속: 보통 2배 수준.
4. EAGLE / EAGLE-3: target의 hidden feature를 빌려 쓰자
EAGLE의 핵심 통찰은 이렇습니다. “Target 모델이 한 토큰을 만들 때 만들어낸 hidden states에는 이미 미래 토큰의 정보가 implicit하게 담겨 있습니다.” 그렇다면 그 hidden states를 입력으로 받아 draft를 더 잘 만들 수 있는 작은 모델을 따로 둘 수 있습니다.
구체적으로 EAGLE은 target 모델의 hidden representation + 직전에 만든 토큰 임베딩을 조합해 다음 토큰들을 예측하는 작은 transformer 한 두 층을 사용합니다. 그리고 트리 기반 검증으로 acceptance rate를 한 단계 더 끌어올립니다.
EAGLE-3는 그 후속 개선판입니다. 더 깊은 layer의 hidden feature를 활용하고, 트리 구조와 검증 알고리즘을 정교화해 대략 3배 가속까지 끌어올렸습니다. 2026년 5월 기준으로 EAGLE-3가 “보편적으로 plug-in 가능한 표준”에 가깝습니다.
5. MTP(Multi-Token Prediction): 모델 자체가 미래를 본다
앞의 방식들이 모두 “target 모델은 그대로 두고 외부에 draft를 붙이자”였다면, MTP는 다른 길을 갑니다. “target 모델 자체를 학습 시점부터 미래 토큰을 함께 예측하도록 만들자.” 이 발상이 2024년 말 DeepSeek-V3에서 본격적으로 검증됐고, 2026년 5월에는 Google이 Gemma 4용 MTP drafter를 공개하며 외부 drafter 방식으로도 확장됐습니다.
5-1. DeepSeek-V3/V4의 native MTP
DeepSeek-V3는 다음 D개 토큰을 순차적으로(causal chain을 유지하면서) 예측하는 MTP 모듈을 모델에 통합했습니다. 한 토큰을 예측한 결과를 그대로 다음 모듈의 입력으로 받아 그 다음 토큰을 예측하는 식입니다. 각 MTP 모듈은 다음 네 컴포넌트로 구성됩니다.
shared embedding layer — 메인 모델과 공유
transformer block — MTP 전용 한 층
projection matrix — 이전 depth의 hidden과 다음 토큰 임베딩을 결합
shared output head — 메인 모델과 공유
DeepSeek-V3 기준으로 MTP가 추가하는 파라미터는 약 14B(11.5B unique + 2.5B shared)입니다. 베이스 671B 대비 약 2% 수준입니다. DualPipe 파이프라인 병렬 전략으로 임베딩 레이어와 출력 헤드를 같은 PP rank에 두어 공유하기 때문에 메모리 오버헤드도 추가로 줄어듭니다.
MTP의 진짜 매력은 “학습/추론 양쪽에서 동시에 일을 한다”는 점입니다.
학습 시: 다음 토큰 하나만 예측하는 대신 N개를 함께 예측하므로 학습 신호가 dense해지고, 모델의 내부 표현이 더 멀리 보도록 강제됩니다. 데이터 효율이 올라가고 representation pre-planning 효과가 생깁니다.
추론 시: MTP 모듈을 폐기하고 메인 모델만 써도 됩니다. 또는 그대로 speculative decoding의 draft로 재활용해서 추가 모델 없이 가속을 받을 수 있습니다. DeepSeek는 자체 보고로 약 1.8배 throughput이라고 밝혔습니다.
DeepSeek-V4 Pro·Flash 모두 이 구조를 계승했습니다. 즉 V4를 띄우면 별도 draft 모델 다운로드 없이도 speculative decoding이 활성화됩니다.
5-2. Gemma 4 MTP drafters (2026-05-06)
Google은 같은 발상을 다른 방향으로 풀었습니다. “target Gemma 4 모델은 그대로 두고, 외부에 별도 MTP drafter를 학습해서 배포하자.” 2026년 5월 6일, Gemma 4용 MTP drafter들이 공식 출시됐습니다.
사용 방식은 매우 단순합니다. drafter가 다음 K개 토큰을 빠르게 제안하고, target Gemma 4가 그 K개를 한 forward pass에 검증합니다. target이 모두 동의하면 K개 + 검증 결과로 만들어진 한 개를 합쳐 K+1개를 한 번에 출력합니다.
가속: Google 공식 발표 기준 최대 3배. 품질 손실 없음(lossless).
장점: 기존 Gemma 4 가중치를 손대지 않고, Hugging Face Transformers에서 drafter 하나만 추가하면 됩니다.
의미: MTP가 “DeepSeek 전용 기법”이 아니라 모델 패밀리마다 별도 drafter 형태로 확산되기 시작했습니다.
5-3. MTP가 시사하는 것
두 가지 방식이 시사하는 바가 큽니다. native MTP(DeepSeek)는 학습 단계 통합으로 운영을 단순화하고, external drafter MTP(Gemma 4)는 기존 모델을 손대지 않고도 같은 가속을 제공합니다. 어느 쪽이든 결과적으로 vLLM·SGLang 같은 추론 엔진에서 “speculative_method: mtp” 한 줄이면 가속이 켜집니다. 사용자가 만지지 않아도 되는 영역이 점점 넓어지고 있습니다.
6. DFlash: Block Diffusion으로 6배 lossless 가속
2026년 봄 기준으로 가장 빠른 speculative decoding 기법은 DFlash입니다. 이름은 “Diffusion + Flash(빠른 speculative decoding)”의 합성어이고, 발상 자체가 한 단계 더 나갑니다.
6-1. 한 번의 forward pass로 K개를 통째로
EAGLE, MTP 같은 기존 기법은 K개의 draft 토큰을 만들 때도 내부적으로 순차적인 의존성이 있습니다. i번째 토큰을 만들어야 i+1번째 토큰을 만들 수 있는 구조입니다. 작은 draft 모델이라 비용은 낮지만, “여전히 K번의 mini-step”은 필요합니다.
DFlash는 이 가정을 깹니다. block diffusion 모델을 draft로 사용해 K개 토큰을 단 한 번의 forward pass에 병렬로 생성합니다. diffusion 모델의 noise-to-signal 트릭을 텍스트의 토큰 블록에 적용한 것입니다. K개를 동시에 만들기 때문에 draft 비용이 추가로 떨어집니다.
6-2. Target hidden feature를 조건으로 주입
DFlash의 두 번째 트릭은 EAGLE의 통찰을 계승합니다. target 모델의 hidden context features를 draft 모델의 각 layer Key-Value 캐시에 주입해서, target이 “원래 만들었을 분포”에 draft가 빠르게 수렴하게 만듭니다. 그 결과 acceptance rate가 매우 높게 유지됩니다.
DFlash inference design. Target에서 뽑은 hidden context features가 fuse 후 draft layer의 KV cache에 주입됩니다. (출처: DFlash arXiv 2602.06036, Figure 2)
6-3. 성능: EAGLE-3 대비 2.5배 더 빠름
DFlash 논문이 보고하는 수치는 인상적입니다.
6배 lossless 가속 — autoregressive 대비, 품질 손실 없이.
EAGLE-3 대비 2.5배 추가 가속 — 즉 현재 가장 빠른 speculative decoding 방법.
Qwen3.6-27B, Qwen3.6-35B-A3B 등에 사전훈련된 draft 모델이 Hugging Face에 공개돼 있고, vLLM speculators 모듈에 이미 통합됐습니다.
Qwen3-8B 기준 DFlash vs EAGLE-3 vs Autoregressive Decoding 가속 비교. (출처: DFlash arXiv 2602.06036, Figure 1)
7. 어떤 방식을 언제 쓰는가
2026년 5월 기준으로 의미 있는 speculative decoding 옵션을 한 표로 정리하면 다음과 같습니다.
방식 | 가속 | 특징 | 잘 맞는 워크로드 |
|---|---|---|---|
n-gram | ~1.3x | zero setup, 학습 불필요 | RAG, 코드 자동완성 등 반복 패턴 |
Medusa | ~2x | target에 head 추가, 별도 학습 | 일반 대화 |
EAGLE | ~2.5x | hidden feature + 트리 검증 | 일반 대화·코딩 |
EAGLE-3 | ~3x | EAGLE 개선판, 가장 보편적 | 일반 대화·에이전트 |
MTP (DeepSeek native) | 1.8x | 모델 내장, 별도 drafter 불필요 | DeepSeek-V3/V4 워크로드 |
MTP (Gemma 4 drafter) | 3x | 외부 drafter, plug-and-play | Gemma 4 패밀리 |
DFlash | 6x | block diffusion, 현재 SOTA | throughput 극대화, Qwen3.6 등 |
실전 선택 기준은 비교적 단순합니다. DeepSeek-V4 운영이면 native MTP, Gemma 4 운영이면 공식 MTP drafter, Qwen 시리즈 운영이면 DFlash, 그 외 모델이면 EAGLE-3가 1차 후보입니다. 그 위에 n-gram을 fallback으로 두면 어떤 모델에서도 최소한의 가속은 받습니다.
8. vLLM·SGLang에서의 실전 활성화
2026년의 좋은 점은 위 기법들이 거의 모두 vLLM과 SGLang에서 한 줄 설정으로 켜진다는 사실입니다. 모델 가중치와 draft 가중치만 준비돼 있으면 됩니다. 대표 패턴 몇 가지만 보겠습니다.
# EAGLE-3 (일반 모델, 가장 보편적 출발점)
vllm serve meta-llama/Llama-3.3-70B-Instruct \
--speculative-config '{"method": "eagle3", "model": "yuhuili/EAGLE3-Llama-3.3-70B", "num_speculative_tokens": 5}'
# DeepSeek-V4 native MTP
vllm serve deepseek-ai/DeepSeek-V4-Flash \
--speculative-config '{"method": "mtp", "num_speculative_tokens": 4}'
# Gemma 4 MTP drafter (Google 공식 drafter)
vllm serve google/gemma-4-27b-it \
--speculative-config '{"method": "mtp", "model": "google/gemma-4-mtp-drafter", "num_speculative_tokens": 3}'
# DFlash (Qwen3.6 시리즈, 현재 SOTA)
vllm serve Qwen/Qwen3.6-35B-A3B \
--speculative-config '{"method": "dflash", "model": "z-lab/dflash-qwen3.6-35b-a3b", "num_speculative_tokens": 7}'SGLang도 거의 동일한 형태이고, n-gram은 별도 가중치 없이 "method": "ngram"만 지정하면 됩니다.
꼭 모니터링해야 하는 지표. 가속이 잘 되는지 보려면 vllm:spec_decode_acceptance_rate(승인 비율)와 vllm:spec_decode_efficiency(실제 wall-clock 가속)을 함께 보세요. acceptance rate 50% 이상이 정상이고, 30% 아래로 떨어지면 draft 모델 적합성을 의심해야 합니다. num_speculative_tokens는 3~8 사이가 sweet spot이고, 워크로드 별로 튜닝이 필요합니다.
9. 이중 가속: NVFP4 + Speculative Decoding
한 가지 운영 관점의 결정적 포인트가 있습니다. NVFP4 같은 4비트 양자화와 speculative decoding은 서로 독립적이고, 곱셈으로 결합됩니다. NVFP4가 가중치를 줄여서 메모리 IO와 단일 forward pass 비용을 떨어뜨리고, 그 위에 speculative decoding이 “한 번의 forward pass로 더 많은 토큰을 얻게” 만듭니다.
실제 운영에서는 다음과 같은 조합이 가장 강력합니다.
듀얼 Blackwell + NVFP4 가중치 + KV cache 양자화 + EAGLE-3/DFlash — throughput 극대화 조합
DeepSeek-V4-Flash NVFP4 + native MTP — 별도 draft 모델 다운로드 없이도 한 노드 안에서 1.8배 가속
Qwen3.6 NVFP4 + DFlash — 현재 SOTA 가속, 듀얼 Blackwell에서 가장 빠른 단일 노드 운영 구성
하드웨어와 모델 선택을 끝낸 다음 가장 큰 추가 이득이 나오는 layer가 speculative decoding이라고 보는 게 가장 정확합니다. 운영 인프라 관점의 전체 그림은 NVFP4 + vLLM 듀얼 Blackwell 서빙 가이드에 따로 정리해뒀고, 개인용 Apple Silicon 환경(MLX)에서는 양자화만으로도 충분한 경우가 많다는 점은 MLX 로컬 LLM 추론 가이드에서 다뤘습니다.
10. 함정과 한계
Speculative decoding이 만능은 아닙니다. 운영 전에 알아둘 만한 함정과 한계를 정리합니다.
Batch size가 매우 큰 환경에서는 효과가 줄어듭니다. Decode가 이미 compute-bound로 넘어가면 “병렬 검증으로 메모리 IO를 분산”하는 이득이 작아집니다. 단일 사용자·소규모 배치(1~8) 환경에서 효과가 가장 큽니다.
Draft가 잘못 맞으면 오히려 느려질 수 있습니다. Acceptance rate가 20% 아래면 draft에 쓴 비용이 회수되지 못합니다. 워크로드별로 검증해야 합니다.
매우 긴 출력(1만 토큰 이상)에는 누적 효과가 큽니다. 짧은 응답에서는 미미하지만, agentic·long-form 출력에서는 wall-clock이 의미 있게 줄어듭니다.
모델·draft 버전 정합성에 주의해야 합니다. EAGLE-3 draft는 특정 base 모델·tokenizer에 묶여 있고, 불일치 시 silent하게 acceptance rate가 폭락합니다.
Lossless라는 보장은 “이론적 분포 동일”입니다. 구현 버그나 numerical precision 차이로 실제로는 미세한 회귀가 생길 수 있어, 발행 전 자체 평가셋으로 회귀 테스트는 반드시 돌리세요.
11. 빠른 운영 체크리스트
실제 운영에 speculative decoding을 붙일 때 한 번 훑어볼 수 있는 체크리스트입니다.
모델별로 가장 강한 방식 1차 후보 잡기: DeepSeek-V4 → native MTP, Gemma 4 → MTP drafter, Qwen3.6 → DFlash, 기타 → EAGLE-3.
n-gram을 fallback으로 항상 켜두기: 어떤 모델이든 RAG·코드 워크로드에서 최소한의 가속을 받습니다.
acceptance rate 알람:
vllm:spec_decode_acceptance_rate가 30% 이하로 떨어지면 알람. draft 모델 불일치 또는 분포 변화 가능성.num_speculative_tokens 튜닝: 3~8 사이에서 시작해, acceptance rate × tokens-per-forward를 최대화하는 지점을 찾으세요.
NVFP4 + speculative decoding 이중 가속: 듀얼 Blackwell에서 가장 큰 ROI가 나오는 조합입니다.
prefix caching과 함께 사용: system prompt가 긴 챗봇·에이전트에서 시너지가 큽니다.
회귀 평가셋(50+ 케이스)으로 매 deploy 전 검증: lossless라도 numerical 차이가 있을 수 있습니다.
워크로드별 wall-clock 측정: 단일 사용자, 배치 4, 배치 32 같은 세 지점에서 측정해서 batch size별 효율 곡선을 확보하세요.
12. 결론: 가속은 더 이상 옵션이 아닙니다
2026년의 LLM 추론 스택은 명확한 4개 층으로 정리됩니다. 모델(오픈소스 frontier) → 양자화(NVFP4) → 어텐션(CSA/HCA/DSA 등) → 추론 가속(speculative decoding). 위 세 층이 한두 해 사이에 표준화됐다면, 가장 새로 굳어진 마지막 층이 바로 speculative decoding입니다. 안 쓰면 같은 GPU에서 같은 모델로 두 배~여섯 배 느리게 돌리는 셈이고, 그 비용 차이는 운영 규모가 클수록 결정적으로 커집니다.
기술적으로는 다섯 가지 방식이 “같은 문제를 다른 각도에서 풀고 있다”는 게 흥미롭습니다. n-gram은 컨텍스트의 통계, Medusa는 추가 head, EAGLE은 hidden feature, MTP는 학습 단계 통합, DFlash는 block diffusion. 본질은 모두 “한 번의 forward pass로 여러 토큰을 얻기 위해 GPU의 놀고 있는 compute를 깨우는 방법”이었습니다. 2027년에는 이들이 1~2가지 패턴으로 수렴하고, 추론 엔진은 사용자가 거의 만지지 않아도 자동으로 최적의 가속 layer를 골라주는 단계로 갈 가능성이 높습니다.
시리즈로 정리하면 다음 네 글이 짝을 이룹니다. NVFP4 + vLLM 듀얼 Blackwell 서빙 가이드에서 가중치·메모리를, MLX 로컬 LLM 추론 가이드에서 개인용 스케일의 같은 패턴을, 2026 오픈소스 LLM 동향에서 모델 아키텍처를 다뤘습니다. 그 위의 마지막 layer가 이 글의 speculative decoding입니다. 모델은 계속 바뀌어도 이 네 가지 layer로 만드는 운영 스택은 우리가 통제할 수 있는 자산으로 만들어둘 수 있습니다.
참고 자료
DFlash: Block Diffusion for Flash Speculative Decoding (arXiv 2602.06036)
Accelerating Gemma 4: faster inference with multi-token prediction drafters (Google Blog)
Speed-up Gemma 4 with Multi-Token Prediction (Google AI for Developers)
FlashAttention-3: Fast and Accurate Attention with Asynchrony and Low-precision (PyTorch Blog, 참고)
Plaid Labs Tech Blog — 오픈소스 LLM 생태계 2026: DeepSeek-V4·Qwen3.6·GLM-5.1
Plaid Labs 기술 블로그 — LLM을 작게 만드는 여러가지 압축 기술들 (BitNet · AutoRound · TurboQuant · REAP)