使用xTuner微调qwen2.5_1.8B 后,使用vLLM启动微调后的大模型,需要做一下对话模板对齐,我是这样写转换方法的,(将xTuner里的对话模板转JinJa2)代码如下:
import re
# 原始对话模板配置,根据自己选择的大模型,取xtuner/xtuner/utils/templates.py里找对应的内容
original_qwen_chat = dict(
SYSTEM=("<|im_start|>system\n{system}<|im_end|>\n"),
INSTRUCTION=("<|im_start|>user\n{input}<|im_end|>\n" "<|im_start|>assistant\n"),
SUFFIX="<|im_end|>",
SUFFIX_AS_EOS=True,
SEP="\n",
STOP_WORDS=["<|im_end|>", "<|endoftext|>"],
)
# 转换函数
def convert_template(template):
converted = {}
for key, value in template.items():
if isinstance(value, str):
# 将 {variable} 格式转换为 {{ variable }}
converted_value = re.sub(r'\{(\w+)\}', r'{{ \1 }}', value)
converted[key] = converted_value
else:
converted[key] = value
return converted
# 执行转换
jinja2_qwen_chat = convert_template(original_qwen_chat)
print(jinja2_qwen_chat)
保存qwen-chat-template.jinja 。
请帮我看下我的方法是否正确?
vllm运行的命令,指定jinja文件,发现没有效果。
# 这里是bash命令
vllm serve /root/autodl-tmp/llm/Qwen1.5-1.8B-Chat-hf --chat-template ./qwen-chat-template.jinja
# 这里是bash命令