跳到主要内容

SFT 的本质

SFT 与预训练在数学上差在哪里?​

  • 相同点: SFT 与预训练是同一个任务——都是预测下一个词、最小化同一个损失函数;SFT 不是一种全新方法;
  • 差别一(数据不同): 预训练用无结构的原始互联网文本;SFT 用人工精心准备的“用户提问 → 理想回答”示范对;
  • 差别二(损失屏蔽): 一条 SFT 样本包含问题和标注回答,计算损失时屏蔽问题部分的 token(loss masking),只对回答部分回传梯度;
  • 为什么要屏蔽: 只希望模型学“怎么回答”,不希望它学“怎么提问”;
  • 结果: 模型在示范上继续做下一个词预测,于是把“被提问时该怎么组织回答”这个协议学进参数;
  • 工程实质: 损失屏蔽是 SFT 与预训练在工程上唯一实质性的区别;

SFT 真正固化的是什么?​

  • 一句话: 用极高的样本效率,把一套稳定的“输入 → 输出”映射与协议固化进参数;
  • 固化对象: 格式、风格、流程这类协议性知识(该怎么说、怎么做);
  • 不负责: 大量事实性知识(知道什么)应由预训练、Mid-training 或 RAG 承担;
  • 适用条件: 目标明确、格式固定、有高质量示范、环境稳定的任务——几千条样例就能见效;
  • 现象: 语音 SFT 固化风格控制协议——把声音波形压缩为 token 序列并拼接同一说话者的参考音频,让模型学会“用这个人的声音说话”,实现跨句音色一致;把笑声、叹气抽象为 <laugh>、<sigh> 等副语言标记,训练模型“看到标记就发出对应声音”;
  • 现象: 多语言 SFT 固化思考组织模板——在系统指令中加一句 reasoning language: German,用英语、西班牙语、法语的思考样例训练 gpt-oss-20b,之后设为 Chinese 也能用中文完成完整思维链;
  • 共同特征: 把稳定的映射与协议写进参数;目标越明确、格式越清晰、评估标准越稳定,SFT 越能以高样本效率提升性能;

为什么 SFT 在有限示范下容易记忆而不是泛化?​

  • 优化目标: 让标注回答里每一个 token 的概率尽可能高,也就是尽量复现示范;
  • 后果: 数据覆盖面和多样性不足时,模型可能对示范中的表面模式或捷径过拟合,在分布变化后性能下降;
  • 直接证据: 只用单一规则(J/Q/K 都计为 10)训练后,测试时 J 变成 11,SFT 分支仍按 10 计算,分布外性能反而下降,详见SFT 与 RL 的本质区别;
  • 对称性: 多样且有代表性的示范可以教会模型可泛化的特征,此时 SFT 也能泛化——记忆倾向来自示范或 prompt 缺乏多样性,不是 SFT 的必然属性;

跨语言思考是 SFT 自身带来的泛化吗?​

  • 现象: 训练数据中完全没有中文,把 reasoning language 设为 Chinese 后模型仍能用中文进行完整思维链;
  • 正确解释: 这并非 SFT 本身的泛化能力——多语言预训练已经在模型中建立了跨语言的共享表征空间,SFT 只是激活了这种预训练时已有的能力;
  • 推论: SFT 能激活已有表征,但不能创造预训练与 Mid-training 未覆盖的知识与能力;

表达型任务有哪些常见失败模式?​

  • 说话者过少: 训练数据中说话者太少,导致所有声音听起来是同一个腔调;
  • 标记过拟合: 模型死记硬背训练样本的细节,遇到新情况反而更差,产生“机械笑”;
  • 关键因素: 训练数据的多样性和标注质量,而不是数据数量;