自定义聊天模板

自定义聊天模板#

注意:SGLang 项目中有两套聊天模板系统。本文档关于为兼容 OpenAI 的 API 服务器设置自定义聊天模板(定义于 conversation.py)。它与 SGLang 语言前端使用的聊天模板(定义于 chat_template.py)无关。

默认情况下,服务器使用 Hugging Face 模型分词器(tokenizer)中指定的聊天模板。对于 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 格式,该格式由 conversation.py 定义。

{
  "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 格式#

您也可以使用 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