모델

추측적 디코딩

Speculative Decoding

작은 모델이 다음 토큰 몇 개를 먼저 짐작하고 큰 모델이 이를 한 번에 검사하는 방식으로, 답의 품질은 그대로 두고 생성 속도만 높이는 기법이다. 채팅이나 코드 자동완성처럼 사용자가 응답을 기다리는 서비스에서 지연을 줄일 때 쓴다.

항목일반 디코딩추측적 디코딩
한 번에 확정하는 토큰1개맞은 만큼 여러 개
출력 품질기준같음
추가 부담없음짐작 계산, 메모리

GPU가 남는 힘을 쓴다

LLM은 토큰을 하나씩 순서대로 만든다. 이때 GPU는 계산보다 모델 가중치를 메모리에서 읽어 오는 데 대부분의 시간을 쓴다. 그래서 토큰 1개를 처리하든 여러 개를 한꺼번에 검사하든 걸리는 시간이 비슷하고, 추측적 디코딩은 이렇게 남는 계산 여력을 활용한다.

순서는 간단하다. 드래프트가 토큰 몇 개를 제안하면 큰 모델이 한 번의 계산으로 모두 검사하고, 맞은 앞부분까지 채택한다. 처음 틀린 자리는 큰 모델이 직접 고른 토큰으로 바꾼 뒤 다시 짐작을 시작한다. 이 검사 규칙 덕분에 큰 모델 혼자 만든 것과 같은 출력 분포가 수학적으로 보장된다.

짐작하는 방법은 여러 가지

방식누가 짐작하나특징
드래프트 모델같은 계열의 작은 모델가장 기본, 모델 하나를 더 띄움
n-gram입력 속 문장을 그대로 재사용추가 모델 없음
Medusa큰 모델에 붙인 디코딩 헤드별도 모델 없이 헤드만 학습
EAGLE큰 모델의 중간 특징을 쓰는 헤드적중률이 높은 편

어느 방식이든 최종 판정은 큰 모델이 한다.

vLLM에서는 설정으로 켠다

vLLM은 서버를 띄울 때 --speculative-config에 방식, 드래프트 모델, 추측 토큰 수(num_speculative_tokens)를 넣으면 된다. TensorRT-LLM도 드래프트 모델, Medusa, EAGLE 방식을 지원한다. 드래프트로는 타겟과 토크나이저가 같은 같은 계열의 작은 모델을 고르는 것이 기본이다.

추측 토큰 수는 작은 값에서 시작해 조금씩 늘려 본다. 너무 많이 짐작하면 뒤쪽이 대부분 틀려 버리는 계산만 늘어난다. 요약이나 코드 수정처럼 입력을 많이 베끼는 작업이라면 n-gram 방식부터 써 볼 만하다.

배치가 크면 이득이 줄어든다

상황효과
한 사용자가 응답을 기다리는 채팅큼
반복 패턴이 많은 코드, 정형 문서큼
요청을 많이 묶어 처리하는 대량 배치작거나 오히려 손해
temperature를 높인 창작 글적중률이 낮아 작음

배치가 크면 GPU가 이미 계산으로 바빠서 남는 여력이 없다. 드래프트 모델이 메모리를 차지해 KV 캐시 공간이 줄어드는 점도 따져야 한다. 실제 트래픽에서 켰을 때와 껐을 때의 지연과 처리량을 직접 재 보는 것이 가장 확실하다.

모델을 직접 서빙할 때 지연 줄이기용으로 켠다

주로 LLM을 직접 띄워 서비스하는 쪽에서 추론 서버 설정으로 켠다. 출력이 같으니 사용자 쪽은 바뀌는 게 없고, 글자가 더 빨리 나오는 것만 체감된다.

어디서어떻게 쓰나
자체 호스팅 채팅 서비스vLLM 서버에 같은 계열 작은 드래프트 모델을 붙여 답이 나오는 속도를 높임
코드 자동완성·코드 수정기존 코드를 많이 베끼므로 n-gram이나 EAGLE로 짐작해 대기 시간을 줄임
문서 요약·사내 문서 검색 답변입력 문서를 그대로 옮기는 부분이 많아 추가 모델 없는 n-gram부터 시험
대량 배치 처리켰을 때와 껐을 때 처리량을 비교해 손해면 끔
#추론속도#드래프트모델#Medusa#EAGLE
참고 자료
관련 영상
← AI Wiki에서 더 보기
updated at 2026-10-20