当前位置: 首页 > news >正文

【AI/NLP】InstructGPT数据标注问题

文章目录

  • 1 背景介绍
  • 2 标记员筛选
    • 2.1 标记员筛选标准
  • 3 数据集及其标注
    • 3.1 预训练
    • 3.2 微调
      • 3.2.1 SFT-demonstration data
      • 3.2.2 RM-comparison data
    • 3.3 数据集大小
  • 4 模型实现

1 背景介绍

ChatGPT的训练过程与InstructGPT相近,大致分为三步:

  1. SFT:收集描述型数据,对GPT3.5有监督微调
  2. RM:收集对比型数据,训练一个奖励型模型(RM)
  3. PPO:使用PPO算法,用RM继续微调GPT3.5

由上述可见,任何一个训练过程,首当其冲的是获取到每个任务阶段所需要的标注型数据,因此本文将对ChatGPT可能使用到的数据及其标注方法进行介绍。

2 标记员筛选

由于在ChatGPT微调的过程中,对数据极为敏感,人们所希望的语言对话模型所生成的回答应该是真实、无害、有帮助的,并且在模型评估时,真实、无害是基本要素。在这样的需求下,openAI在挑选标记员时进行了一系列的筛选测试,从而保证结果的可靠性。

2.1 标记员筛选标准

  1. 对敏感言论的看法。敏感言论指的是能够引起人的强烈负面情绪的言论,openai要求标记者对其看法应尽量一致;
  2. 答案排名能力。要求标记员与研究人员,就模型给出的问题回答排序应一致;
  3. 识别不同领域的敏感内容的能力。

3 数据集及其标注

3.1 预训练

由于无论是ChatGPT所采用的GPT3.5,还是InstructGPT所采用的GPT3,都是事先训练好的预训练模型进行微调,所以无需太多关注预训练阶段所使用的数据。

在预训练阶段,模型采用无监督学习方式,所采用数据集来自大规模文本数据,如网页、电子书、新闻文章、博客等,无需进行标注。训练过程中,模型接受一个输入序列(通常是文本的一部分),通过前面已经生成的部分来预测接下来的一个单词。在训练过程中,模型会根据预测结果和实际标签的差异来更新模型的参数,以使得模型能够更好地预测下一个单词(与GPT训练方式相似)。

上式描述了预训练阶段模型的似然函数,模型设置了大小为k的窗口,每次用k个单词去预测随后出现的单词,使整体预测概率最大。
https://www.cs.ubc.ca/~amuham01/LING530/papers/radford2018improving.pdf

3.2 微调

在有了预训练模型阶段,我们将用具体的下游任务类型出现的数据,对模型进行微调,从而产生符合预期的效果。在InstructGPT中,训练过程分为了三个阶段为有监督微调(SFT)奖励模型训练(RM)基于RM模型使用PPO微调SFT。本节内容将对各阶段出现的数据及标注,各数据集的大小进行介绍

3.2.1 SFT-demonstration data

在微调阶段,模型会使用人类对话数据进一步优化模型,微调阶段属于有监督学习,需要对文本进行标注。对于这个阶段的数据(demonstration data),将会构造或针对给定的问题,由标注工对这些问题进行回答,问题-回答对构成有标签的数据,用于对模型微调。出现的问题形式共有3种:

  • plain:直接给出需求问题,如“世界上最大的河?”;
  • few-shot:先给出一些问题和回答,再提出新问题。如“给出此条微博的情感分析?”先提供若干条微博信息,并给出其“正面”或者“负面”的标签,再给出一条新的微博内容;
  • user-based:根据具体的用户场景设计出的问题,场景类型共10类,如生成类问题,问答,头脑风暴,聊天,重写,总结,分类,抽取等。如头脑风暴场景下的“学习古希腊时应该知道的重点?”,生成类场景下的“写一篇短篇小说,讲述一只棕熊到海滩上,和一只海豹交朋友,然后回家的故事”,对故事进行续写。

3.2.2 RM-comparison data

在RM阶段,针对给定问题,由SFT微调得到的模型先产生对原问题的不同答案,由标注工对答案的正确性进行排序(comparison data),并选择更倾向于模型输出的哪一个答案,如下:

