InstructGPT论文笔记

news2024/9/27 21:26:51

论文链接:https://arxiv.org/pdf/2203.02155.pdf

1 摘要

做的事:
1、标注了数据,问题和答案写出来,然后训练模型
2、收集数据集,排序模型的输出,使用强化学习训练这个排序的过程

效果层面来说:

  • 1.3Billions的参数 InstructGPT Model比175Billions参数的GPT3效果更好
  • 降低了模型输出无效、有害信息

2 导论

2.1 问题

训练语言模型的时候,即使给定了例子来遵循人类的指令,但是也会出现不好的例子,那是因为目标函数的问题
目标:

  • helpful
  • honest
  • harmles

2.2 方法

使用RLHF
在这里插入图片描述
step1 在gpt3进行标注数据的微调,使用上下文,预测下一个词语,SFT
step2 给生成(beam search)的答案进行标注喜好, 排序,使用RM训练(prompt+答案=》分数),分数的排序满足,人类的排序
step3 重新训练SFT,满足生成出来的结果满足人类排序的结果
第一步的难点在于:生成式的标注难度和成本高于,判别式的标注

2.3 结果

在这里插入图片描述
更强
在这里插入图片描述
更可靠
在这里插入图片描述
无毒、无偏见
在这里插入图片描述
最小化减少对共有NLP任务的影响
在这里插入图片描述
生成的内容更满足人类的喜好,找人来判断的
在这里插入图片描述
公共的NLP数据集并不能反映出我们的语言模型的使用方式
在这里插入图片描述
模型有一定的泛化性,即使没见过的任务,也是能根据先验知识,进行很好的生成
在这里插入图片描述

3 方法和实验细节

3.1 顶层设计

Step 1: Collect demonstration data, and train a supervised policy.
Step 2: Collect comparison data, and train a reward model.
Step 3: Optimize a policy against the reward model using PPO
2/3步会反复迭代

3.2 数据集

在这里插入图片描述
保证任务的多样性、一个指令,多样的回答下命令也要多、已经希望构成的任务,以上数据训练了一个模型,然后放在Playground中,试运行,收集问题,根据用户ID进行划分train\dev\test,同时过滤掉了PII.
上线后产生了三个不同的数据集:

  • SFT,直接写答案 13k样本
  • RM数据集,ranking output 33K
  • PPO, 没有标注,直接作为RLHF进行FT 31K
  • 在这里插入图片描述

3.3 任务

在这里插入图片描述

3.4 人类数据收集

招人 40个人的团队
筛选人的标准
标注的准则:helpfulness
评估的准则:truthfulness and harmlessness
标注的一致性:72.6±1.5%、77±3%

3.5 模型

3.5.1 SFT

模型用的是:GPT3
16epochs, 发现1个epochs就overfitting了,这个模型只是在初始化用

3.5.2 RM

原本的SFTmodel, 最后应该接一个softmax, 得到一个概率最大的词语,现在是,不用这个softmax,改为linear,到一个标量上,输入是:prompt+response
model是6B的model,大的模型不稳定

loss用的是pair wise ranking loss
在这里插入图片描述
拿出一对respond,如果yw的分数大于yl,那么最大化这个损失函数,用的是logistics regression,
每个prompt生成9个答案,C(9,2)=36对这样的数据集来进行构造损失. r是6B的GPT3
改了损失函授之后,过拟合的现象稍微缓和点了

3.5.3 RL

PPO算法
在这里插入图片描述
模型叫:

  • pai(RL,SIGMA) RL policy,强化学习的时候采样的y会变化,就是强化选择的过程,y生成多个,并进行排序

  • 在这里插入图片描述

  • 用上了KL散度,评估函数的相似度

  • 在这里插入图片描述

  • GPT3训练的语言模型的损失函数,保证原本数据集的性能不要下降

  • 在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/381946.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

思迅软件端口不通导致软件和软锁报错的问题

一、端口不通导致软件和软锁报错的问题 问题说明:打开软件提示到:xxx.xxx.xxx.xxx失败! 处理步骤1: 假设软锁服务器IP为192.168.0.1,分别在服务器本机和客户端电脑测试软锁服务: 在服务器的浏览器中访问地址: http:/…

ChatGPT(GPT3.5) OpenAI官方API正式发布

OpenAI社区今天凌晨4点多发送的邮件,介绍了ChatGPT官方API的发布。官方介绍文档地址为“OpenAI API”和“OpenAI API”。 ChatGPT(GPT3.5)官方API模型名称为“gpt-3.5-turbo”和“gpt-3.5-turbo-0301”。API调用价格比GPT text-davinci-003模型便宜10倍。调用费用为…

补档:红黑树代码实现+简略讲解

红黑树讲解和实现1 红黑树介绍1.1 红黑树特性1.2 红黑树的插入1.3 红黑树的删除2 完整代码实现2.1 rtbtree.h头文件2.2 main.c源文件1 红黑树介绍 红黑树( Red-Black tree,简称RB树)是一种自平衡二叉查找树,是计算机科学中常见的一种数据结构&#xff0c…

python画直方图,刻画数据分布

先展示效果 准备一维数据 n 个数据元素计算最大值,最小值、均值、标准差、以及直方图分组 import numpy as np data list() for i in range(640):data.append(np.random.normal(1)) print(data)z np.histogram(data, bins64) print(list(z[0])) ### 对应 x 轴数据…

【C语言】LeetCode 27. 移除元素 的n种解法

