커스텀 채팅 템플릿

커스텀 채팅 템플릿 (Custom Chat Template)

SGLang 프로젝트에는 두 가지 채팅 템플릿 시스템이 있어요. 이 문서는 OpenAI 호환 API 서버를 위한 커스텀 채팅 템플릿을 설정하는 방법을 다루어요(conversation.py에 정의되어 있어요). SGLang 언어 프론트엔드에서 사용하는 채팅 템플릿(chat_template.py에 정의)과는 관련이 없어요.

출처: 문서

본문

기본적으로 서버는 Hugging Face의 모델 토크나이저에 지정된 채팅 템플릿을 사용해요. Llama-2/Llama-3 같은 대부분의 공식 모델에서는 그대로 잘 동작해요.

필요하다면 서버를 시작할 때 채팅 템플릿을 덮어쓸 수도 있어요:

python -m sglang.launch_server \
  --model-path meta-llama/Llama-2-7b-chat-hf \
  --port 30000 \
  --chat-template llama-2

찾고 있던 채팅 템플릿이 없다면 기여하거나 파일에서 직접 불러올 수 있어요.

JSON 형식 (JSON Format)

conversation.py에 정의된 JSON 형식을 불러올 수 있어요.

{
  "name": "my_model",
  "system": "<|im_start|>system",
  "user": "<|im_start|>user",
  "assistant": "<|im_start|>assistant",
  "sep_style": "CHATML",
  "sep": "<|im_end|>",
  "stop_str": ["<|im_end|>", "<|im_start|>"]
}
python -m sglang.launch_server \
  --model-path meta-llama/Llama-2-7b-chat-hf \
  --port 30000 \
  --chat-template ./my_model_template.json

Jinja 형식 (Jinja Format)

Hugging Face Transformers가 정의한 Jinja 템플릿 형식도 사용할 수 있어요.

python -m sglang.launch_server \
  --model-path meta-llama/Llama-2-7b-chat-hf \
  --port 30000 \
  --chat-template ./my_model_template.jinja

더 알아보기 (Learn more)