SFT:怎样把基础模型训练成聊天助手?

用指令与回答示范,改变模型在对话格式下的行为

目录

  基础模型擅长续写互联网文本,却不一定知道何时回答、遵守什么格式。Supervised Fine-Tuning 用高质量的指令—回答示范继续训练,让模型学会期望的交互方式。

SFT 仍然是 Next Token Prediction,变化的是数据格式与哪些 Token 计入 Loss。

SFT:怎样把基础模型训练成聊天助手?

第 21 课核心流程,点击查看原始 SVG

1、训练样本长什么样

一条样本通常包含 system、user、assistant 等角色。Chat Template 会把结构化消息转换成模型实际看到的 Token 序列,并加入角色与结束标记。

训练与推理必须使用匹配的模板,否则模型可能无法识别轮次边界。

2、Loss 计算在哪些 Token 上

常见做法只让 assistant 回答部分计入 Loss,system 与 user Token 作为上下文但标签设为 ignore。这样模型学习“看到指令后如何回答”,而不是学习复述用户输入。

也有全序列训练等变体,选择要与数据和目标一致。

3、它仍是下一个 Token 预测

SFT 没有改变语言模型的基本目标:给定前文,预测下一个 Token。区别是训练数据集中在指令遵循、对话风格、格式和目标能力上。

4、数据质量比堆数量更重要

错误答案、互相矛盾的格式、模板污染与大量重复会直接教坏模型。需要检查准确性、覆盖面、难度、长度、拒答边界和来源许可,并划分独立验证集。

5、SFT 能做什么、不能做什么

SFT 可以显著改变行为与输出格式,并激活基础模型已有能力;数据量有限时,很难凭空注入大量新知识。过度训练还可能造成灾难性遗忘或回答风格单一。

6、如何评估

除训练 Loss 外,还要检查指令遵循、事实性、格式正确率、安全性、多轮一致性和目标任务指标。验证集 Loss 下降不等价于用户一定更喜欢回答。

容易混淆的三件事

  1. SFT 不等于重新预训练。
  2. 低 Loss 不代表回答一定有用。
  3. 模板或标签 Mask 错误会破坏训练。

记住这 5 件事

  1. SFT 数据是示范对话
  2. Chat Template 必须一致
  3. 常只训练 assistant Token
  4. 目标仍是 Next Token Prediction
  5. 质量评估不能只看 Loss

参考资料

第二十一课复习总图

大模型第二十一课复习总图

第二十一课复习总图,点击查看原始 SVG

  下一课看 LoRA 与 QLoRA:普通显卡如何只训练很少一部分参数?