文章目录题目描述解法一 快慢下标解法二 数组移位题目描述 OJ链接:27. 移除元素 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(…

帮助100w人成功入职的软件测试面试常见问题以及答案

测试面试题怎么来设计测试方案根据测试需求(包括功能需求和非功能性需求),识别测试要点,识别测试环境要求,安排测试轮次,根据项目计划和开发计划做整体的测试安排。被测试的特性:通过对需求规格…

MyBatis - 10 - 处理多对一映射关系 + MyBatis延时加载

文章目录1.准备工作1.1 建表1.2 创建Maven项目1.2.1 在pom文件中,修改打包方式为jar包,导入依赖1.2.2 创建日志配置文件和jdbc.properties1.2.3 创建Mybatis核心配置文件1.2.4 创建实体类以及实体类之间的关系1.2.5 创建SqlSession工具类2.为什么要单独处…

Ubuntu配置静态IP的方法

Ubuntu配置静态IP的方法前言一、查看虚机分配的网卡IP二、查看网卡的网关IP三、配置静态IP1.配置IPv4地址2.执行netplan apply使改动生效3.配置的网卡未生效,修改50-cloud-init.yaml文件解决4.测试vlan网络通信总结前言 Ubuntu18.04 欧拉环境 vlan网络支持ipv6场景…

树状数组讲解

树状数组 文章目录树状数组引入例题AcWing241.楼兰图腾思路代码AcWing 242. 一个简单的整数问题思路代码AcWing 244. 谜一样的牛思路代码总结引入 树状数组主要维护的是这样一个数据结构: tr[x]表示以x为终点的长度为lowbit(x)的前缀和 对于树状数组主要就两种操作 …

机器学习系统架构的10个要素

这是一个AI赋能的时代,而机器学习则是实现AI的一种重要技术手段。那么,是否存在一个通用的通用的机器学习系统架构呢?在老码农的认知范围内,Anything is nothing,对系统架构而言尤其如此。但是,如果适用于大…

风力发电机组浪涌保护器安全防护方案

风机的庞大与危险高空作业注定了其在基建和维护中不易操作,风机设备的主电源、过程控制、网络与通讯、现场设备需要高等级的防雷浪涌保护器冲击保护,提高系统及设备的可靠性和可用性。风电场的主要发电设备风力发电机组“大风车”是风电场的主要发电设备…

【数据分析】缺失数据如何处理?pandas

本文目录1. 基础概念1.1. 缺失值分类1.2. 缺失值处理方法2. 缺失观测及其类型2.1. 了解缺失信息2.2. 三种缺失符号2.3. Nullable类型与NA符号2.4. NA的特性2.5. convert_dtypes方法3. 缺失数据的运算与分组 3.1. 加号与乘号规则3.2. groupby方法中的缺失值4. 填充与剔除4.1. fi…

什么是让ChatGPT爆火的大语言模型(LLM)

什么是让ChatGPT爆火的大语言模型(LLM) 更多精彩内容: https://www.nvidia.cn/gtc-global/?ncidref-dev-876561 文章目录什么是让ChatGPT爆火的大语言模型(LLM)大型语言模型有什么用?大型语言模型如何工作?大型语言模型的热门应用在哪里可以找到大型语言…

王道操作系统课代表 - 考研计算机 第一章 计算机概述 究极精华总结笔记

本篇博客是考研期间学习王道课程 传送门 的笔记,以及一整年里对 操作系统 知识点的理解的总结。希望对新一届的计算机考研人提供帮助!!! 关于对 “计算机概述” 章节知识点总结的十分全面,涵括了《操作系统》课程里的全…

(五十七)插入数据时到底是如何维护好不同索引的B+树的?

之前我们已经给大家彻底分析清楚了MySQL数据库的索引结构了,大家都知道不同索引的结构是如何的,大致是如何建立的,然后搜索的时候是如何根据不同的索引去查找数据的。 那么今天我们来给大家彻底讲清楚,你在插入数据的时候&#x…

JavaSE学习笔记day17

零、 复习昨日 File: 通过路径代表一个文件或目录 方法: 创建型,查找类,判断类,其他 IO 输入& 输出字节&字符 try-catch代码 一、作业 给定路径删除该文件夹 public static void main(String[] args) {deleteDir(new File("E:\\A"));}// 删除文件夹public s…

openjdk:8镜像中安装工具命令的方法

文章目录前言一、获取openjdk:8环境1.下载并运行openjdk:82.获取当前镜像的基础环境信息3.更换源并安装软件二、更新Dockerfile1.增加命令2.尝试构建3.测试镜像是否可用总结前言 记录一下openjdk:8镜像安装命令的方法 同事使用openjdk:8作为基础镜像构建业务镜像,但…

蚂蚁CTO线五年测试开发,年后被优化,跟大家唠几句

夙兴夜寐,回顾从毕业出来到现在的这五年,也是在这里给大家抛砖引玉了。先简单交代一下背景吧,某不知名 985 的本硕,17 年毕业加入蚂蚁金服,以“人员优化”的名义无情被裁员,之后跳槽到了有赞,一…

软件测试的主要工作内容是什么

平时说起程序员印象中大都是做Java、做前端、做后端,用着非常晦涩难懂的语言。在电脑前哐哐哐,没一会满屏代码显现出来。然而程序员并不全是印象中这样,还有一部分:他们不常写代码,主要去检查代码,是不是出…

人工智能前置研究-神经元/离子通道

专栏目录: 高质量文章导航_GZVIMMY的博客-CSDN博客 前言: 《生命是什么》:来自有序中的有序,非周期性晶体!有机体内在生命及其外部世界的相互作用,都能被精确的定律所概述,但前提是它自身必须有一个巨大结构,分子数目太少的话,定律也就不准确了。 《神秘的量子生命…