Parallel Draft Models
Parallel Draft Models (병렬 드래프트 모델)
Parallel Draft Models (PARD)는 낮은 지연 시간이 특징인 병렬 드래프트 모델 방식이에요. 여러 드래프트 토큰을 병렬로 생성해서 추측 디코딩의 제안 생성을 가속화해요. 아래 코드는 PARD가 제안을 생성하는 추측 디코딩을 vLLM에서 구성하는 예시예요.
출처: 문서
본문
PARD 오프라인 모드 예시
from vllm import LLM, SamplingParams
prompts = ["The future of AI is"]
sampling_params = SamplingParams(temperature=0.8, top_p=0.95)
llm = LLM(
model="Qwen/Qwen3-8B",
tensor_parallel_size=1,
speculative_config={
"model": "amd/PARD-Qwen3-0.6B",
"num_speculative_tokens": 12,
"method": "draft_model",
"parallel_drafting": True,
},
)
outputs = llm.generate(prompts, sampling_params)
for output in outputs:
prompt = output.prompt
generated_text = output.outputs[0].text
print(f"Prompt: {prompt!r}, Generated text: {generated_text!r}")
PARD 온라인 모드 예시
vllm serve Qwen/Qwen3-4B \
--host 0.0.0.0 \
--port 8000 \
--seed 42 \
-tp 1 \
--max-model-len 2048 \
--gpu-memory-utilization 0.8 \
--speculative-config '{"model": "amd/PARD-Qwen3-0.6B", "num_speculative_tokens": 12, "method": "draft_model", "parallel_drafting": true}'
PARD 방식 이해하기
PARD(Parallel Draft Models)는 일반 드래프트 모델과 달리 추측 토큰들을 병렬로 생성해요. 드래프트 모델의 지연 시간(latency)이 낮아서 순차적으로 처리할 때보다 훨씬 빠르게 여러 토큰을 제안할 수 있어요. 위 예시에서 num_speculative_tokens: 12로 설정했듯이, 병렬 생성 덕분에 한 번에 많은 토큰을 제안할 수 있어요.
이 방식은 기존 draft_model 메서드에 parallel_drafting: true를 추가해 활성화해요. 주의할 점은 병렬 드래프팅(parallel drafting)이 EAGLE과 드래프트 모델 방법에서만 호환된다는 거예요.
사전 학습된 PARD 가중치
amd/pard
amd/pard 조직 아래 PARD용으로 사전 학습된 드래프트 모델 가중치가 제공돼요. 예시처럼 amd/PARD-Qwen3-0.6B 같은 모델을 --speculative-config의 model에 지정해 사용하면 돼요.
설정 요약
| Key | 값 | 설명 |
|---|---|---|
method |
draft_model |
PARD는 드래프트 모델 메서드를 기반으로 함 |
model |
amd/PARD-Qwen3-0.6B 등 |
PARD 드래프트 모델 식별자 |
num_speculative_tokens |
12 등 | 병렬로 제안할 추측 토큰 수 |
parallel_drafting |
true |
병렬 드래프트 토큰 생성 활성화 |