Chat Template + SFT:大模型终于学会「说话」

从补全机器到对话助手,差的就是这套训练范式

从补全到对话的演进
OpenAI 约定好一套格式,
然后专门针对这套格式
再训练模型——
大模型就真的会说话了
1
统一对话格式(Chat Template)
借鉴 Jinja 模板语言,定义 special token:<|im_start|> / <|im_end|> 包裹每条消息
2
按格式组装所有消息
system / user / assistant 三种角色,拼成一段没有换行的文本,送给模型
3
SFT(指令微调)
用海量「格式化对话数据」继续训练模型——模型学会了在这套格式下做助理,而不只是续写文本
4
大力出奇迹(Scale Up)
模型越来越大,训练数据越来越多——GPT-3 → ChatGPT → GPT-4,效果指数级提升
这一刻,「补全机器」进化成了「对话助手」
Chat Template 与 SFT 对比
<|im_start|>system← 系统提示词角色标记 你是一个有帮助的 AI 助手。← System Prompt 内容 <|im_end|>← 结束标记
<|im_start|>user← 用户消息开始 紫霞仙子是谁? <|im_end|>
<|im_start|>assistant← 模型从这里开始补全 (模型补全区域)← SFT 训练模型如何在此处输出 <|im_end|>
SFT 之前(Base 模型)
用户:紫霞仙子是谁?
紫霞仙子是哥哥,哥哥你喜欢我,你说你喜欢我……
(继续按语料风格续写,完全不像在回答问题)
SFT 之后(Chat 模型)
用户:紫霞仙子是谁?
紫霞仙子是电影《大话西游》中的人物,由朱茵饰演。她是至尊宝命中注定的爱人,为了他付出了一切。
(懂得什么是回答,以助理身份作答)
SFT(Supervised Fine-Tuning)本质上还是 Token 预测——只是训练数据换成了「格式化对话 + 高质量回答」
模型学会了在 <|im_start|>assistant 之后,输出像样的回答而不是续写语料。