InstructGPT怎么准备和标记数据集

目录

1. 贴标签者选择

2. 数据集的来源

3.数据预处理

4. 标记数据集的方法

4.1 贴标签者编写的prompts

4.2 通过API playground提交的prompts

4.3 根据提示生成数据集

5. 数据多样性

6. 利用这样标记出来的数据集让InstructGPT模型学到了什么?

7. 这样标记的数据的不足之处

8. 贴标签说明

 名词解释


1. 贴标签者选择

        OpenAI 公司在Upwork平台上和Scale AI公司聘请了大约 40 名承包商为他们标记数据,通过筛选测试(screening test)来判断承包商识别和响应敏感提示的能力,以及承包商与研究人员在带有详细说明的标签任务上的一致率。并且让承包商团队保持小的规模,这样有助于更方便的与全职执行任务的承包商进行的沟通。筛选过程主要是选择显示出高度检测和响应敏感内容倾向的贴标签者。更具体地说,根据以下标准从最初的标注者候选池中选择了我们的训练标注者:

  • 敏感言论一致性。创建了一个提示和补全的数据集,其中一些提示或补全是敏感的(即任何可能引起强烈负面情绪,无论是有害性的、性的、暴力的、评判性的、政治性的等等)。 他们自己标记了这些数据的敏感性,并衡量了他们和标记者之间的一致性。
  • 排名一致性。 将提示提交给我们的 API,以及几个模型的补全,并让贴标签者按整体质量对完成度进行排名。 测量标记者的与研究人员标签的一致性。
  • 敏感示范写作。 创建了一小组敏感提示,其中适当地回应输出将需要细微差别。 然后,按照 1-7 的Likert scale对每个范文进行评分,并计算每个贴标签者的平均的范文分数。
  • 自我评估识别不同群体敏感言论的能力。 选择一组能够共同识别敏感内容的标签制作者广泛的领域。 出于法律原因,我们不能根据人口统计信息雇用承包商标准。 因此,他们让贴标签者回答了这个问题:“对于什么主题或文化群体您是否愿意识别敏感言论?” 并将其用作我们选择的一部分过程.
     

2. 数据集的来源

        InstructGPT模型中的提示数据集主要包含提交给 OpenAI API 的文本提示,特别是那些使用早期版本的 InstructGPT 模型(通过在范例数据的子集上有监督训练)在 Playground 界面上。使用 Playground 的客户是通过多次通知被告知他们的数据可能随时用于训练 InstructGPT 模型没有使用在生产上部署的API的客户的数据

3.数据预处理

        通过检查共享长期共同点的提示来启发式地删除重复提示前缀,他们将提示的数量限制为每个用户 ID为200条。 为了让验证集和测试集不包含用户在训练集中的数据,使用用户 ID 把数据集拆分成训练集,验证集和测试集 为了避免模型学习潜在敏感的客户详细信息,他们在训练集上过滤掉可以获取个人身份信息 (PII)的提示(prompts)。

4. 标记数据集的方法

4.1 贴标签者编写的prompts

        为了训练第一个 InstructGPT 模型(即Beta instructGPT),他们要求贴标签者自己编写提示(prompts)。 这是因为他们需要一个类似指令的提示(instruction-like prompts.)的初始来源来引导这个过程,而这些类型的提示并不经常提交给 OpenAI API 上的常规 GPT-3 模型。 他们要求贴标签者写出三种提示:

  • Plain:贴标签者提出一个任意任务,同时确保任务具有足够的多样性
  • Few-shot:贴标签者提出一条指令,以及该指令对应的多个查询/响应(query/response)对。
  • User-based:在 OpenAI API 的候补名单申请中有许多用例。 贴标签者提出与这些用例相对应的提示。

4.2 通过API playground提交的prompts

        对于API提示,使用用户提交给前面提到的OpenAI API Playground上的InstructGPT模型早期版本的提示。 整个过程中他们只使用来自 Playground 的数据,而不是客户在生产中使用他们的模型,因为这样更容易获得知情同意:每次用户切换到 InstructGPT 模型时,都会弹出一条警告消息,提示已提交提示 这些模型可以用来训练我们模型的未来版本。 在启动 InstructGPT 模型的测试版时,还在开发人员 Slack 频道上的一条消息中传达了这一点。 他们从包含个人身份信息 (PII) 的训练拆分中过滤掉提示。

        为了确保用例的多样性,他们通过检查共享长公共前缀的提示来启发式地删除重复提示,并将每个组织的提示数量限制在大约 200 个。 此外,我们根据组织 ID 创建训练、验证和测试拆分,例如 验证集包含与训练集不同的用例。

4.3 根据提示生成数据集

        根据上面的提示,生成三个用于微调过程(fine-tuning procedure)的不同数据集( SFT 数据集, RM 数据集, PPO 数据集):

