论文精读--InstructGPT

news2024/11/15 12:38:59

模型效果取决于数据效果,但在精细度上控制不够,只是大力出奇迹,这样有很大的问题:

(1)数据量太多或者没有这方面的数据,模型学不会怎么办

(2)安全性问题,模型输出一些不该输出的东西

所以InstructGPT就是标一点数据然后把模型微调一下

Abstract

Making language models bigger does not inherently make them better at following a user’s intent. For example, large language models can generate outputs that are untruthful, toxic, or simply not helpful to the user. In other words, these models are not aligned with their users. In this paper, we show an avenue for aligning language models with user intent on a wide range of tasks by fine-tuning with human feedback. Starting with a set of labeler-written prompts and prompts submitted through the OpenAI API, we collect a dataset of labeler demonstrations of the desired model behavior, which we use to fine-tune GPT-3 using supervised learning. We then collect a dataset of rankings of model outputs, which we use to further fine-tune this supervised model using reinforcement learning from human feedback. We call the resulting models InstructGPT. In human evaluations on our prompt distribution, outputs from the 1.3B parameter InstructGPT model are preferred to outputs from the 175B GPT-3, despite having 100x fewer parameters.Moreover, InstructGPT models show improvements in truthfulness and reductions in toxic output generation while having minimal performance regressions on public NLP datasets. Even though InstructGPT still makes simple mistakes, our results show that fine-tuning with human feedback is a promising direction for aligning language models with human intent.

翻译:

增大语言模型的规模并不一定能使其更好地遵循用户的意图。例如,大型语言模型可能生成不真实、有毒或对用户毫无帮助的输出。换句话说,这些模型与用户并不一致。在这篇论文中,我们展示了一种通过使用人类反馈进行微调的方式来使语言模型与用户意图保持一致的方法,这适用于广泛的任务。从标注者编写的提示和通过 OpenAI API 提交的提示开始,我们收集了标注者展示所需模型行为的演示数据集,并使用这些数据集通过监督学习来微调 GPT-3。然后,我们收集了一个模型输出排名的数据集,用这些数据通过人类反馈的强化学习来进一步微调这个监督模型。我们将由此产生的模型称为 InstructGPT。在我们提示分布上的人类评估中,尽管参数数量减少了 100 倍,但1.3B参数的 InstructGPT 模型的输出还是优于 175B 参数的 GPT-3 的输出。此外,InstructGPT 模型在真实性方面有所提高,在生成有毒输出方面有所减少,同时在公共 NLP 数据集上的性能回退最小。尽管 InstructGPT 仍然会犯一些简单的错误,但我们的结果显示,使用人类反馈进行微调是将语言模型与人类意图保持一致的一个有希望的方向。

总结:

在人类的反馈上做微调

对输出的概率分布采样打标谁更好,排序,然后丢进强化学习学习策略

Introduction

训练时的目标只是预测文本的下一个词,和我们的使用它的意图还是有不一样的

使用基于人类反馈的强化学习(RLHF)

step1:

首先找一些人来写各种各样的问题,称为prompt,这里是:向6岁的小孩解释什么是月亮

然后让人来写出一个答案,这里是:一些人去了月球....

把问题和答案拼成一段话,微调GPT3

在人类标注的数据上微调出来的模型叫作SFT,有监督的微调

但是人写答案很贵,所以

step2:

将问题喂给SFT,对它生成的概率分布对应的答案让人去排序,将排序结果结果丢给强化学习模型训练,使其对答案打的分数满足排序的顺序

step3:

根据RM的打分结果,继续优化step1的SFT

Labelers significantly prefer InstructGPT outputs over outputs from GPT-3

InstructGPT models show improvements in truthfulness over GPT-3

InstructGPT shows small improvements in toxicity over GPT-3, but not bias

We can minimize performance regressions on public NLP datasets by modifying our RLHF fine-tuning procedure

Our models generalize to the preferences of “held-out” labelers that did not produce any training data

Public NLP datasets are not reflective of how our language models are used

InstructGPT models show promising generalization to instructions outside of the RLHF finetuning distribution

InstructGPT still makes simple mistakes

与GPT-3的输出相比,标注者明显更喜欢InstructGPT的输出

与GPT-3相比,InstructGPT模型的真实性有所提高

与GPT-3相比,InstructGPT在毒性方面略有改善,但偏见上没有太多提升

通过修改我们的RLHF微调过程来减少公共NLP数据集上性能的下降

