AI 인사이트 목록
Optimization2026년 10월 30일AX Specialist 김지우

초안 모델로 생성 속도를 높이는 추측 디코딩

Google Research의 추측 디코딩은 작은 초안 모델이 제안한 토큰을 큰 모델이 한 번에 검증하고 확률적 수락 규칙으로 출력 분포를 그대로 유지해, T5-XXL의 생성 속도를 재학습 없이 2배에서 3배 높였습니다. M3 Pro 맥북의 Gemma 4 12B 단일 사용자 실측에서는 초안을 켜면 같은 출력을 유지한 채 생성 속도가 15.3 tok/s에서 33.4 tok/s로 2.18배 올랐습니다.

원문 논문 보기Speculative Decoding · 추론 가속 · 디코딩 · 온디바이스 · Ollama

Google Research의 Leviathan, Kalman, Matias가 ICML 2023에서 발표한 추측 디코딩(speculative decoding)은 작은 초안 모델이 토큰 여러 개를 먼저 제안하고 큰 모델이 이를 한 번에 검증하는 방식으로, 출력 분포를 바꾸지 않고 T5-XXL의 생성 속도를 2배에서 3배 높였습니다. 재학습이나 구조 변경이 필요 없어 온프레미스와 노트북 환경의 단일 사용자 추론에 바로 적용할 수 있는 기법입니다.

핵심 요약

  • 큰 모델(타깃 모델)의 디코딩은 연산보다 메모리 대역폭에 묶여 있어, 토큰 여러 개를 병렬로 검증해도 한 번 실행하는 시간과 크게 다르지 않습니다(논문 1장).
  • 수락과 거절을 확률적으로 정하는 추측 샘플링 덕분에 출력 분포는 타깃 모델 단독 실행과 같습니다(2.3절, 부록 A.1).
  • 속도 향상은 수락률 α, 초안 길이 γ, 초안 모델의 상대 비용 c 세 값으로 계산됩니다(정리 3.8). M3 Pro 맥북에서 Gemma 4 12B로 측정한 결과 초안을 끈 상태 대비 생성 속도가 2.18배였고 출력 텍스트는 글자 단위로 같았습니다.

문제 배경

자기회귀 모델은 토큰 K개를 만들 때 모델을 K번 순차 실행합니다. 논문은 이 순차 실행의 병목이 산술 연산보다 메모리 대역폭과 통신에 있다고 지적합니다(1장). 토큰 하나를 만들 때마다 가중치와 KV 캐시 전체를 메모리에서 읽어야 하므로, 연산 장치는 남는 상태로 대기하는 시간이 깁니다.

기존 가속 기법인 증류, 희소화, 양자화, 조기 종료는 대부분 모델 구조나 학습 절차를 바꾸고 출력도 원래 모델과 달라집니다(5장). 저자들은 남는 연산 자원을 동시 실행에 쓰고, 출력은 그대로 유지하는 방향을 택했습니다.

방법

추측 디코딩 동작 예시(논문 Figure 1)

알고리즘 1의 한 단계는 세 부분으로 구성됩니다(2.1절).

  1. 초안 모델 Mq가 γ개 토큰을 순차적으로 생성합니다.
  2. 타깃 모델 Mp가 원래 접두사와 초안을 이어 붙인 γ+1개 위치를 한 번에 병렬로 평가합니다.
  3. 앞에서부터 초안 토큰을 검증합니다. 초안 확률 q(x)가 타깃 확률 p(x) 이하이면 그대로 수락하고, q(x)가 더 크면 1 − p(x)/q(x) 확률로 거절합니다. 거절된 위치에서는 max(0, p(x) − q(x))를 정규화한 분포에서 토큰을 다시 뽑고, 전부 수락되면 토큰 하나를 추가로 뽑습니다.

이 규칙으로 얻은 토큰은 어떤 p와 q에 대해서도 p를 따른다는 것이 부록 A.1의 증명입니다. 온도 0(argmax)에서는 초안 토큰이 타깃 모델의 최댓값 토큰과 같을 때만 수락되므로 출력이 완전히 일치합니다. 한 단계마다 타깃 모델은 최소 1개, 최대 γ+1개 토큰을 확정하므로 최악의 경우에도 타깃 모델 실행 횟수가 일반 디코딩보다 늘지 않습니다.