Q:“解释什么是数据结构?”
A. 数据结构是计算机的一门专业课,可用特殊的结构对数据进行存储,为高效的算法提供条件
B. 数据结构涉及数学知识
C. 数据结构属于生物学领域
D. 数据结构属于材料学领域
标注结果:A>B>C=D

以上结果的排序依据,遵从从有帮助性、真实性、无害性三个评估角度出发,其中对绝大多数任务来说,无害性、真实性的权重会远高于有帮助性(训练时则有帮助性权重更高)。但也有特殊情况,如:

  1. 某一个答案相较于其它提供的帮助非常明显;
  2. 该输出仅有些许不真实/有害;
  3. prompt不属于高风险领域(贷款申请、治疗、医疗、法律咨询等),那么将提高“有帮助性”所占的权重。如果出现帮助性相同,但不真实/有害在不同的地方,那么将从用户角度判断哪种可能对用户造成更大的损失,从而将它的排序结果置后。

此外,我们还希望模型具备“ 当输入是一些有害的言论时,希望输出是无害的 ” 的能力。该能力的评价标准将从无害性连续性出发,这里的连续性指的是输入和输出在逻辑上可以构成一个文本,而不会读起来明显像两个文本的情况。我们将从输出的有害度,输入输出相对有害度,输入输出文本连续性上进行打分,从而依据打分结果获得排序结果。

在这里插入图片描述

标记员的在第二个阶段RM标注工作在如下图所示的界面完成。

在第一张图中,标注员首先会给出1-7范围内的得分,得分更高的回答质量也更高,并且基于真实性,无害性,有帮助性,给出元数据的标签。而第二张图指的是在上一张图的工作完成以后,对模型的所有输出进行排序。

3.3 数据集大小

在InstructGPT上,雇佣了40人进行标注及API中获得的。

在这里插入图片描述

训练集上,SFT标注了13k条数据(API+人工),RM标注了33k(API+人工),PPO标注了31k(API)。

验证集上,SFT任务有1653条,RM有18k条,PPO中有16k条。

4 模型实现

在数据集采集及标注完全后,需要分别训练出两个不同的模型,即SFT和RM。

在SFT阶段,使用采集的问答对数据,对GPT进行有监督微调。

在RM阶段,使用对比数据集,训练RM奖励模型
RM模型是将SFT去掉softmax层,改成输出为1的线性层,从而在以问答为输入的情况下,输出得到奖励值。
在训练过程中,为了避免过拟合现象的出现,采用成对展示输出结果的方式,然后用户从中选择更好的结果输出。

RM所定义的损失函数会最大化两者之间的差值。RM损失函数:x代表prompt,yw代表的是质量较高的回答,yl代表质量较低的,r为奖励模型的输入结果。每轮对prompt的所有回答进行两两比较,这样设计损失函数使得yw(质量较高回答)的得分尽可能高,最大化两个回答之间的差值。

在最后PPO阶段,是利用第二步得到的奖励模型,指导SFT训练,用PPO算法微调SFT。针对给定的问题,由SFT生成回答。问题-回答作为输入,用RM模型得到奖励值,用奖励值使用PPO更新SFT,为一次迭代。由于SFT每轮参数都会发生变化,导致强化学习的环境也改变,所以在损失函数中加入KL散度。
InstructGPT

相关文章:

【AI/NLP】InstructGPT数据标注问题

文章目录1 背景介绍2 标记员筛选2.1 标记员筛选标准3 数据集及其标注3.1 预训练3.2 微调3.2.1 SFT-demonstration data3.2.2 RM-comparison data3.3 数据集大小4 模型实现1 背景介绍 ChatGPT的训练过程与InstructGPT相近,大致分为三步: SFT&#xff1a…...

三次握手和四次挥手

文章目录TCP三次握手为什么要三次握手三次握手可以携带数据吗?三次握手失败,服务端会如何处理?ISN代表什么,意义,何要动态随机什么是半连接队列第2次握手传回了ACK,为什么还要传回SYN?为什么要四次挥手TCP…...

Jmeter常用断言之响应断言详解

响应断言是最常用的一种断言方法,主要是对响应结果中的文本内容进行断言,比如响应结果是否包含指定的值,或者是否等于指定的值。响应断言可以适用各种返回类型的响应结果,如:Test、html、application/json、applicatio…...

【Python学习笔记】36.Python3 MySQL - mysql-connector 驱动(1)

