跳转至

Lecture 15: Alignment with SFT/RLHF

约 760 个字 预计阅读时间 3 分钟

高质量数据的概念非常复杂,添加即使事实上正确的数据也可能会导致模型性能下降。即使比较少比例的数据也可能对模型行为产生很大的影响,这些数据包括安全数据、指令跟随数据以及风格数据等等。

至于如何做微调,在大多数学术设定下,只需要进行梯度下降就可以。但是在工业上,我们有大量的数据和计算,因此我们必须 Scale Up 指令微调过程。如今预训练和指令微调的界限已经模糊了,当前的趋势变成:做一段纯粹的预训练,然后在这个基础上,尤其是在学习率退火阶段,将指令微调数据掺入到预训练数据之中,在预训练结束之后再进行一次短暂的、真正的指令微调。Midtraining 指的就是在预训练尾声掺入高质量指令微调数据进行训练的这一段训练过程,这允许我们扩展规模而不会出现灾难性遗忘。

RLHF / RL from Human Feedback

在这里,我们将开始我们的概念性转换:我们认为预训练和指令微调之类的东西是生成式建模的范式,我们有一个参考分布 \(p^*\),这可能代指互联网上的文本数据或者标注者撰写的数据,我们试图去模仿它 \(\hat{p} (y \mid x) \approx p^* (y \mid x)\)。而 RLHF 是一个几乎不同的范式,我们可能有一个奖励函数 \(R(y, x)\),我们试图最大化这个奖励函数的期望值 \(\mathbb{E}_{y \sim \pi(\cdot \mid x)} [R(y, x)]\),其中 \(\pi\) 是我们正在学习的策略。在这种视角下,语言模型并不是某个潜在分布的模型,而是一个可以给我们带来良好回报的策略。

至于为什么要使用 RL,大致有下面两个原因:

  • 一方面是 SFT 的原因:SFT 要求我们在 \(p^*\) 中获取样本,这可能需要找专家来撰写数据,一般需要很大的开销;
  • 另一方面是一致性以及 G-V Gap 的原因:人们对于什么是好的看法可能会有分歧,因此如果你让某人去写一段摘要,他们可以写一份摘要。然后你让他们把自己的摘要和由语言模型写的摘要进行比较,会有相当多人实际上会更喜欢由语言模型撰写的摘要。检验实际上不止比生成更廉价,而且可能质量更高。 因此,RLHF 的一个重要动机是我们可以通过比较来获取反馈,而不是通过撰写来获取反馈。我们可以让人们比较两段文本,看看他们更喜欢哪一段文本,这样就可以得到一个奖励信号。