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。