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 未覆盖的知识与能力;
表达型任务有哪些常见失败模式?
- 说话者过少: 训练数据中说话者太少,导致所有声音听起来是同一个腔调;
- 标记过拟合: 模型死记硬背训练样本的细节,遇到新情况反而更差,产生“机械笑”;
- 关键因素: 训练数据的多样性和标注质量,而不是数据数量;