[vllm] Draft Model 기반 Speculative Decoding 지원
PR 링크: vllm-project/vllm#24322 상태: Merged | 변경: +897/-115
들어가며
Speculative decoding의 가장 기본적인 형태는 소형 draft 모델이 후보 토큰을 빠르게 생성하고, 대형 target 모델이 이를 검증하는 것이다. 이 PR은 draft 모델 기반 speculative decoding을 vLLM V1 엔진에 공식적으로 통합하며, Eagle/MTP 등 모델 기반 방식의 기반 인프라를 구축한다.
핵심 코드 분석
Draft 모델 기반 spec decode의 핵심 구조는 다음과 같다:
- Draft 모델 로딩: target 모델과 동일한 GPU에 소형 모델을 추가 로딩
- 병렬 drafting: draft 모델이 N개의 후보 토큰을 autoregressive하게 생성
- Batch verification: target 모델이 N개 토큰을 한 번의 forward pass로 검증
- Acceptance sampling: 확률 비교를 통해 일치하는 토큰까지 수용
이 방식은 target 모델의 forward pass 횟수를 줄여서 throughput을 높인다. Draft 모델이 target과 비슷한 분포를 생성할수록 acceptance rate이 높아진다.
왜 이게 좋은가
- Throughput 향상: acceptance rate에 비례하여 토큰 생성 속도 향상 (일반적으로 2-3배)
- 출력 품질 보존: target 모델의 분포를 정확히 유지하므로 출력 품질 저하 없음
- 유연한 draft 모델 선택: HuggingFace Hub의 다양한 소형 모델 활용 가능
- 후속 최적화 기반: Unified Parallel Drafting(#32887), DFlash(#36847) 등의 기반
정리
Draft 모델 기반 speculative decoding은 LLM 추론 최적화의 핵심 기법이다. vLLM V1에서의 공식 지원으로 프로덕션 환경에서도 안정적으로 활용할 수 있게 되었다.
참고 자료
이 글은 AI(Claude)의 도움을 받아 작성되었습니다. 코드 분석 내용은 실제 PR diff를 기반으로 합니다.
관련 포스트
PR Analysis 의 다른글
- 이전글 [uvloop] _ready_len 레이스 컨디션 수정
- 현재글 : [vllm] Draft Model 기반 Speculative Decoding 지원
- 다음글 [Loki] Bitmap 디코더 최적화: 처리량 93.5% 개선
댓글