我们的模型推广到没有产生任何训练数据的“搁置”标注者的偏好

公开的NLP数据集不能反映我们的语言模型是如何被使用的,因为数据分布不一致

InstructGPT模型对RLHF调优分布之外的指令显示出有希望的泛化

InstructGPT仍然会犯一些简单的错误

Methods and experimental details

Models

Supervised fine-tuning (SFT)

把GPT3在标注好的prompt上重新训练一次,1w3的数据量少,会过拟合,但是不要紧,因为是用来初始化后面的模型而非直接应用,反而还会有点帮助

Reward modeling (RM)

Reinforcement learning (RL)

用PPO算法,也就是对这个函数梯度下降

Discussion

The cost of increasing model alignment is modest relative to pretraining

InstructGPT三个模型的训练成本比预训练模型的成本低很多

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

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

相关文章

c语言:利用随机函数产生20个[120, 834] 之间互不相等的随机数, 并利用选择排序法将其从小到大排序后输出(每行输出5个)

利用随机函数产生20个[120, 834] 之间互不相等的随机数&#xff0c; 并利用选择排序法将其从小到大排序后输出&#xff08;每行输出5个&#xff09; 代码如下&#xff1a; #include <stdio.h> #include <time.h> #include <stdlib.h> int shenchen(int a[…

信息系统项目管理师0126:输入(8项目整合管理—8.6管理项目知识—8.6.1输入)

点击查看专栏目录 文章目录 8.6 管理项目知识8.6.1 输入8.6 管理项目知识 管理项目知识是使用现有知识并生成新知识,以实现项目目标并且帮助组织学习的过程。管理项目过程的主要作用: 利用已有的组织知识来创造或改进项目成果;使当前项目创造的知识可用于支持组织运营和未来…

解决Vscode打开新文件会覆盖旧文件

现象&原因 现象&#xff1a;Vscode左侧点击新文件&#xff0c;右侧重用预览编辑器&#xff0c;新文件会替换旧文件原因&#xff1a; 默认单击是预览编辑器显示&#xff0c;双击是保持打开状态 解决方案 以下两种都可以 设置里搜索 Enable Preview 默认是勾选状态&#x…

京东科技市场与平台运营中心PMO负责人徐雪娇受邀为第十三届中国PMO大会演讲嘉宾

全国PMO专业人士年度盛会 京东集团京东科技市场与平台运营中心PMO负责人徐雪娇女士受邀为PMO评论主办的2024第十三届中国PMO大会演讲嘉宾&#xff0c;演讲议题为“AI数字人项目全过程管理实践分享”。大会将于6月29-30日在北京举办&#xff0c;敬请关注&#xff01; 议题简要&…

springboot vue 开源 会员收银系统 (4) 分类及商品模块开发

前言 完整版演示 前面我们对会员系统 门店模块开发的开发 完成了门店的基础管理 并与会员相关联 下面我们将开发门店的分类及商品管理 我们分析以下几个重点 分类可以随时禁用不用单独下架某个商品便于管理商品添加应该有图片上传商品设置会员价和散客价便于营销商品应该参与…

解决updateByExample时属性值异常的问题(部分属性值没有使用占位符?进行占位,而是变成了属性的名称)

