RLHF总结

RAFT:Reward rAnked FineTuning for Generative Foundation Model Alignment

给一批Prompt,先让大模型生成对每一个prompt生成一个answer,然后让RM去给这些prompt-answer对进行打分,把得分高的选出来用于Fine-tune大模型,得分不高的prompt-answer对直接舍弃。

RRHF:Rank Responses to Align Language Models with Human Feedback without tears

对某一个prompt,通过不同的方式(ChatGPT、人类专家等)生成很多个answer,让RM去打分,然后选出好的去Fine-tune大模型,此外,让大模型也算一下这些answers的似然概率当做评分,让这个评分和RM的打分尽可能对齐(通过Rank loss的监督学习目标)。

总结:1. 这两个工作(github的star都不少)都是只用了RM去给个评分,然后用监督学习的方法更新,没有用到RL,所以不能算是严格的RLHF; 2. 这种Data-centric的思路,即用模型本身 (或者更大的模型)生成的数据(可以看成是数据增强)来微调自己,是general的(Segment anything也是这个思路)。

 

RL相比于SFT,训练LLM的优势?

  1. Token-wise有考虑累计回报奖励的潜力;
  2. RLHF是使用模型生成的样本训练而非SFT中最大似然数据集中的样本,一方面,训练reward model对样本质量要求没那么高(不太好的样本给低评分就好),可以通过一些次优的样本生成更优的策略;另一方面,相比于直接用样本进行最大似然,让模型自己去生成可以允许更多样化的输出(RRHF和RAFT也有这个优势)。
  3. RLHF可以允许负反馈,而包括RRHF、RAFT的SFT只用了生成出的得分高的样本训练。这样导致的结果是:SFT会让模型过于自信的泛化,而RL能引导模型回答“我不知道”。
  4. RL优化Agent行为以达到其他特定目标(通过修改奖励函数),比监督学习更灵活。

 

当我们用RL去拟合一个没那么准的RM的时候,就会发生过度优化的情况。OpenAI实验的方法,是用InstructGPT那份真实的数据去训练一个Gold RM,再用Gold RM生成数据去训练一个Proxy RM(下图Synthetic部分):

 

从结果可以看到,虽然Proxy RM的分数会一直上升(虚线),但真实效果,也就是Gold RM会饱和甚至下降(实线)

 

所以由于RM的效果限制,现阶段的RLHF还不太完美,只是Human Feedback的一个降级方案。

 

将两个模型的生成文本进行比较计算差异的惩罚项,通常设计为输出词分布序列之间的 Kullback–Leibler (KL) 散度的缩放;这一项被用于惩罚 RL 策略在每个训练批次中生成大幅偏离初始模型,以确保模型输出合理连贯的文本。如果去掉这一惩罚项可能导致模型在优化中生成乱码文本来愚弄奖励模型提供高奖励值。

下面看一下 reward model。 左图比较了在不同的 KL penalty 权重下模型的表现。我们看到当 KL penalty 小即在图的左端,模型的实际表现很糟。这也说明了KL项的必要性。随着惩罚项增大,RM预测的效果开始提升,但当惩罚项过大时,RM 预测不再提升,即与SFT保持一致。右图说明了对于reward model,模型越大,数据越多效果越好。

 

 

指令微调也就是对齐阶段的数据质量>>数量,少量+多样+高质量的对齐数据,就能让你快速拥有效果杠杠的模型。注意以上三者是充分必要关系,不是说数据越少越好,是三者的有机统一。构建质量更高,覆盖范围更广的数据,是否比随机造大量的指令数据效果要更好。毕竟你抖音刷1000条杂七杂八的中医养生小知识,可能比不上精读黄帝内经+神农本草不是。模型的知识和能力几乎全部是预训练阶段注入的。而指令微调阶段的对齐只是学习和人类交互的回答形式。因此一个输入多样输出形式一致的高质量指令数据集能帮模型快速学到回答形式;论文反复强调一致的回答风格可以加速模型收敛

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章