AI 与大模型 · 第 17 期 · 第二季第 9 期

nanochat SFT 全流程,从 base 到 chat

6 步把续写模型变成对话模型

一句话结论:base 模型只会续写,chat 模型才会对话。中间靠 SFT 搭一座桥:用对话模板把多轮对话包成训练样本,让模型学会"在对话格式里回答"。nanochat 把全流程拆成 6 步:模板定义、数据构造、训练、评估、对齐、部署——点每步看在干什么。
⏱ 约 10 分钟 🎯 想把base模型变chat的人 📦 源:nanochat §3-4

01反共识:base 和 chat 是两个东西

很多人以为训练完的 base 模型就能对话。不能。你问它"你好",它可能续写成"你好,我是XX公司的销售"——它在续写,不在对话。

base 模型学的是"给定前文,续写最可能的下文"(互联网文本分布)。它没有"用户/助手"的角色概念。SFT 做的事:用对话模板(如 ChatML 的 <|im_start|>user...<|im_start|>assistant)把对话包成结构化样本,让模型学会"看到 user 标记就生成 assistant 回答"。

<|im_start|>user 你好 <|im_end|> → <|im_start|>assistant 你好!有什么可以帮你?

训练时只在 assistant 部分算 loss(user 部分不学),让模型专注学"怎么答"而不是"怎么问"。这就是 SFT 的核心:教格式 + 教行为,不是教知识。

base 会续写,
chat 会对话,
SFT 是那座桥。
灏天文库 · AI 与大模型 P.50

02SFT 步骤点亮:点每步看在干什么

nanochat 把 SFT 全流程拆成 6 步,点每步看具体在做什么、为什么这步重要。

🧩 SFT 6 步点亮
点击每步,看这一步在干什么、为什么重要。

03三个最容易踩的坑

一个常见坑:SFT 后模型回答很好但偶尔"续写跑出来"——多半是数据混了续写样本或模板没对齐。先查数据纯度和模板一致性,再调超参。

模板要一致,
数据要纯,
loss 只算 assistant。
灏天文库 · AI 与大模型 P.51

04带走这套流程清单

✅ nanochat SFT 6 条可执行规则

  1. base 和 chat 是两个东西:SFT 是中间那座桥。
  2. 模板定义先行:ChatML 等格式,训练到部署一致。
  3. 只在 assistant 算 loss:user 部分不学,专注学答。
  4. 数据纯对话格式:别混续写样本,否则回答不稳。
  5. 评估看对话能力:不只看 loss,看多轮连贯和指令遵循。
  6. 对齐在 SFT 后:DPO/RLHF 在 SFT 基础上做,不能跳过 SFT。
先 SFT 教格式,
再对齐教偏好。
灏天文库 · AI 与大模型 P.52