目录 场景简介代码片断实体类 报错信息排查原因解决测试过程解决方案 场景简介 1、程序将mybatis框架升级为3.5.9版本后执行updateByExample方法时报错 代码片断 Condition condition new Condition(MbCcsSessionConfig.class); condition.createCriteria().andEqualTo(&quo…

[STM32-HAL库]Flash库-HAL库-复杂数据读写-STM32CUBEMX开发-HAL库开发系列-主控STM32F103C6T6

目录 一、前言 二、实现步骤 1.STM32CUBEMX配置 2.导入Flash库 3.分析地址范围 4.找到可用的地址 5.写入读取普通数据 6.写入读取字符串 6.1 存储相关信息 6.2 存取多个参数 三、总结及源码 一、前言 在面对需要持久化存储的数据时&#xff0c;除了挂载TF卡&#xff0c;我们…

【线段图案】

描述 KiKi学习了循环&#xff0c;BoBo老师给他出了一系列打印图案的练习&#xff0c;该任务是打印用“*”组成的线段图案。 输入描述&#xff1a; 多组输入&#xff0c;一个整数&#xff08;1~100&#xff09;&#xff0c;表示线段长度&#xff0c;即“*”的数量。 输出描述…

.NET Core Web Api Swagger运行异常

遇到的问题 因为新增了一个控制器方法&#xff0c;从而导致在运行Swagger的时候直接报错&#xff0c;异常如下&#xff1a; SwaggerGeneratorException: Conflicting method/path combination "POST api/UserOperationExample" for actions - WebApi.Controllers.Us…

HCIP-Datacom-ARST自选题库__MPLS简答【4道题】

1.如图所示&#xff0c;R1、R2、R3、R4处于同一个MPLS域&#xff0c;且设备之间采用LDP分配MPLS标签&#xff0c;R4为4.4.4.0/24这条FEC的EgressLSR。若想实现R1访问4.4.4.0/24时&#xff0c;R4不需要查询标签表但能够了解该数据的转发优先级&#xff0c;则R3对于该FEC的出标签…

Linux中vim的基本使用

目录 vim中的三种模式以及基本操作命令模式(默认模式)插入模式底行模式 命令模式下的命令底行模式下的命令 vim是Linux和Unix环境下最基本的文本编辑器&#xff0c;类似于windows上的记事本 vim和Visual studio相比&#xff0c;vim并不集成&#xff0c;vim只能用来写代码 VS把写…

第六节 自动装配源码理解

tips&#xff1a;不同版本代码实现有差异。 前面两章了解的流程&#xff0c;就是 SpringBoot 自动转配的核心。 一、自动装配 1.1 什么是 SpringBoot 自动装配? 自动装配是 Spring 框架用来减少配置的显式需求而引入的一个特性&#xff0c;该特性通过 Autowired或者Resource…

Unity Terrain Adjust插件使用教程

一、Terrain Adjust插件介绍 二、插件下载以及导入 1、官方下载地址&#xff1a;Terrain Adjust 2、积分下载地址&#xff1a;Terrain Adjust 下载好之后&#xff0c;回到Unity当中&#xff0c;导入下载好之后的unitypackage包 三、插件使用 1、在使用之前一定要在场景中新…

KuberSphere 安装kubernates

准备机器 最少3台机器 centos Linux 内核&#xff1a;官方建议 3.10 以上 uname -rcontrol 一台 配置 2c 4g worker 二台 配置 2c 4g 3台设备需要用不同的hostname&#xff0c;需要提前修改 hostnamectl set-hostname <新的主机名> # 修改后执行一下命令刷新一下 su -…

【Android】联系人列表补充

真布局--叠起来垂直管 效果展示 部分代码&#xff08;在activity_main&#xff09;里面 <FrameLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"…

自动驾驶决策规划——坐标转换

以下内容来自b站up主忠厚老实的老王&#xff0c;视频链接&#xff1a;自动驾驶决策规划算法序章 总纲与大致目录_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1hP4y1p7es/?spm_id_from333.999.0.0&vd_sourced36e625f376908cfa88ef5ecf2fb0ed8侵删。 决策规划算法…

解除网页禁止选择

控制台输入以下命令 复制&#xff1a;javascript:void(document.body.οncοpy) 可选&#xff1a;javascript:void(document.body.onselectstart) 拖拉&#xff1a;javascript:void(document.body.οnmοuseup)

SecureFX 9.5.2 SecureCRT 9.5.2 官方下载

SecureCRT是一款由VanDyke Software公司开发的终端仿真软件&#xff0c;它提供了类似于Telnet和SSH等协议的远程访问功能。SecureCRT专门为网络管理员、系统管理员和其他需要保密访问网络设备的用户设计。 SecureCRT具有以下特点&#xff1a; 安全性&#xff1a;SecureCRT支持…

什么是安全左移如何实现安全左移

文章目录 一、传统软件开发面临的安全挑战二、什么是安全左移四、安全左移与安全开发生命周期&#xff08;SDL&#xff09;三、安全左移对开发的挑战五、从DevOps到DevSecOps六、SDL与DevSecOps 一、传统软件开发面临的安全挑战 传统软件开发面临的安全挑战主要包括以下几个方…

Stanford-Coursera 算法Week1 笔记

题外话&#xff1a;全文免费放心食用&#xff0c;作者在此求个 三连关注 1. Integer Multiplication&#xff08;引入&#xff09; &#xff08;很小的时候我们就学过&#xff1a;两个数字相乘的算法——将输入(两个数字)转换为输出(它们的乘积)的一组定义良好的规则&#xf…