Assisted Decoding — HF Transformers에서도 켜는 추측 디코딩
Assisted Decoding
HF Transformers도 assisted decoding(=추측 디코딩)을 지원해요. 개념은 같아요 — 작은 어시스턴트 모델이 후보 토큰들을 만들고, 큰 모델이 이를 한 번의 forward로 검증해서 생성 속도를 높이는 거예요.
동작 방식
서로 다른 모델(예: 작은 모델 + 큰 모델)을 번갈아 호출하면서, 작은 모델의 제안을 큰 모델이 검증해요. 제안이 맞으면 그만큼의 생성 스텝을 건너뛰게 돼요.
from transformers import AutoModelForCausalLM, AutoTokenizer
assistant_model = AutoModelForCausalLM.from_pretrained("path/to/small-model")
model = AutoModelForCausalLM.from_pretrained("path/to/large-model")
inputs = tokenizer("The capital of France is", return_tensors="pt")
outputs = model.generate(**inputs, assistant_model=assistant_model)
주의할 점
- 어시스턴트 모델은 같은 토크나이저를 쓰는 게 기본 전제예요.
- 제안이 빗나가면 검증 실패로 재시도가 일어나지만, 샘플링 분포는 유지돼요.
- 모델 간 속도 차이가 클수록 가속 효과가 두드러져요.
정리
vLLM이 대규모 서빙에 특화된 방식이라면, HF의 assisted decoding은 Transformers 생태계 안에서 가볍게 추측 디코딩을 써보는 방식이에요. 둘 다 '작은 모델 제안 → 큰 모델 검증'이라는 같은 원리를 공유해요.