前言 MySQL 是最流行的关系型数据库管理系统,本章节为大家介绍使用 mysql-connector 来连接使用 MySQL, mysql-connector 是 MySQL 官方提供的驱动器。 Python3 MySQL - mysql-connector 驱动 我们可以使用 pip 命令来安装 mysql-connector&#xff1…...

计算机SCI论文课题设计需要注意什么? - 易智编译EaseEditing

课题设计就要本着严谨性和可行性来进行。实验设计的类型要选择准确,统计学的方法要运用合理,研究对象和观察指标的选择也要符合研究目的的要求,技术路线要清晰明了。 关于课题的设计的可行性也要综合考虑,比如前期的相关工作基础…...

Quartz入门教程

本文参考文章编写 Quartz 官网 Quartz 是 OpenSymphony 开源组织在 Job Scheduling 领域又一个开源项目,是完全由 Java 开发的一个开源任务日程管理系统,“任务进度管理器”就是一个在预先确定(被纳入日程)的时间到达时&#xff…...

TypeScript 学习之 function

函数可以实现抽象层,模拟类,信息隐藏和模块。 函数有:有名字的函数、匿名函数 在 JavaScript 中的函数 // 有名字的函数 function add(x, y) {return x y; }// 匿名函数 let myAdd function (x, y) {return x y; };函数类型 typescript 可…...

【云计算自学路线】

云计算包含的技术内容和涉及的方向比较多,一定要进行系统化的学习才能更好的掌握这门技术。 云计算作为互联网新技术领域,现阶段也是出于高速发展期,想学习加入云计算行业的小伙伴可以抓紧机会了,跟着小课一起来了解云计算以及它…...

code01 v2黑屏、花屏、死机、断电重启、休眠死机的进来

症状解决 长话简说,症状如下: 使用浏览器、播放视频等,遇到突然死机或花屏死机的情况 关闭硬件加速,如:浏览器中设置关闭硬件加速,出现这种症状的软件都需要设置 开机电流音、播放与暂停时喇叭吱吱想、打…...

分享107个HTML电子商务模板,总有一款适合您

分享107个HTML电子商务模板,总有一款适合您 107个HTML电子商务模板下载链接:https://pan.baidu.com/s/1VW67Wjso1BRpH7O3IlbZwg?pwd0d4s 提取码:0d4s Python采集代码下载链接:采集代码.zip - 蓝奏云 Aplustemplates 购物模板…...

Barra模型因子的构建及应用系列三之Momentum因子

一、摘要 在之前的Barra模型系列文章中,我们已经初步讲解、构建了Size因子和Beta因子,并分别创建了对应的单因子策略。通过回测发现,其中Size因子的小市值效应具有很强的收益能力。而本篇文章将在该系列下进一步构建Momentum因子。 二、模型…...

8.2.1.3 索引合并优化

索引合并访问方法检索具有多个范围扫描的行,并将其结果合并为一个。此访问方法仅合并来自单个表的索引扫描,而不是跨多个表的扫描。合并可以生成其基础扫描的合并、交叉或交叉的合并。 可以使用索引合并的查询示例: SELECT * FROM tbl_name…...

水雨情在线小能手-雨量水位报警站

雨量水位报警站由水位探测器、雨量传感器、报警灯、扩音器、太阳能板和采集传输控制器组成。实时采集水位等级,三个水位探测器对应3个水位等级,当现场水面浸没相应探测器时,本机会实时发出语音报警,同时可发送相应的预警/报警等级…...

【蓝桥杯集训4】双指针专题(6 / 6)

目录 3768. 字符串删减 - 滑动窗口ac 799. 最长连续不重复子序列 - 滑动窗口 800. 数组元素的目标和 - 二分ac 2816. 判断子序列 - 双指针 1238. 日志统计 - 滑动窗口 1240. 完全二叉树的权值 - 双指针 1、前缀和 - 通过了 5/12个数据 2、双指针 3768. 字符串删减 -…...

文件流,gzip解压,压缩

目录 文件画布 写入 (空文件Foutnew File(Parent,entry.getName());)FileOutputStream outnew FileOutputStream(Fout);BufferedOutputStream Boutnew BufferedOutputStream(out);其他流量基于基础包装文件--文件流---字节流 顺序pbf一般是形成后再压缩目…...

在线开会,来开开圆桌会议吧~

