추측적 디코딩: LLM 추론 속도 2-3배 향상 달성
2025년 12월 11일 업데이트
2025년 12월 업데이트: 추측적 디코딩이 연구 단계에서 프로덕션 표준으로 성숙해지고 있습니다. NVIDIA는 H200 GPU에서 3.6배 처리량 향상을 시연했습니다. vLLM과 TensorRT-LLM에 네이티브 지원이 포함되었습니다. 드래프트 모델이 5-8개의 토큰을 제안하고 병렬로 검증합니다—단일 토큰 생성에서 활용되지 않는 GPU 용량을 활용합니다. 출력 품질은 동일하게 유지되며 지연 시간은 2-3배 감소합니다.
대규모 언어 모델은 텍스트를 한 번에 하나의 토큰씩 생성하며, 각 토큰은 수십억 개의 파라미터를 통과하는 전체 순방향 패스를 필요로 합니다. 이러한 순차적 병목 현상은 GPU가 계산 중에 부분적으로 유휴 상태에 있더라도 응답을 기다리는 사용자에게 답답한 지연을 유발합니다. 추측적 디코딩은 작고 빠른 드래프트 모델을 사용하여 더 큰 타겟 모델이 병렬로 검증할 수 있는 여러 토큰을 제안함으로써 이 병목 현상을 해결하고, 출력 품질의 변화 없이 2-3배 속도 향상을 달성합니다.¹
이 기술은 2025년에 연구 수준의 호기심에서 프로덕션 표준으로 성숙했습니다. vLLM과 TensorRT-LLM 모두 네이티브 추측적 디코딩 지원을 포함하고 있으며, NVIDIA는 H200 GPU에서 3.6배 처리량 향상을 시연했습니다.² 추측적 디코딩이 언제 도움이 되는지, 드래프트 모델을 어떻게 선택하는지, 어떤 프레임워크가 최고의 구현을 제공하는지 이해하면 조직이 추론 비용과 지연 시간을 획기적으로 줄일 수 있습니다.
추측적 디코딩 작동 방식
기존의 자기회귀 생성은 토큰을 순차적으로 생성합니다:
- 모델이 프롬프트를 받고 다음 토큰에 대한 로짓을 생성
- 분포에서 토큰을 샘플링
- 토큰을 컨텍스트에 추가하고 순방향 패스를 반복
- 완료될 때까지 계속
각 단계는 전체 모델의 계산을 필요로 하지만, GPU는 단일 토큰 생성이 활용하는 것보다 훨씬 더 많은 용량을 가지고 있습니다. 추측적 디코딩은 이 미사용 용량을 활용합니다:
드래프트 단계: 작고 빠른 모델이 K개의 추측 토큰을 빠르게 생성합니다. 드래프트 모델은 타겟 모델이 하나의 토큰을 생성하는 시간에 5-8개의 후보 연속을 생성할 수 있습니다.
검증 단계: 타겟 모델이 단일 병렬 순방향 패스에서 K개의 토큰을 모두 처리하여 각 위치에 대한 확률을 동시에 계산합니다. GPU 병렬 처리 덕분에 K개 토큰 검증이 하나 생성하는 것과 유사한 비용으로 가능합니다.
수락/거부: 각 위치에서 드래프트와 타겟 분포를 비교합니다. 분포가 일치하는 토큰은 수락하고, 분포가 다른 토큰은 거부하고 재샘플링합니다. 이 알고리즘은 출력이 타겟 모델이 독립적으로 생성했을 것과 정확히 일치함을 보장합니다.³
속도 향상은 타겟 모델 순방향 패스당 여러 토큰을 수락하는 것에서 비롯됩니다. 드래프트 모델의 수락률이 평균 60%이고 8개의 토큰을 제안하면, 각 검증 패스는 추측 없이 1개 대신 약 5개의 토큰을 생성합니다.
성능 벤치마크
프로덕션 배포에서 다양한 모델 계열에 걸쳐 상당한 속도 향상이 입증되었습니다:
vLLM의 Llama 모델:⁴ - Llama 3.1-70B + 1B 드래프트: 2.31배 속도 향상 - 단일 A100의 Llama 3.1-8B: 1.8배 지연 감소 - 낮은 요청률에서 Llama 3.1-70B: 1.6배 지연 감소
H200의 TensorRT-LLM:⁵ - 다양한 드래프트 모델이 있는 Llama 3.1-405B: 3배 이상 처리량 - FP8 양자화와 결합: 총 3.6배 향상
SpecForge가 있는 SGLang:⁶ - Llama 4 Maverick: MT-Bench에서 2.18배 속도 향상 - Llama 4 Scout: 2.0배 가속
EAGLE 방법 (최고 성능):⁷ - 약 0.8 드래프트 정확도 (80% 수락) - 일반적으로 2.5-2.8배 속도 향상 - Spec-Bench 리더보드에서 최첨단
속도 향상은 워크로드 특성에 따라 크게 달라집니다. 동기식이고 지연에 민감한 사용 사례에서 가장 큰 이득을 봅니다. 고처리량 배치 처리는 순차 생성보다 GPU 계산이 병목이 되므로 덜 이점이 있습니다.
프레임워크 구현
vLLM 추측적 디코딩
vLLM은 드래프트 모델, ngram 매칭, EAGLE을 포함한 여러 추측적 디코딩 방법을 지원합니다:
# 드래프트 모델 추측 활성화
vllm serve meta-llama/Llama-3.1-70B-Instruct \
--speculative-model meta-llama/Llama-3.2-1B-Instruct \
--num-speculative-tokens 5 \
--speculative-draft-tensor-parallel-size 1
EAGLE 통합 (권장):
# EAGLE은 더 높은 수락률 달성
vllm serve meta-llama/Llama-3.1-70B-Instruct \
--speculative-model yuhuili/EAGLE-LLaMA3.1-Instruct-70B \
--speculative-method eagle \
--num-speculative-tokens 8
vLLM의 Eagle 3 통합은 다양한 시나리오에서 최대 2.5배 속도 향상을 제공합니다.⁸ 이 프레임워크는 토큰 검증과 거부 샘플링을 자동으로 처리하여 비추측적 생성과 출력 동등성을 유지합니다.
TensorRT-LLM 추측적 디코딩
TensorRT-LLM은 NVIDIA 하드웨어에 대한 더 깊은 최적화를 제공합니다:
# 추측적 디코딩으로 엔진 빌드
trtllm-build \
--speculative_decoding_mode draft_tokens_external \
--max_draft_len 8 \
--checkpoint_dir $TARGET_CHECKPOINT \
--output_dir $ENGINE_DIR
드래프트 모델 구성:
# 별도의 엔진이 있는 드래프트 모델
trtllm-build \
--checkpoint_dir $DRAFT_CHECKPOINT \
--output_dir $DRAFT_ENGINE \
--max_batch_size 256
TensorRT-LLM의 커스텀 커널은 드래프트 생성과 검증 단계 모두를 최적화하여 Tensor Core와 메모리 대역폭에서 최대 성능을 추출합니다.
Triton Inference Server 통합
NVIDIA Triton Inference Server는 vLLM 백엔드를 통해 추측적 디코딩을 지원합니다:⁹
model_repository/
└── speculative_llm/
├── config.pbtxt
└── 1/
└── model.py
Triton 통합은 추측적 디코딩 이점을 유지하면서 요청 배칭, 메트릭 수집, Kubernetes 네이티브 스케일링을 통한 프로덕션 규모 배포를 가능하게 합니다.
드래프트 모델 선택
드래프트 모델 품질이 추측적 디코딩 효과를 결정합니다. 저품질 드래프트 모델은 타겟 모델이 거부하는 제안에 컴퓨팅을 낭비합니다.
선택 기준
아키텍처 정렬: 타겟과 동일한 계열의 드래프트 모델이 더 높은 수락률을 달성합니다. Llama 3.1-70B를 위한 Llama 3.2-1B 드래프트가 일반적인 소형 모델보다 성능이 좋은 이유는 학습 데이터와 토큰화가 일치하기 때문입니다.¹⁰
크기 비율: 드래프트 모델은 일반적으로 타겟 크기의 1/10에서 1/50 범위입니다. 더 작은 드래프트는 더 빠르게 생성하지만 수락률이 낮을 수 있습니다. 워크로드에 최적인 비율을 찾기 위해 여러 크기를 테스트하세요.
수락률 임계값: 60% 이상의 수락률을 목표로 하세요. 50% 미만에서는 검증 오버헤드가 추측 이점을 상쇄할 수 있습니다. 특정 프롬프트에 대한 실제 수락률을 측정하기 위해 프로파일링을 사용하세요.
드래프트 모델 파인튜닝
기본 드래프트 모델은 종종 도메인 특화 작업에서 성능이 낮습니다. 파인튜닝은 수락률을 획기적으로 향상시킵니다:¹¹
# 타겟 분포에서 드래프트 모델 파인튜닝
from transformers import Trainer, TrainingArguments
# 타겟 모델에서 샘플링하여 학습 데이터 생성
# 타겟의 출력 분포에 맞게 드래프트 파인튜닝
training_args = TrainingArguments(
output_dir="./draft_finetuned",
per_device_train_batch_size=8,
num_train_epochs=3,
learning_rate=2e-5,
)
trainer = Trainer(
model=draft_model,
args=training_args,
train_dataset=target_samples,
)
trainer.train()
조직들은 도메인 특화 드래프트 파인튜닝으로 20-40%의 수락률 향상을 보고합니다. 이 투자는 대용량 추론 워크로드에서 배당금을 지급합니다.
SGLang용 SpecForge
SpecForge는 드래프트 모델 학습을 위한 맞춤형 에코시스템을 제공합니다:¹²
- 네이티브 SGLang 통합
- Llama 4 변형을 위한 최적화된 학습 레시피
- 일반 모델을 위한 사전 학습된 스펙큘레이터
Red Hat의 Speculators 프로젝트는 통합된 Hugging Face 형식과 vLLM 통합으로 추측적 디코딩을 표준화하여 드래프트 모델 발견과 배포를 단순화합니다.¹³
고급 기술
자기 추측적 디코딩 (SWIFT)
SWIFT는 타겟 LLM의 중간 레이어를 적응적으로 건너뛰어 별도의 드래프트 모델을 제거합니다:¹⁴
- 보조 모델 불필요
- 추가 학습 불필요
- 출력 분포를 유지하면서 1.3x-1.6배 속도 향상
이 기술은 토큰 신뢰도를 기반으로 어떤 레이어를 건너뛸 수 있는지 예측하여 작동합니다. 간단한 연속은 더 많은 레이어를 건너뛰고, 복잡한 추론은 전체 모델 깊이를 사용합니다.
# 개념적 SWIFT 구성
config = SwiftConfig(
skip_threshold=0.8, # 신뢰도 > 0.8일 때 레이어 건너뛰기
min_layers=16, # 항상 최소 16개 레이어 사용
adaptive=True # 토큰별로 동적 조정
)
SWIFT는 별도의 드래프트 모델 유지가 원치 않는 복잡성을 추가하는 시나리오에 적합합니다.
Ngram 추측
구조화된 출력이나 예측 가능한 패턴의 경우, ngram 매칭은 신경망 없이 추측을 제공합니다:
# vLLM ngram 추측
vllm serve meta-llama/Llama-3.1-70B-Instruct \
--speculative-model "[ngram]" \
--ngram-prompt-lookup-max 4 \
--num-speculative-tokens 4
Ngram 추측은 프롬프트나 생성 히스토리에서 반복되는 패턴을 식별하여 관찰된 시퀀스를 기반으로 토큰을 제안합니다. 이 접근 방식은 코드 생성, 구조화된 데이터, 반복적인 콘텐츠에 잘 작동합니다.
Medusa 헤드
Medusa는 타겟 모델에 추가 예측 헤드를 부착하여 여러 후보 토큰을 병렬로 생성합니다:
# Medusa는 모델 수정 필요
model = load_medusa_model("path/to/medusa_llama_70b")
# 추가 헤드가 +1, +2, +3, ... 위치의 토큰 예측
Medusa는 드래프트 모델을 완전히 제거하지만 모델 수정과 재학습이 필요합니다. 커스텀 모델 배포를 하는 조직은 더 높은 통합 복잡성에도 불구하고 Medusa가 가치 있을 수 있습니다.
추측적 디코딩이 도움이 되는 경우
추측적 디코딩은 특정 조건에서 가장 강력한 수익을 제공합니다:
유리한 시나리오: - 지연 시간을 우선시하는 대화형 채팅 애플리케이션 - GPU 미활용이 높은 단일 사용자 추론 - 긴 형식 생성 (스토리, 문서, 코드) - 예측 가능한 토큰 패턴이 있는 워크로드
덜 유리한 시나리오: - 이미 GPU를 포화시키는 고처리량 배치 처리 - 매우 짧은 응답 (추측할 토큰이 적음) - 수락률이 낮은 고도로 창의적/랜덤한 생성 - 드래프트 모델이 맞지 않는 메모리 제약 배포
결정 프레임워크:
IF (생성 중 GPU 활용률 < 50%)
AND (평균 응답 길이 > 100 토큰)
AND (드래프트 모델이 메모리에 맞음)
→ 추측적 디코딩 활성화
IF (GPU 활용률 > 80%)
OR (메모리 압력 높음)
→ 대신 배칭 최적화에 집중
인프라 고려 사항
추측적 디코딩은 특정 인프라 요구 사항을 도입합니다:
메모리 오버헤드: 드래프트 모델은 추가 GPU 메모리를 소비합니다. 충분한 여유 공간을 확보하세요: - 드래프트 모델 가중치: 크기에 따라 ~1-8GB - 드래프트 토큰을 위한 추가 KV 캐시 - 검증 텐서 할당
컴퓨팅 패턴: 검증 단계는 안정적인 자기회귀 생성과 다른 버스트성 컴퓨팅 패턴을 만듭니다. GPU 활용률 변동성을 모니터링하고 그에 따라 배치 크기를 조정하세요.
드래프트 모델 서빙: 옵션에는 다음이 포함됩니다: - 동일 위치: 드래프트가 타겟과 동일한 GPU에서 실행 - 분리: 드래프트 생성을 위한 전용 GPU - CPU 오프로드: 작은 드래프트는 메모리 절약을 위해 CPU에서 실행 가능
대규모로 추측적 디코딩을 배포하는 조직은 최적의 하드웨어 구성과 용량 계획을 위해 Introl의 GPU 인프라 전문성을 활용할 수 있습니다.
프로덕션 배포 체크리스트
프로덕션에서 추측적 디코딩을 활성화하기 전에:
1. 기준선 측정 - 현재 지연 시간과 처리량 측정 - 생성 중 GPU 활용률 프로파일링 - 병목 현상 식별 (메모리, 컴퓨팅, 통신)
2. 드래프트 모델 선택 - 대표적인 프롬프트로 여러 드래프트 크기 테스트 - 특정 분포에 대한 수락률 측정 - 수락률이 60% 미만이면 파인튜닝 고려
3. 구성 튜닝 - num_speculative_tokens 실험 (일반적으로 4-8) - 수락률 대 드래프트 오버헤드 균형 조정 - 타겟 배치 크기로 메모리 사용량 프로파일링
**4. Rollo
[번역을 위해 콘텐츠가 잘렸습니다]