Figure 1의 문장은 38개 토큰으로 구성되며, 97M 타깃 모델을 9번만 실행해 생성됐습니다. 초안은 6M 모델입니다(1장).

같은 시기 DeepMind의 Chen 등(arXiv 2302.01318)도 수정된 거절 샘플링으로 같은 원리를 제안했고, Chinchilla 70B의 분산 환경에서 2배에서 2.5배 속도 향상을 보고했습니다. 이후 Medusa(arXiv 2401.10774)는 별도 초안 모델 대신 추가 디코딩 헤드와 트리 어텐션을 쓰는 방향으로 발전했습니다. 피처 수준에서 초안을 만드는 EAGLE은 EAGLE 추측 디코딩 인사이트에서 다룹니다.

수락률 α와 기대 속도 향상

수락률 α는 초안 토큰이 수락될 확률의 기댓값이며, 두 분포의 겹치는 부분인 Σ min(p(x), q(x))의 기댓값과 같습니다(정리 3.5, 따름정리 3.6). 수락 여부가 독립이라고 가정하면 한 단계에서 얻는 토큰 수의 기댓값과 실행 시간 기준 속도 향상은 다음과 같습니다(식 1, 정리 3.8).

E[토큰 수] = (1 - α^(γ+1)) / (1 - α)
속도 향상  = (1 - α^(γ+1)) / ((1 - α)(γc + 1))

c는 초안 모델 1회 실행 시간을 타깃 모델 1회 실행 시간으로 나눈 값입니다. 논문 실험에서 c는 항상 0.05 미만이었습니다(3.3절). α가 c보다 크면 이득이 나는 γ가 반드시 존재합니다(따름정리 3.9). 대가로 총 연산량은 늘어납니다. α = 0.8, γ = 5에서 연산량은 1.63배, 속도는 3.69배입니다(표 1, c = 0 가정).

표 2는 T5-XXL(11B)을 TPU v4 한 장, 배치 크기 1로 측정한 결과 중 일부입니다.

작업초안 모델온도γα속도
영독 번역T5-small (77M)070.753.4배
영독 번역T5-small (77M)170.622.6배
영독 번역T5-large (800M)070.821.7배
요약T5-small (77M)050.653.1배
요약T5-small (77M)150.532.3배

초안 모델이 클수록 α는 오르지만 c도 커져 T5-large가 가장 느렸습니다. 타깃보다 두 자릿수 정도 작은 초안 모델이 α와 c의 균형이 가장 좋았고(3.6절), 이런 조합의 α는 0.5에서 0.9 사이였습니다(4.2절). T5-XXL의 모든 조합에서 온도 1의 α가 온도 0보다 낮았고, 저자들은 조정된 분포가 뾰족할수록 α가 높다고 정리했습니다(표 2, 4.2절).

맥북 실측: Gemma 4 12B

M3 Pro(18GB) 맥북의 Ollama 0.40.6에서 gemma4:12b(11.9B, Q4_K_M)를 측정했습니다. 이 모델의 모델 파일에는 465MB 크기의 초안 가중치(DRAFT)와 draft_num_predict 3(γ = 3)이 기본으로 들어 있고, 서버 로그는 이 초안을 draft-mtp로 표기합니다. 초안을 끈 기준값은 요청 옵션 draft_num_predict: 0으로 얻었고, 이때 로그에 초안 통계가 남지 않는 것을 확인했습니다.

조건은 같은 한국어 프롬프트(입력 1,660토큰), 출력 300토큰, think: false, 온도 0, seed 1입니다. 설정마다 모델을 내린 뒤 첫 실행(로드 포함)을 따로 기록했고, 이후 실행은 프롬프트 캐시가 적용됐습니다(캐시 1,659토큰).