圆桌会议应用场景:适合内部培训、部门会议亦或是头脑风暴等较为轻松的场景,有兴趣的朋友可以联系我来测试哦~~ 上图: 图:圆桌会议应用截图 在圆桌布局之下,企业可以将每一位参会者和座位绑定,1:1模拟线下圆…...

使用营销自动化的 7 大主要优势

对于大多数企业家来说,自动化已成为在数字时代简化业务的必要条件。那么,您可以采取哪些步骤来实施营销自动化呢? 1. 社交媒体整合 拥有吸引人的社交媒体形象是成功的先决条件。您不可能完成所有社交媒体营销任务,使用自动化软件&…...

【图像分类】基于PyTorch搭建GRU实现MNIST手写数字体识别(单/双向GRU,附完整代码和数据集)

写在前面: 首先感谢兄弟们的关注和订阅,让我有创作的动力,在创作过程我会尽最大能力,保证作品的质量,如果有问题,可以私信我,让我们携手共进,共创辉煌。 在https://blog.csdn.net/AugustMe/article/details/128969138文章中,我们使用了基于PyTorch搭建LSTM实现MNIST手…...

day14_oop_抽象_接口

今日内容 上课同步视频:CuteN饕餮的个人空间_哔哩哔哩_bilibili 同步笔记沐沐霸的博客_CSDN博客-Java2301 零、 复习昨日 一、作业 二、抽象 三、接口 零、 复习昨日 多态的好处: 扩展性强.加入新的功能,不需要改动代码降低代码耦合度(解耦合或者松耦合) 一、抽象类 1.1 抽象类…...

模式识别 | MATLAB实现DNN深度神经网络模式分类识别

分类预测 | MATLAB实现DNN全连接神经网络多特征分类预测 目录 分类预测 | MATLAB实现DNN全连接神经网络多特征分类预测基本介绍任务描述程序设计参考资料基本介绍 DNN的结构不固定,一般神经网络包括输入层、隐藏层和输出层,一个DNN结构只有一个输入层,一个输出层,输入层和输…...

ESP32读取DHT11温湿度数据

芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

在Ubuntu中设置开机自动运行(sudo)指令的指南

在Ubuntu系统中,有时需要在系统启动时自动执行某些命令,特别是需要 sudo权限的指令。为了实现这一功能,可以使用多种方法,包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法,并提供…...

Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级

在互联网的快速发展中,高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司,近期做出了一个重大技术决策:弃用长期使用的 Nginx,转而采用其内部开发…...

scikit-learn机器学习

# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...

pikachu靶场通关笔记19 SQL注入02-字符型注入(GET)

目录 一、SQL注入 二、字符型SQL注入 三、字符型注入与数字型注入 四、源码分析 五、渗透实战 1、渗透准备 2、SQL注入探测 (1)输入单引号 (2)万能注入语句 3、获取回显列orderby 4、获取数据库名database 5、获取表名…...

LLaMA-Factory 微调 Qwen2-VL 进行人脸情感识别(二)

在上一篇文章中,我们详细介绍了如何使用LLaMA-Factory框架对Qwen2-VL大模型进行微调,以实现人脸情感识别的功能。本篇文章将聚焦于微调完成后,如何调用这个模型进行人脸情感识别的具体代码实现,包括详细的步骤和注释。 模型调用步骤 环境准备:确保安装了必要的Python库。…...

WebRTC调研

WebRTC是什么,为什么,如何使用 WebRTC有什么优势 WebRTC Architecture Amazon KVS WebRTC 其它厂商WebRTC 海康门禁WebRTC 海康门禁其他界面整理 威视通WebRTC 局域网 Google浏览器 Microsoft Edge 公网 RTSP RTMP NVR ONVIF SIP SRT WebRTC协…...

Python第七周作业

Python第七周作业 文章目录 Python第七周作业 1.使用open以只读模式打开文件data.txt,并逐行打印内容 2.使用pathlib模块获取当前脚本的绝对路径,并创建logs目录(若不存在) 3.递归遍历目录data,输出所有.csv文件的路径…...

matlab模糊控制实现路径规划

路径规划是机器人和自动驾驶系统中的重要问题之一,它涉及确定如何在给定环境中找到最优路径以达到特定目标。模糊控制是一种有效的控制方法,可以应用于路径规划问题。 路径规划算法的目标是在避免障碍物的情况下,找到机器人或车辆从起点到终…...