작은 드래프트 모델이 여러 토큰을 미리 예측하고, 큰 모델이 한 번에 검증해 처리 속도를 높이는 기법. 품질은 유지하면서 지연 시간을 크게 줄인다.
LLM 추론은 토큰을 하나씩 순서대로 생성하는 자기회귀 방식이라 본질적으로 느리다. 흥미로운 점은, GPU가 토큰 1개를 생성할 때와 여러 개를 동시에 검증할 때 걸리는 시간이 비슷하다는 것이다. 추론 과정이 연산이 아니라 메모리 대역폭에 병목이 걸리기 때문이다. 추측적 디코딩은 이 빈 연산 자원을 활용한다.
작고 빠른 드래프트 모델이 먼저 5~7개 토큰을 추측으로 생성하고, 큰 타겟 모델이 이 토큰들을 한 번의 forward pass로 병렬 검증한다. 맞으면 그대로 채택하고, 틀린 부분부터 다시 생성한다. 수학적으로 타겟 모델 단독 생성과 완전히 동일한 출력 분포를 보장하면서도 2~3배 빠른 추론이 가능하다.
vLLM에서 --speculative-model 플래그로 드래프트 모델을 지정하면 같은 GPU로 처리량을 2.8배까지 높일 수 있다. TensorRT-LLM도 Medusa, EAGLE 등 다양한 방식을 기본 지원한다. 코드 자동완성처럼 반복 패턴이 많은 태스크에서 드래프트 모델의 예측 적중률이 높아져 효과가 극대화된다. 구글은 AI Overviews 검색 기능에서 이 기법을 적용해 응답 속도를 개선했다.
드래프트 모델 방식 외에도 여러 변형이 등장했다. Medusa는 타겟 모델에 여러 개의 디코딩 헤드를 추가해 별도 드래프트 모델 없이 추측을 수행한다. EAGLE은 타겟 모델의 중간 특징(feature)을 활용해 더 정확한 드래프트를 생성하며, LLaMA2-Chat 70B에서 2.7~3.5배 속도 향상을 달성했다. 2025년의 EAGLE-3는 학습 시점에서 최적화를 통합해 성능을 더 끌어올렸다.
추측 토큰 수(num_speculative_tokens)는 5~7개가 최적 구간이다. 7개를 넘으면 드래프트의 적중률이 떨어져 오히려 처리량이 줄어든다. 드래프트 모델이 타겟 모델과 분포가 비슷할수록 효과가 크므로, 같은 계열의 작은 모델을 드래프트로 쓰는 것이 일반적이다.