Speculative Decoding은 어떻게 분포를 보존하면서 빠른가
Autoregressive 병목의 수학적 구조부터 Rejection Sampling의 Losslessness 증명, Medusa·EAGLE·Lookahead까지 — draft 전략의 설계 철학을 추적한다.
- 01 LLM Fine-Tuning의 메모리 문제는 어디서 오는가
- 02 LoRA는 왜 저차원 행렬 두 개로 충분한가
- 03 LLM Quantization의 설계 철학 — 무엇을 희생하고 무엇을 보호할 것인가
- 04 QLoRA는 어떻게 65B 모델을 GPU 한 장에 올렸나
- 05 MoE는 왜 같은 연산으로 더 큰 모델처럼 동작하는가
- 06 Flash Attention은 어떻게 T² 메모리 장벽을 넘었나
- 07 Speculative Decoding은 어떻게 분포를 보존하면서 빠른가
LLM 추론의 병목은 연산 능력 부족이 아니다. GPU가 100배 더 강해도 token 하나를 생성할 때마다 수십 GB의 가중치를 HBM에서 통째로 읽어야 한다 — 이것이 근본 제약이다. 그렇다면 “target 분포를 한 치도 바꾸지 않으면서” 이 병목을 우회할 수 있을까?
병목의 수학적 구조
Autoregressive generation은 구조적으로 순차다. 번째 token을 생성하려면 반드시 번째 결과가 있어야 한다. tokens를 생성하면 번의 forward pass가 불가피하다.
각 forward pass는 memory-bound다. Single token input일 때 weight 를 읽는 비용은 bytes (FP16)인 반면 연산은 FLOPs — arithmetic intensity가 2 정도로, GPU의 compute가 쉬는 동안 HBM bandwidth가 bottleneck이 된다.
이로부터 latency lower bound가 따라온다.
여기서 은 hidden dimension, (A100). 7B 모델(hidden=4096)의 per-token latency lower bound는 약 0.54 ms — 이면 540 ms 이상이 필연적이다.
KV cache도 압박을 더한다. Batch size , sequence length , key/value dim 일 때:
에 이차로 증가하므로, 긴 생성일수록 batch size를 줄여야 한다.
Speculative Decoding의 핵심 아이디어
병목을 “우회”하는 아이디어는 단순하다. 작은 draft model 로 개 token을 미리 생성하고, 큰 target model 로 이 개를 한 번의 forward에서 병렬 검증한다. Target의 forward 횟수가 에서 로 줄어든다.
기대 speed-up은 다음과 같다.
는 평균 acceptance rate, 는 draft/target 비용 비율. 최적 는 이다. 예컨대 , 이면 — 실제로는 정도가 최적이다.
Draft가 target에 가까울수록 가 높아져 speed-up이 증가한다. 그러나 draft model이 커질수록 도 커져 분모도 커진다. 대부분의 실험에서 draft는 target의 5–20% 크기(예: 70B target에 1.3B draft)가 최적점이다.
Losslessness — 분포가 정확히 보존되는 이유
Speed-up만으로는 부족하다. “근사”라면 downstream 품질이 흔들린다. Speculative decoding의 진짜 강점은 target 분포를 수학적으로 보존한다는 점이다.
다음 알고리즘으로 샘플링한 는 정확히 분포 를 따른다: (1) , (2) , (3) 이면 accept, (4) 아니면 에서 resample.
전체 확률을 accept 항과 reject 항으로 분해한다.
Accept 기여:
Reject 후 resample 기여: reject mass 에 잔여 분포 를 곱한다.
핵심 항등식 를 적용하면:
따름정리로, rejection rate는 정확히 total variation distance와 같다: . Draft가 target에 가까울수록 TV distance가 작아지고 acceptance rate가 올라간다 — 이것이 더 좋은 draft를 만드는 동기다.
Draft 전략의 진화
Losslessness가 보장되면 남은 질문은 “어떻게 더 좋은 draft를 만드는가”다. 세 가지 방향이 존재한다.
Medusa: Target model의 중간 layer hidden state 에 개의 경량 decoding head를 추가한다. 외부 모델 없이 target 자체의 feature를 재사용하므로 draft cost가 극히 낮고, 같은 feature space에서 예측하므로 로 높다. Tree-structured verification으로 여러 분기를 병렬 탐색하면 effective speed-up은 2.5–3×.
EAGLE: Token 확률을 직접 예측하는 대신 hidden state를 예측한다. Feature space는 semantically similar tokens가 가깝게 배치되어 있어, feature distance가 작으면 logit도 비슷하다 — smooth geometry를 활용해 까지 달성한다. 단, target별 distillation 학습이 필요하다.
Lookahead: N-gram cache를 사전통계에서 구축하고, 현재 context의 마지막 tokens로 후보를 lookup한다. 학습이 전혀 필요 없다. 로 낮지만 배포 즉시 적용 가능하다.
정리
- Autoregressive generation의 bottleneck은 compute가 아닌 HBM bandwidth다. Per-token latency lower bound는 이다.
- Speculative decoding은 small draft + parallel verify로 target forward 횟수를 줄이면서, rejection sampling으로 분포를 수학적으로 보존한다.
- Losslessness의 핵심 항등식: .
- Draft 전략은 training overhead와 acceptance rate의 trade-off다 — Medusa/EAGLE은 높은 acceptance를 위해 학습을 투자하고, Lookahead는 즉시성을 위해 acceptance를 양보한다.
분포를 바꾸지 않고 속도를 2–3배 높이는 것 — 이것이 speculative decoding이 “근사”가 아닌 이유다.