OpenAI: InstructGPT

InstructGPT是OpenAI通过指令微调来提升模型帮助人类解决问题的能力,重点在于模型的有用性、无害性和诚实性。指令集更加注重用户实际需求,评估指标不再局限于准确性,转向人工评估的LikeScore、有害性和事实性。相比之下,AllenAI的TK-Instruct提供了大规模指令数据集,侧重于标准NLP任务的多样性。两者都在推动模型向更好地理解并执行人类指令的方向发展。
摘要由CSDN通过智能技术生成

  • paper: 2022.3 Training Language Model to follow instructions with human feedback

  • Model: (1.3B, 6B, 175B) GPT3

  • 一言以蔽之:你们还在刷Benchamrk?我们已经换玩法了!更好的AI才是目标

这里把InstructGPT拆成两个部分,本章只说指令微调的部分,也就是训练三部曲中的第一步,论文中叫SFT(Supervised fine-tuning)。从论文的数据构建和评估中,不难发现OpenAI对于什么是一个更好的模型的定义和大家出现了差异,当谷歌,BigScience联盟还在各种不同的标准任务上评估LM模型能力提升时,OpenAI的重点已经变成了更好的AI,也就是能更好帮助人类解决问题的人工智能。简化成3H原则就是

  • Helpful:模型能帮助用户解决问题

  • Honest: 模型能输出真实信息

  • Harmless: 模型输出不能以任何形式伤害人类

于是正文部分的评估基本没有常见的Accuracy,F1等,而是变成了各种人工评估的打分,例如LikeScore,Hallucinations等等。指令微调数据集的分布也从标准NLP任务向用户在playground中提交的问题偏移。下面我们细说下这两部分

指令集

先说下SFT指令集的构建,InstructGPT构建了训练12725+验证1653条prompt指令,由标注员的标注样本和用户在playground中和模型交互的指令共同构成,相比T0指令的多样性又有大幅提升。不过以下的指令数量包括了few-shot采样,也就是1个instruction采样不同的few-shot算多条指令。

img

除了丰富程度,和T0以及Flan指令集最大的差异在于指令类型的分布。 标注人员标注了以下三类样本

  • Plain: 标注同学自由构建任务指令

  • Few-shot:自由构建任务的同时给出few-shot样例

  • User-Based: 基于用户申请waitlist时给出的使用用途,让标注同学构建对应的指令任务

整体上会更偏向于用户在真实场景下和模型交互可能提问的问题,自由式生成例如脑暴,改写,聊天,自由创作类的任务占了绝大多数。 而T0,Flan的指令集集中在NLP的分类和QA任务,这类任务的在实际交互中占比其实很小。下图是OpenAI play ground中收集的用户指令的分布

img

以及从论文的表述中存在迭代 ,也就是标注同学标注的指令集用于训练第一版InstructGPT,然后发布到playground,收集更多的用户和模型交互的指令,再使用用户指令来训练后续的模型。因此在用户导向的数据集上OpenAI相比所有竞争对手都有更深厚的积累,你以为在白嫖人家的playground?人家也在收集数据提升他们的模型。

SFT使用cosine rate decay 例如微调了16个epoch,但是发现在第一个epoch上验证集就已经过拟合了,但是过拟合会提升后续RLHF的模型效果。这部分我们放到RLHF章节再讨论,也就是什么样的模型更合适作为RLHF的起点

评估指标

从论文对如何把3H原则转化成客观的模型评估指标的讨论上,不难感受到OpenAI对于标注标准有过很长期的讨论和迭代,包括3个方向

  1. Helpful有用性

主要评价模型是否理解了指令意图,考虑有些指令本身意图的模糊性,因此有

  • 16
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值