表 6:数据集大小,根据提示数量

        上表展示了用于训练/验证 SFT、RM 和 RL 模型的数据集的大小,以及提示是标签承包商编写的还是来自OpenAI API。

        (1) SFT 数据集,用于训练SFT 模型的贴标签者范例数据,SFT 数据集包含大约 13k 个训练提示(来自 API 和 labeler-written),对于 SFT,请注意,标签商编写的提示比客户提示多得多,这是因为,在项目开始时,标签商编写带有用户界面的说明,要求他们提供总体模板说明以及一些 - 该指令的示例。 他们通过对不同的小样本样本集进行采样,从同一指令综合构建了多个 SFT 数据点。

        (2) RM 数据集,用于训练RM模型, RM 数据集有 33k 个训练提示(来自 API 和 labeler-written),对于 RM,每个提示,他们收集了 K个输出(从 4 到 9)的排名,并在所有的\binom{K}{2}上训练模型,所以他们训练模型的排名对的数量是一个顺序2个数量级大于提示的数量。

        (3) PPO 数据集,没有任何人工标签,用作 RLHF 微调的输入。PPO 数据集有 31k 个训练提示(仅来自 API)。 上表中提供了有关数据集大小的更多详细信息。
      

5. 数据多样性

        收集的数据涵盖广泛的类别和用例。  RM 训练和验证数据集中由承包商标记的类别的多样性。 PPO 数据集的类别分布相似。 在表 7 中显示了他们标记的提示元数据的一个子集。请注意,注释字段在项目过程中发生了变化,因此并非每个提示都对每个字段进行了注释。

表 7:数据集注释

表 8:每位客户的平均提示

表 9:按数据集分类的提示长度

25%是四分之一分位数,50%是二分之一分位数(就是中位数)、75%是四分之三分位数

表 10:按类别分类的提示长度

表 11:提示和范例数据的长度

         使用轻量级分类器 (langid.py) 对数据集中所有指令的语言进行分类。 根据他们的经验,数据集(110k 数据点)中约有 96% 被归类为英语,但由于分类器的不准确性,估计实际分数可能为 99% 或更高。
        除英语外,还发现了至少 20 种其他语言的一小部分提示:西班牙语、法语、德语、葡萄牙语、意大利语、荷兰语、罗马尼亚语、加泰罗尼亚语、中文、日语、瑞典语、波兰语、丹麦语、土耳其语、印度尼西亚语、捷克语、挪威语 、韩语、芬兰语、匈牙利语、希伯来语、俄语、立陶宛语、世界语、斯洛伐克语、克罗地亚语、斯瓦希里语、爱沙尼亚语、斯洛文尼亚语、阿拉伯语、泰语、越南语、马拉雅拉姆语、希腊语、阿尔巴尼亚语和藏语。
        表 8 显示了每个客户为数据集贡献的平均提示数。 在表 9 中,报告了用于训练各种模型的提示长度(以令牌为单位)的描述性统计信息,在表 10 中,按用例细分了令牌长度。 最后,还在表 11 中报告了用于我们的 SFT 模型的承包商编写的演示的长度,包括承包商编写的和标签商编写的提示。

