前言
更多关于大模型的文章可见:ShiyuNee/Awesome-Large-Language-Models: Papers about large language models (github.com)
- 该仓库持续更新
Abs
通过训练模型来向着人类偏好优化可以显著提高摘要质量。
Method
High-level methodology
从一个在摘要数据集上使用SFT微调好的初始模型开始,然后经过以下三个步骤:
- 从已有的模型中收集一些样本,利用人工来进行对比
- 对一个 Reddit post,从不同模型(当前模型,初始模型,原有的参考摘要以及其他baselines)中收集summaries。之后,将一批成对的摘要送给人工评估,人工被要求对一个Reddit post选择其最好的摘要
- 从人类对比的结果中学一个reward model
- reward model用来对<post, summary>打分,分数越高说明summary越好,该模型打分需要和人类偏好保持一致,及人工认为越好的摘要应该得到更高的分数
- 针对reward model训练一个policy
- 利用reward model对policy生成的结果进行打分,使用强化学习用该分数来优化当前policy
Dataset and task
- 数据:从TL;DR数据集中过滤得到,包含123169个posts,5%用来validation
- 为什么不用更常用的CNN/DM数据集?
- 因为这个数据集太简单,简单的提取式模型都能做的很好
- 为什么不用更常用的CNN/DM数据集?
- 任务:训练一个模型,生成小于48token的摘要,模型效果要好
Models
所有模型都是GPT-3架构,用1.3B和6.7B的GPT-3进行 human feedback实验
-
预训练模型:自回归形式的GPT-3
-
监督baselines:用过滤后的TL;DR微调的GPT-3,用来初始化policy、RM,也用来采集摘要pair,以及作为评估的baseline。在最后的人工评估中,对所有模型使用T=0的采样方式(贪婪搜索),因为发现这样效果最好
-
Reward models:用上面的监督baseline来初始化,加了一个随机初始化的线性层来输出一个标量分数,该模型在两个摘要 ( y 0 , y 1 ) (y_0, y_1) (y0,y1)中判断哪个更好,如果 y 1 y_1 y1 更好,loss可以写成:
-
Human feedback policies:用上面的监督baseline初始化,基于上面的RM,我们采用RL的方式,用PPO算法来训练一个policy。在reward中添加了一个惩罚项(学到的policy和原始的监督模型之间的KL散度)
Discussion
Limitations:训练以及数据收集都非常耗时,因此没办法上到更大的模型
Future directions:
- 可以应用到各种能比较样本的任务上
- 希望能扩展到人类不能轻易评估模型输出的任务上
- 使用除了二分比较的其他形式的human feedback
Broader impacts:本文探索的是通用技术,可以用在各种机器学习应用上。