论文笔记--Training language models to follow instructions with human feedback

1. 文章简介

  • 标题:Training language models to follow instructions with human feedback
  • 作者:Ouyang L, Wu J, Jiang X, et al.
  • 日期:2022
  • 期刊:NIPS

2. 文章导读

2.1 概括

  文章给出了一种基于人类指令对大语言模型进行调整的方法。在人类标注的数据上对GPT-3进行微调,并通过人类打分的数据对上述模型进行强化学习,从而得到一个满足人类偏好的语言模型。文章的整体架构是ChatGPT的前身,相较于GPT-3,回答真实性更高,且危害信息更少。
  文章的整体架构如下
文章架构

2.2 文章重点技术

2.2.1 Supervised Fine-Tune(SFT)

  文章架构中的第一部分Step1采用了SFT方法。为此,文章首先雇用了一些标记员对prompt数据进行回答,称为labeler demonstrations,然后在demonstrations上面对GPT-3进行有监督的微调。微调后的模型我们记作SFT。
step1
  Prompt数据集通过如下方式构建:从OpenAI的Playground API(非生产环境)上面获取用户提交的prompt,其中保证使用每个用户的prompt数量不超过200条,并过滤敏感信息和重复信息(通过长的公共前缀过滤),然后按照user ID划分train, test, val。另外由于API的prompts的多样性较为单一,我们让我们的标记员自己写一些如下类别的prompts以初始化模型:

  • Plain: 标记员写任意任务的prompts,保证任务的多样性
  • Few-shot:标记员提出一个指令和该指令的多个问答对(Few-shot learning中的prompt)
  • User-based:标记员根据OpenAI的API的waitlist(用户希望OpenAI未来的突破)上面的用例提出合适的prompts,从而将用户期望的功能放入prompts。
      prompts 数据在不同阶段的训练配比如下表所示。当前的SFT阶段大部分数据为labeler自己写的prompts。
    prompts 数量分布

2.2.2 Reward Model(RM)

  接下来我们训练一个RM打分模型,为此首先需要一个评分的数据集。OpenAI 构建了一个用户打分的UI,如下图所示。首先上述的SFT模型会对每个prompt生成 K K K个候选答案( 4 ≤ K ≤ 9 4\le K \le 9 4K9),用户会对每个答案打分,并对所有答案进行排序。页面的示例如下图所示。为了避免模型overfit且保证训练效率,模型训练时按照prompt对数据集划分,即保证每个prompt的所有 ( K 2 ) \tbinom K2 (2K)答案对在同一个batch。UI
  RM模型根据上述打分数据进行训练,具体训练方案如下图。损失函数为 l o s s ( θ ) = − 1 ( K 2 ) E ( x , y w , y l ) ∼ D [ log ⁡ ( σ ( r θ ( x , y w ) − r θ ( x , y l ) ) ] loss(\theta) = -\frac 1{\tbinom K2} E_{(x, y_w, y_l)\sim D} [\log (\sigma (r_{\theta} (x, y_w) - r_{\theta} (x, y_l) )] loss(θ)=(2K)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值