설정첫 실행 생성 속도이후 실행 생성 속도이후 실행 총 시간로그 수락률기준 대비
초안 끔15.53 tok/s15.12 / 15.36 / 15.41약 19.9초없음1.00배
γ = 119.91 tok/s20.77 (1회)14.8초0.9541.36배
γ = 226.46 tok/s25.75 (1회)12.0초0.9191.68배
γ = 3 (기본값)33.70 tok/s34.02 / 33.22 / 32.91약 9.3초0.9012.18배
γ = 541.12 tok/s41.67 (1회)7.5초0.8282.72배

측정 결과는 다음과 같습니다.

  • gemma4:12b에서 초안을 켠 γ = 1, 2, 3, 5 네 설정의 출력 텍스트가 초안을 끈 출력과 글자 단위로 같았습니다(md5 일치). 온도 0에서의 일치 보장이 실제로 확인됩니다.
  • 로그의 위치별 수락률은 γ = 3에서 0.951, 0.889, 0.852로 뒤로 갈수록 낮아졌습니다. 논문의 독립 가정과 다른 부분입니다.
  • 로그 수락률을 식 1에 넣고 c = 0으로 계산한 상한은 γ = 3에서 3.44배인데 실측은 2.18배였습니다. c = 0 가정과 달리 초안 실행과 검증에도 시간이 들기 때문으로 보입니다.
  • 첫 실행의 프롬프트 처리는 초안 유무와 관계없이 10.0초에서 10.7초였습니다. 추측 디코딩은 생성 단계만 줄이므로 입력이 길고 출력이 짧은 요청에서는 체감 효과가 작습니다.
  • 같은 가중치에 num_ctx 16384만 다른 gemma4-wiki도 같은 초안을 쓰며, 이후 실행 생성 속도는 33.89 / 34.44 / 34.27 tok/s로 기본 모델과 차이가 없었습니다. 입력 토큰 수가 1,656개로 4개 적었고, 출력은 기본 모델 출력의 앞부분과 같은 텍스트였습니다.

한계와 적용 조건

논문은 추측 디코딩이 연산량을 늘려 지연을 줄이는 방식이므로 추가 연산 자원이 없는 구성에서는 도움이 되지 않는다고 명시합니다(6장). 동시 요청을 크게 묶어 처리하는 서빙 서버는 이미 연산 장치가 포화 상태에 가까워 이득이 줄어듭니다. 반대로 사용자 한 명이 노트북이나 사내 서버 한 대에서 모델을 실행하는 경우는 메모리 대역폭이 병목이라 논문의 전제와 맞습니다.

초안 모델과 타깃 모델이 다르게 학습됐다면 α가 낮아집니다. 바이그램 모델의 α는 0.20, 속도 향상은 1.25배에 그쳤습니다(3.6절, 표 3). 검증 규칙은 같은 토큰에 대한 p(x)와 q(x)를 비교하므로 두 모델의 어휘(토크나이저)가 같아야 합니다. 논문도 같은 구조와 같은 확률 표준화를 쓰는 조합만 실험했습니다(3.6절). 빔 서치와의 호환은 후속 과제로 남겨 두었습니다(6장).

도입 검토 가이드

구분내용
우선 검토 대상단일 사용자 또는 낮은 동시성으로 실행하는 온프레미스 sLLM, 노트북 로컬 모델
전제 조건타깃 모델과 토크나이저가 같은 초안 모델 또는 초안 모듈 확보
측정 항목초안 끔과 켬의 생성 속도, 런타임 로그의 수락률, 프롬프트 처리 시간 비중
판단 기준γ를 1부터 늘리며 생성 속도가 가장 높은 값을 선택하고, 온도를 실제 운영값으로 맞춰 다시 측정

적용 절차는 런타임이 초안 통계를 기록하는지 먼저 확인하고, 같은 프롬프트로 초안을 끈 기준값을 측정한 뒤 γ를 바꿔 가며 비교하는 순서가 기본입니다. 이미 초안이 기본으로 켜진 모델 배포판도 있으므로, 기준값을 측정하기 전에 모델 파일의 초안 설정을 확인해야 합니다.

코텍시스 AI사업부는 sLLM 최적화, Advanced RAG, AI Agent 개발을 수행합니다. 이런 기법의 도입을 검토 중이라면 문의를 남겨주세요.

이 기술을 도입하려면: sLLM & SLM Optimization

AI 개발 문의