InstructGPT怎么准备和标记数据集

这篇具有很好参考价值的文章主要介绍了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 数据集):

InstructGPT怎么准备和标记数据集
表 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)的排名,并在所有的上训练模型,所以他们训练模型的排名对的数量是一个顺序2个数量级大于提示的数量。

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

5. 数据多样性

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

InstructGPT怎么准备和标记数据集
表 7:数据集注释
InstructGPT怎么准备和标记数据集
表 8:每位客户的平均提示
InstructGPT怎么准备和标记数据集
表 9:按数据集分类的提示长度

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

InstructGPT怎么准备和标记数据集
表 10:按类别分类的提示长度
InstructGPT怎么准备和标记数据集
表 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 中进行了说明

InstructGPT怎么准备和标记数据集
图 10:摘自给贴标签者的说明,用于对他们的提示分布上的模型输出进行最终评估。
他们在这里提供完整的说明。
InstructGPT怎么准备和标记数据集
图 11:提供给贴标人员的完整说明,用于评估模型输出的毒性
RealToxicityPrompts 分布。

最后再来一张OpenAI API Playground界面

InstructGPT怎么准备和标记数据集

 

 名词解释

缩写名词 全称 注解
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文章来源地址https://www.toymoban.com/news/detail-431778.html

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

到了这里,关于InstructGPT怎么准备和标记数据集的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 标签准备——labelIMG工具使用——自动化标注

    在实际生产项目中,为了提升目标识别的准确性,我们往往需要3000-5000张图片进行标注。而直接参与过标注的人都有一个共同的感觉,就是标注是一个简单、枯燥、无聊且十分耗时费力的差事。为此,我们可以在有了初步训练模型的基础上,采用更加自动化的方式进行标注,

    2024年02月12日
    浏览(57)
  • BMapGL -- 使用Class在 Vue3 ts 中封装创建标记和多边形标签

    useSymbol.ts 文件 MarkerLabel 使用 PolygonLabel使用 这段代码定义了两个类:MarkerLabel 和 PolygonLabel,分别用于创建标记和多边形标签,并将它们添加到地图上。 MarkerLabel 类接收一个 markConfig 对象作为参数,该对象包含创建标记所需的各种配置信息,例如标记的位置、标记的样式、标

    2024年02月15日
    浏览(33)
  • HTML的span标签的作用是什么?答:对文本内容进行精细的样式化和标记。

    当谈到HTML中的 span 标签时,它是一个非常基本且灵活的内联元素。它通常用于在文本中应用样式、添加额外的语义或将特定部分标记为一个单独的区域。 span 标签本身并不会给其中的内容带来任何视觉上的变化,但它可以与CSS一起使用,从而允许您对其内容进行样式化。 以

    2024年02月10日
    浏览(38)
  • 简单的手机记事本怎么把内容标记为完成状态?

    很多人平时会在手机记事本上记录一些自己身边需要记住的事情,有的事情做完之后不想删除,又想要和未完成的内容区分开,那么这种情况下可以将它标记为已完成状态。简单的手机记事本怎么把内容标记为完成状态呢?以iPhone手机端敬业签记事本软件为例: 1、打开iPho

    2024年02月12日
    浏览(40)
  • 微信小程序入门及开发准备,申请测试号以及小程序开发的两种方式,目录结构说明

    目录 1. 介绍 1.1 优点 1.2 开发方式 2. 开发准备 2.1 申请 2.2 申请测试号 2.2 小程序开发的两种方式 2.3 开发工具 3. 开发一个demo 3.1 创建项目 3.2 配置 3.3 常用框架 3.3 目录结构说明 3.4 新建组件 是一种不需要下载安装即可使用的应用,是一种 触手可及 的应用 可以借助微信的流量

    2024年02月05日
    浏览(48)
  • IDEA项目java文件夹出现source root标记怎么处理

    在复制项目时出现如下标记 同时src下面无启动入口 解决办法如下: 1、选中项目,右键—open module Settings----Modules----选中项目—右边删除后 2.点击Apply----- OK 这时回到项目能看到目录正常,自动生成了启动入口,但是有些依赖没有。 3.通过Maven重新加载依赖 完成!

    2024年02月16日
    浏览(48)
  • ACL2023 | 大模型如何快速构建指令遵循数据集?self-instruct:用175条种子数据追上InstructGPT001效果

    title:SELF-INSTRUCT: Aligning Language Models with Self-Generated Instructions 论文地址:https://arxiv.org/abs/2212.10560 代码:GitHub - yizhongw/self-instruct: Aligning pretrained language models with instruction data generated by themselves. 1 Motivation 构造instruction data非常耗时耗力,常受限于质量,多样性,创造性,阻碍了

    2024年02月09日
    浏览(51)
  • 2023年就业卷,卷,卷!前端面试怎么准备?

    本文首发自「慕课网」,想了解更多IT干货内容,程序员圈内热闻,欢迎关注\\\"慕课网\\\"! 作者:张轩|慕课网讲师 大多数开发者应该都经历过跳槽和面试,这也是我们工作生活中必须要经历的一部分,那么在每次面试中你是否发挥到了真实的水平,是否留下过很多遗憾,很多次

    2023年04月13日
    浏览(35)
  • 零基础小白怎么准备蓝桥杯-蓝桥杯竞赛经验分享

    博主在蓝桥杯中获得过十四届Java B 组的省一国二,本文为大家介绍一下蓝桥杯并分享一下自己的参赛经验。 ​ 蓝桥杯全称《蓝桥杯全国软件和信息技术专业人才大赛》,是由国信蓝桥和工信部举办的全国性IT学科赛事。全国1200余所高校参赛,累计参赛人数超过40万人。蓝桥

    2024年02月04日
    浏览(51)
  • 电脑开机后一直显示正在准备自动修复怎么办?

    很多小伙伴在日常使用电脑的过程中,会遇到开机之后,电脑屏幕一致显示正在准备自动修复,那么这时我们该怎么办呢? 什么是自动修复? 自动修复是一项Windows的内置功能,旨在帮助用户修复系统启动期间发生的错误和崩溃。但是,当计算机因为某些故障而影响该功能的

    2024年02月05日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包