생성 파라미터 다루기

생성 파라미터 다루기

vLLM으로 텍스트를 생성할 때 품질을 좌우하는 건 샘플링 옵션이에요. 온도(temperature), top_p, top_k 같은 파라미터를 조절해서 응답의 창의성과 안정성을 다듬을 수 있어요.

출처: https://docs.vllm.ai/

핵심 샘플링 파라미터

  • temperature: 값이 낮을수록 결정적인(일관된) 응답, 높을수록 다양하고 창의적인 응답이 나와요.
  • top_p: 누적 확률이 이 값이 될 때까지의 토큰 후보만 골라 샘플링해요(nucleus sampling).
  • top_k: 확률이 높은 상위 k개의 토큰 중에서만 골라 샘플링해요.

top_k는 OpenAI 표준에는 없는 vLLM 고유 지원 파라미터예요. 그래서 OpenAI 파이썬 클라이언트로 호출할 땐 extra_body 안에 넣어 넘겨요.

client.chat.completions.create(
    model="NousResearch/Meta-Llama-3-8B-Instruct",
    messages=[...],
    extra_body={"top_k": 50}
)

HTTP로 직접 호출할 때는 JSON 페이로드에 그대로 병합하면 돼요.

기본값이 달라지는 경우

기본적으로 vLLM 서버는 Hugging Face 모델 저장소의 generation_config.json이 있으면 그 설정을 적용해요. 즉, 모델 제작자가 권장한 기본 샘플링 값이 자동으로 반영될 수 있다는 뜻이에요.

이 동작이 마음에 안 들면 서버 시작 시 --generation-config vllm을 넘겨, vLLM 기본값으로 돌리면 돼요.

채팅 템플릿과의 관계

생성 파라미터는 채팅 템플릿과 별개의 문제예요. 채팅을 하려면 모델에 맞는 채팅 템플릿이 필요하고, 마땅한 템플릿이 없으면 --chat-template으로 직접 지정할 수 있어요.

vllm serve NousResearch/Meta-Llama-3-8B-Instruct --chat-template ./path-to-chat-template.jinja

더 알아보기

  • 서버 기동은 «OpenAI 호환 서버로 서빙하기»를 보세요.
  • 코드 안에서 쓰는 법은 «오프라인 추론하기»에서 다뤄요.