vLLM Speculators: 추측 디코딩을 위한 병렬 드래프팅
vLLM Speculators: 추측 디코딩을 위한 병렬 드래프팅
vLLM과 Speculators 프로젝트는 전통적인 자기회귀 추측 디코딩의 지연 병목 현상을 극복하기 위해 세 가지 병렬 드래프팅 알고리즘—P-EAGLE, DFlash, DSpark—에 대한 오픈소스 지원을 도입했습니다. 단일 순전파에서 후보 토큰 블록 전체를 예측함으로써, 이러한 방법은 드래프트 지연 시간을 추측 토큰 수로부터 분리하여, 더 표현력이 풍부한 스펙큘레이터 모델 사용을 가능하게 하고 수동 파라미터 튜닝의 필요성을 줄입니다.
자기회귀 드래프팅의 한계
EAGLE 및 MTP과 같은 전통적인 추측 디코딩 프레임워크는 검증 모델의 내부 은닉 상태를 활용하여 토큰 수용률을 향상시켰습니다. 그러나 EAGLE-3과 같은 고급 반복은 여전히 자기회귀 드래프팅에 의존하는데, 여기서 스펙큘레이터는 생성된 각 토큰마다 별도의 순전파를 실행해야 합니다.
이 순차적 요구사항은 두 가지 주요 생산 과제를 만듭니다:
- 모델 크기 제약: 검증 중에 절약된 시간을 드래프팅 프로세스가 소비하지 않도록 하기 위해, 스펙큘레이터 모델은 극도로 작고 가볍게 유지되어야 합니다.
- 운영 복잡성: 드래프팅 비용이 토큰 수에 선형적으로 증가하기 때문에, 엔지니어링 팀은 특정 사용 사례 및 실시간 서버 부하에 따라 추측 길이(K)를 지속적으로 조정해야 합니다.
병렬 드래프팅: 아키텍처 전환
병렬 드래프팅은 단일 순전파에서 후보 토큰 블록을 동시에 예측함으로써 순차적 실행을 제거합니다. 이 전환은 두 가지 주요 장점을 제공합니다:
- 표현력 향상: 스펙큘레이터가 블록당 한 번만 실행되므로, 개발자는 더 크고 깊은 아키텍처를 활용하여 더 복잡한 맥락을 포착하고 지연 시간을 증가시키지 않으면서 더 높은 수용률을 달성할 수 있습니다.
- 튜닝 간소화: 블록 길이로부터 드래프팅 비용을 분리함으로써, 변동하는 서버 부하 동안 추측 매개변수의 과도한 튜닝에 대한 운영적 부담을 제거합니다.
While earlier concepts like Medusa and PARD explored parallel drafting, P-EAGLE, DFlash, and DSpark combine this parallel execution with deep verifier-state conditioning.
P.EAGLE, DFlash, 및 DSpark의 기술적 비교
세 알고리즘 모두 검증 모델의 은닉 상태를 활용하여 병렬 드래프트를 생성하지만, 아키텍처 구현 및 훈련 전략에서 차이가 있습니다.
P-EAGLE
P-EAGLE은 검증 모델의 은닉 상태를 입력 특성으로 사용하고, 여러 미래 위치에 동시에 매핑하여 한 단계에서 후보 토큰 시퀀스를 출력합니다. 훈련 비용을 관리하기 위해, 드래프트 블록 스파시피케이션을 사용합니다. 이는 lookahead 차원(K)을 따라 토큰을 감소율로 삭감하여 가장 중요한 즉각적인 토큰에 최적화를 집중시킵니다.
DFlash
DFlash는 검증 모델의 은닉 상태를 투영하여 스펙큘레이터 모델의 KV-캐시에 직접 주입합니다.これにより 입력 시퀀스 길이를 증가시키지 않으면서 검증 모델의 상태에 스펙큘레이터의 어텐션 메커니즘을 조건화하고, 블록 확산을 활용하여 후보 토큰을 생성합니다. 훈련 시, DFlash는 시퀀스 길이 스파시피케이션을 사용합니다. 이는 시퀀스를 따라 무작위 앵커 포인트에서만 블록 예측을 계산하여 GPU 메모리를 보존합니다.
DSpark
DSpark는 DFlash 백본에 두 가지 추가 향상 기능을 바탕으로 구축됩니다:
- 자기회귀 수정 헤드: 과거 토큰에 더 fortemente 조건화할 수 있는 미래 토큰을 허용하는 가벼운 헤드로, 병렬 처리량과 순차적 일관성을 결합합니다.
- 신뢰도 헤드: 검증기에 도달하기 전에 드래프트 토큰에 점수를 매기는 메커니즘으로, 수용될 가능성이 높은 토큰만 전달하여 낭비되는 검증 연산을 줄이고 처리량을 향상시킵니다.
추론 성능 및 벤치마크
병렬 드래프팅 알고리즘은 다양한 모델과 작업에서 EAGLE-3에 비해 상당한 성능 향상을 보여줍니다:
| 모델 | 알고리즘 | 용도 | 하드웨어 |
|---|---|---|---|
| Qwen3-8B | P-EAGLE | 수학 추론 (GSM8k) | 1xA100 |
| Qwen3-30B-A3B | DFlash | 코딩 (HumanEval) | 2xA100 |
| gemma-4-31B-it | DSpark | 코딩 (HumanEval) | 2xA100 |
vLLM과의 프로덕션 통합
병렬 드래프팅은 Speculators 저장소를 통해 vLLM에 통합됩니다. 이 생태계는 이러한 모델을 훈련하고 평가하기 위한 통합 프레임워크를 제공합니다. 사용자는 vLLM 초기화 중에 speculative-config 플래그에 모델과 방법을 지정하여 병렬 백업 추측 엔진을 실행할 수 있습니다:
vllm serve Qwen/Qwen3-30B-A3B \
--tensor-parallel-size 2 \
--reasoning-parser qwen3 \
--speculative-config '{
"model": "RedHatAI/Qwen3-30B-A3B-speculator.dflash",
"num_speculative_tokens": 7,
"method": "dflash"
}'
Because speculative decoding uses rejection sampling to preserve the verifier model's output distribution, the final output quality remains mathematically identical to standard decoding.