2.1 数据集采集如图4所示,InstructGPT/ChatGPT的训练分成3步,每一步需要的数据也有些许差异,下面我们分别介绍它们 。
2.1.1 SFT数据集SFT数据集是用来训练第1步有监督的模型,即使用采集的新数据,按照GPT-3的训练方式对GPT-3进行微调 。因为GPT-3是一个基于提示学习的生成模型,因此SFT数据集也是由提示-答复对组成的样本 。SFT数据一部分来自使用OpenAI的PlayGround的用户,另一部分来自OpenAI雇佣的40名标注工(labeler) 。并且他们对labeler进行了培训 。在这个数据集中,标注工的工作是根据内容自己编写指示,并且要求编写的指示满足下面三点:
- 简单任务:labeler给出任意一个简单的任务,同时要确保任务的多样性;
- Few-shot任务:labeler给出一个指示,以及该指示的多个查询-相应对;
- 用户相关的:从接口中获取用例,然后让labeler根据这些用例编写指示 。
2.1.3 PPO数据集InstructGPT的PPO数据没有进行标注,它均来自GPT-3的API的用户 。既又不同用户提供的不同种类的生成任务,其中占比最高的包括生成任务(45.6%),QA(12.4%),头脑风暴(11.2%),对话(8.4%)等 。
2.1.4 数据分析因为InstructGPT/ChatGPT是在GPT-3基础上做的微调,而且因为涉及了人工标注,它们数据总量并不大,表2展示了三份数据的来源及其数据量 。

文章插图
表2:InstructGPT的数据分布
论文的附录A对数据的分布进行了更详细的讨论,这里我列出几个可能影响模型效果的几项:
- 数据中96%以上是英文,其它20个语种例如中文,法语,西班牙语等加起来不到4%,这可能导致InstructGPT/ChatGPT能进行其它语种的生成,但效果应该远不如英文;
- 提示种类共有9种,而且绝大多数是生成类任务,可能会导致模型有覆盖不到的任务类型;
- 40名外包员工来自美国和东南亚,分布比较集中且人数较少,InstructGPT/ChatGPT的目标是训练一个价值观正确的预训练模型,它的价值观是由这40个外包员工的价值观组合而成 。而这个比较窄的分布可能会生成一些其他地区比较在意的歧视,偏见问题 。
2.2 训练任务我们刚介绍到InstructGPT/ChatGPT有三步训练方式 。这三步训练会涉及三个模型:SFT,RM以及PPO,下面我们详细介绍它们 。
2.2.1 有监督微调(SFT)这一步的训练和GPT-3一致,而且作者发现让模型适当过拟合有助于后面两步的训练 。
2.2.2 奖励模型(RM)因为训练RM的数据是一个labeler根据生成结果排序的形式,所以它可以看做一个回归模型 。RM结构是将SFT训练后的模型的最后的嵌入层去掉后的模型 。它的输入是prompt和Reponse,输出是奖励值 。具体的讲,对弈每个prompt,InstructGPT/ChatGPT会随机生成 K 个输出( 4≤K≤9 ),然后它们向每个labeler成对的展示输出结果,也就是每个prompt共展示 CK2 个结果,然后用户从中选择效果更好的输出 。在训练时,InstructGPT/ChatGPT将每个prompt的 CK2 个响应对作为一个batch,这种按prompt为batch的训练方式要比传统的按样本为batch的方式更不容易过拟合,因为这种方式每个prompt会且仅会输入到模型中一次 。
推荐阅读
- ChatGPT用于生产级对话式AI系统的那些缺点
- ChatGPT搞钱行不行
- 一文详解Python语言选择结构和循环结构
- icloud怎么用,icloud的正确用法详解
- 电商运营怎么做数据分析,详解电商运营策略
- 天猫转让需要多少钱,天猫店铺转让流程及费用详解
- 建网站需要多少钱,建站费用详解
- 开发软件需要什么配置及技术,软件开发流程详解
- 前端js中http跳转https报403错误,请求头referer详解
- ChatGPT爆火背后,生成式AI是否只是“昙花一现”?
