병렬 드래프트 모델

병렬 드래프트 모델 (Parallel Draft Models)

병렬 드래프트 모델 방식은 PARD(Parallel Draft Models)라는 기법으로 제안(proposal)을 생성하는 스페큘레이티브 디코딩 방식이에요. 여러 드래프트 모델이 병렬로 동시에 다른 후보 토큰들을 생성해서, 타깃 모델이 한 번의 검증 단계에서 더 많은 토큰을 확인할 수 있게 해주죠.

출처: vLLM 공식 문서 — features-speculative_decoding-parallel_draft_model

PARD 오프라인 모드 예제 (PARD Offline Mode Example)

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 온라인 모드 예제 (PARD Online Mode Example)

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 가중치 (Pre-trained PARD weights)

  • amd/pard 컬렉션에서 사전 학습된 PARD 드래프트 모델 가중치를 받을 수 있어요.

설정 값 풀어보기

온라인 예제에서 -tp 1은 tensor parallel 크기 1, --max-model-len 2048은 최대 컨텍스트 길이, --gpu-memory-utilization 0.8은 GPU 메모리 사용률을 의미해요. parallel_drafting: true가 병렬 드래프팅을 켜는 핵심 설정이에요.

PARD는 특히 드래프트 모델을 여러 개 병렬로 돌려 수용률(acceptance rate)을 높이고 싶은 서빙 시나리오에서 유용합니다.

더 알아보기 (Learn more)