6. 利用这样标记出来的数据集让InstructGPT模型学到了什么?

        在将语言模型与人类意图对齐时,最终行为是基础模型(及其训练数据)、微调数据和所用对齐方法的函数。 下面将具体描述一些影响微调数据的因素,以最终确定要对齐的内容和对象。 
        文献经常使用诸如“人类偏好”或“人类价值观”之类的术语来构建对齐。 在这项工作中,他们已经调整了一组贴标签者的偏好,这些偏好受到的影响包括他们收到的指示、他们接受指示的背景(作为有偿工作)以及他们从谁那里得到指示。 一些重要的警告适用:
        首先,把模型对齐到贴标签者提供的范例数据和贴标签者的偏好,贴标签者直接生成他们用来微调模型的数据。 一般来说,他们大多是居住在美国或东南亚的讲英语的人通过 Upwork 或 Scale AI 雇用。 贴标签者在许多例子上意见不一; 他们发现贴标签者之间意见一致的约为 73%。
        其次,调整贴标签者的偏好作为设计这项研究的研究人员(因此通过更广泛的研究组织 OpenAI 的代理):他们编写标记说明,标记者在编写演示和选择他们喜欢的输出时用作指南并且在共享聊天室中回答他们关于边缘案例的问题。 需要更多研究不同指令集和界面设计对从标签收集的数据的确切影响及其对模型行为的最终影响。
        第三,训练数据由 OpenAI 客户发送给 OpenAI API Playground 上的模型的提示决定,因此隐含地与客户认为有价值的东西保持一致,在某些情况下,他们的最终用户(end-users)认为当前使用API有价值。客户(consumer)并且他们的最终用户可能不同意,或者客户可能没有为最终用户的福祉进行优化; 例如,客户可能想要一个模型来最大化用户在其平台上花费的时间,而这不一定是最终用户想要的。 在实践中,标注者无法看到给定提示或完成的上下文。
        第四,OpenAI 的客户并不代表所有潜在或当前的语言模型用户——更不用说所有受语言模型使用影响的个人和群体了。 在这个项目的大部分时间里,OpenAI API 的用户都是从候补名单(waitlist)中选出的。 这个候补名单的最初是 OpenAI 员工,使最终群体偏向于我们自己的网络。
        退一步说,设计一个公平、透明并具有适当的问责机制的调整过程存在很多困难。 本文的目的是证明这种比对技术可以针对特定应用与特定人类参考组进行比对。 并不是说研究人员、雇用的贴标人员或他们的 API 客户是偏好的正确来源。 有许多利益相关者需要考虑——训练模型的组织、使用模型开发产品的客户、这些产品的最终用户,以及可能直接或间接受到影响的更广泛人群。 这不仅是使协调过程更具参与性的问题; 不可能立即训练出一个符合每个人偏好的系统,或者每个人都会认可权衡取舍的系统。
        训练一个可以以特定群体的偏好为条件的模型,或者可以轻松微调或提示以代表不同群体的模型可能是正确的思路。 然后,支持不同价值观的群体可以部署和使用不同的模型。 然而,这些模型最终可能仍会影响更广泛的社会,并且需要做出许多艰难的决定,这些决定涉及以谁的偏好为条件,以及如何确保所有群体都能得到代表并可以选择退出可能有害的过程 .

7. 这样标记的数据的不足之处

        InstructGPT 模型的行为部分取决于从我们的承包商那里获得的人工反馈。 一些标记任务依赖于价值判断,这些判断可能会受到他们承包商的身份、他们的信仰、文化背景和个人历史的影响这个贴标签者的群体显然不能代表将使用我们部署的模型并受其影响的所有人群。 举个简单的例子,我们的贴标签者主要是说英语的,我们的数据几乎完全由英文说明组成。他们还有很多方法可以改进我们的数据收集设置。 例如,出于成本原因,大多数比较(RM)数据集仅由 1 个承包商标记。 多次标记示例可以帮助确定我们的承包商不同意的领域,因此单个模型不太可能与所有这些领域保持一致。 在出现分歧的情况下,可能不需要与平均标签偏好保持一致。 例如,当生成不成比例地影响少数群体的文本时,他们可能希望属于该群体的标签者的偏好得到更大的权重

8. 贴标签说明

        在整个项目发展过程中,他们提供给贴标签者怎么给数据贴标签的说明,并且不断更改里面的内容,使得说明里面没有令人困惑或不一致的地方。

        特别值得注意的是,在他们的训练数据标记期间,他们让标记者优先考虑对用户的帮助作为最重要的标准(高于真实性和无害性),而在他们的最终评估中,他们让标记者优先考虑真实性和无害性。 他们正在探索研究途径,让模型有时在训练期间优先考虑真实性和无害性,而不是帮助性,特别是通过使用拒绝:让模型拒绝回答某些指令。 这带来了新的挑战:不同的应用程序具有不同级别的风险,因此他们可能希望模型拒绝在推理时配置的内容。 此外,模型还存在过度概括和拒绝无害指令的风险,这对于大多数应用程序来说都是不可取的。

        在表 10 和 RealToxicityPrompts 分布中显示了他们对他们的提示分布进行最终评估的说明的摘录,并在表 11 中进行了说明

图 10:摘自给贴标签者的说明,用于对他们的提示分布上的模型输出进行最终评估。
他们在这里提供完整的说明。

图 11:提供给贴标人员的完整说明,用于评估模型输出的毒性
RealToxicityPrompts 分布。

最后再来一张OpenAI API Playground界面

 名词解释

缩写名词 全称 注解
RLHF Reinforcement Learning from Human Feedback
GPT Generative Pre-Trained Transformer
LMs Lanaguage Models
SFT Supervised fine-tuning on human demonstrations
PPO proximal policy optimization Proximal Policy Optimization (PPO) is presently considered state-of-the-art in Reinforcement Learning. The algorithm, introduced by OpenAI in 2017
FLAN Finetuned Language Net. 

FINETUNED LANGUAGE MODELS ARE ZERO-SHOT LEARNERS

https://arxiv.org/pdf/2109.01652.pdf

T0

T0 is an encoder-decoder model that consumes textual inputs and produces target responses
 
RM reward model

猜你喜欢

转载自blog.csdn.net/keeppractice/article/details/130457237
今日推荐