본문 바로가기

LLM

Speculative Decoding 완전 정리 — 추론 속도 2~3배 올리는 법

반응형

LLM 디코딩의 근본적인 병목은 이거예요.

"토큰을 한 번에 하나씩만 생성할 수 있다."

매 스텝마다 전체 모델을 한 번 돌려야 해요. 70B 모델이면 매 토큰마다 140GB 가중치를 전부 읽어야 해요. GPU가 아무리 빨라도 메모리 대역폭이 병목이에요.

Speculative Decoding은 이 문제를 투기(추측) 로 해결해요.


핵심 아이디어

기존 방식:
[큰 모델] → 토큰1 → [큰 모델] → 토큰2 → [큰 모델] → 토큰3
(매번 느린 큰 모델 호출)

Speculative Decoding:
[작은 드래프트 모델] → 토큰1,2,3,4,5 빠르게 예측
[큰 검증 모델] → 5개 토큰을 한 번에 검증
→ 맞으면 5개 한꺼번에 채택
→ 틀린 것부터 버리고 큰 모델이 수정

핵심은 검증이 생성보다 훨씬 빠르다는 점이에요. 큰 모델로 5개 토큰 검증하는 건 5개 생성하는 것보다 훨씬 빠르고, 병렬로 처리할 수 있어요.


왜 품질 손실이 없는가

드래프트가 틀려도 큰 모델이 수정하기 때문에 최종 출력은 큰 모델 단독과 수학적으로 동일해요. 빠르지만 품질은 그대로예요.

드래프트 토큰 수락률:
- 텍스트 생성, 번역: 80~90% (빠름)
- 코드 생성:         70~85%
- 추론 문제:         60~75%

수락률이 높을수록 속도 향상이 커요.

3가지 방식

1. 별도 드래프트 모델 (EAGLE/EAGLE2/EAGLE3)

작은 모델이 드래프트 토큰을 생성하고 큰 모델이 검증해요.

EAGLE 구조:
드래프트 모델 (1~3B) → 토큰 5개 예측
타겟 모델 (70B)       → 한 번에 검증

속도: 2~3배 향상
조건: 드래프트 모델 필요 (타겟 모델에 맞는 드래프트 필요)

SGLang에서:

python -m sglang.launch_server \
  --model-path meta-llama/Llama-3.1-8B-Instruct \
  --speculative-algorithm EAGLE3 \
  --speculative-num-draft-tokens 5

2. N-gram / NEXTN (드래프트 모델 없음)

이미 생성된 텍스트에서 패턴을 찾아 다음 토큰을 예측해요. 코드, 반복 패턴 많은 텍스트에서 효과적이에요.

python -m sglang.launch_server \
  --model-path meta-llama/Llama-3.1-8B-Instruct \
  --speculative-algorithm NEXTN \
  --speculative-num-draft-tokens 3

드래프트 모델이 필요 없어서 추가 메모리 없이 바로 쓸 수 있어요.

3. Medusa (멀티 헤드)

타겟 모델에 추가 헤드를 붙여서 여러 토큰을 동시에 예측해요. 파인튜닝이 필요하지만 드래프트 모델 메모리가 없어요.


실측 속도 향상

Llama-3.1-8B 기준:

방식 속도 향상 추가 메모리 조건

EAGLE3 2.4~3x 드래프트 모델 크기 EAGLE 드래프트 모델
EAGLE2 1.6~2x 드래프트 모델 크기 EAGLE 드래프트 모델
NEXTN 1.2~1.5x 없음 없음

언제 쓰면 좋은가

✅ 레이턴시가 중요한 실시간 서비스
✅ 긴 응답을 생성하는 경우
✅ 코드 생성 (반복 패턴 많아서 수락률 높음)
✅ GPU가 메모리 대역폭 병목인 환경

❌ 짧은 응답 (투기적 디코딩 오버헤드가 이득보다 클 수 있음)
❌ 배치 크기가 매우 큰 고처리량 환경 (GPU가 이미 포화 상태)
❌ 드래프트 모델 메모리가 부족한 환경

배치 크기가 크면 GPU가 이미 바빠서 투기적 디코딩 효과가 줄어들어요. 저레이턴시 단일 요청 환경에서 효과가 가장 커요.


마무리

Speculative Decoding을 한 줄로 요약하면 이래요.

"작은 모델이 빠르게 추측하고, 큰 모델이 한 번에 검증한다."

품질 손실 없이 2~3배 빠른 응답을 얻을 수 있어요. SGLang에서는 --speculative-algorithm EAGLE3 한 줄로 바로 활성화돼요. 😄


 

반응형