54

RFT——用自身最佳输出自蒸馏

阅读约 3 分钟第 54/60 课

RFT(Rejection sampling Fine-Tuning,拒绝采样微调)是另一种利用偏好来改善模型的方法。它的思路和 DPO 不同:让模型对同一个问题生成很多个回答,从中挑选最好的,用最好的回答重新训练模型。

直觉

一个篮球运动员练习投篮。他投了 100 次——有些进了,有些没进。如果录下所有投篮,只挑进球的那些来反复观看和模仿,他的命中率会不会提高?

RFT 对模型做的就是这件事。

具体流程

假设有 1,000 个问题。对每个问题:

1. 让当前模型生成 16 个回答
2. 用评分标准给 16 个回答打分
3. 只保留得分最高的 1-2 个
4. 其余 14-15 个丢弃

1,000 个问题 × 1-2 个最佳回答 = 1,000-2,000 条高质量训练数据。然后用这些数据对模型做 SFT——和第 47 章节一样的训练方式,只是训练数据全部来自模型自己的最佳表现。

评分标准可以是:

  • 奖励模型:一个专门训练来评判回答质量的小模型
  • 规则判断:比如数学题可以验证答案是否正确
  • 长度和格式规则:太长扣分、有格式错误扣分

为什么可能有效

RFT 的训练数据完全来自模型自身——不需要外部教师、不需要人工标注。这意味着它可以无限地迭代:训练一轮之后模型变好了,再生成一批回答,再挑最好的,再训练。

在大模型上,这种自我提升确实有效。原因是:大模型的 16 个回答中,最好的那个可能远好于平均水平。模型已经「知道」怎么写好的回答,只是不能稳定地每次都做到。RFT 帮助模型把偶尔的好表现变成稳定的行为。

在 Sophia 上的效果

Sophia 的技术报告记载了 RFT 实验的结果:效果不佳。

原因在于规模差异。Sophia 是一个十亿参数的模型,能力天花板本身就比较低。当她对一个问题生成 16 个回答时:

大模型(千亿参数)的 16 个回答:
  最好的:90 分
  平均:  65 分
  差距:  25 分 ← 足够的训练信号

Sophia(十亿参数)的 16 个回答:
  最好的:58 分
  平均:  55 分
  差距:  3 分  ← 信号太弱

16 个回答之间的质量差异不够大——最好的那个也没有比平均水平好多少。从 3 分的差距中提取训练信号,收益微乎其微。

这是一个重要的发现:不是所有在大模型上有效的技术都能直接缩放到小模型上。 大模型的成功经验不能照搬——小模型需要找到适合自己规模的方法。

下一章节来看另一种偏好优化方法——GRPO。