论文阅读——InstructGPT

news2024/9/22 17:41:19

论文:Training_language_models_to_follow_instructions_with_human_feedback.pdf (openai.com)

github:GitHub - openai/following-instructions-human-feedback

        

        将语言模型做得更大并不能从本质上使它们更好地遵循用户的意图。例如,大型语言模型可能生成不真实、有害或对用户毫无帮助的输出。换句话说,这些模型与其用户不一致(models are not aligned with their users)。这是因为许多大语言模型的目标是从互联网上预测网页上的下一个token——与“帮助和安全地遵循用户的指示”的目标不同。

        这既包括明确的意图,如遵循指示,也包括隐含的意图,例如保持真实,不带偏见、有毒或其他有害因素。

        语言模型应该是helpful,honest,harmless,有帮助、诚实、无害的。

一、方法:

        收集一个人工手写的提交到openai的prompts和一些人工写的prompts的理想行为的数据集,并使用这些数据集有监督训练基线模型;然后收集人类对openai的API在一个更大prompts输出结果比较的数据集,使用这些数据集训练一个奖励模型来预测标注者会喜欢模型的哪一个输出。最后使用这个奖励模型作为奖励函数并微调基线模型,使用PPO算法来最大化奖励。如下图:

step1:收集示范数据,并用来做监督策略

        有一写输入提示分布,标注人员为这些提示提供模型理想输出。然后在使用监督学习在预训练GPT3上微调。

step2:收集比较数据,并训练奖励模型

        对于模型输出,标注人员对这些输出做比较,标出最喜欢的输出,然后训练奖励(RM)模型来预测人类偏好的输出。

step3:使用PPO针对奖励模型优化策略

        使用RM的输出作为奖励,使用PPO算法对监督策略进行微调,以优化该奖励策略。

二、数据集:

prompt dataset:提示数据集主要由提交给OpenAI API的文本提示组成,也有标注者自己写的。

        InstructGPT模型最早版本的提示是标注者自己写的,这是因为我们需要一个类似指令的提示的初始来源来引导进程,而这些类型的提示并不经常提交给API上的常规GPT-3模型。

        早期自己写的提示有三类:

        1、Plain 简单:任意的任务,同时确保任务具有足够的多样性

        2、Few-shot:给出一条指令,以及该指令的多个查询/响应对

        3、User-based:在OpenAI API的等待列表应用程序中声明了许多用例。我们要求标注人员给出与这些用例相对应的提示。

        从这些提示(提交给OpenAI API的文本提示和标注者自己写的)产生三个微调阶段的数据集:SFT(Supervised fine-tuning) dataset(约13K提示,从API和手写获得),RM dataset(约33K提示,从API和手写获得),PPO dataset(约31K提示,只从API获得)。

        提示分布和例子说明如下表:

三、任务:

        1、显示的任务(如:“写一个关于聪明的青蛙的故事”);

        2、隐式任务(如:给两个青蛙的故事,提示模型写一个新的故事);

        3、续写(如:提供一个故事的开头)

四、模型:

1、Supervised fine-tuning (SFT):

        根据RM分数选择最终模型

2、Reward modeling (RM):

        把SFT模型最终unembedding层去掉。把提示和响应作为输入,输出奖励值。使用6B RMs。RM训练时将比较作为标签,对4-9个输出进行比较,产生\binom{k}{2}个比较,将每个提示的\binom{k}{2}个比较作为一个训练批次,既不过拟合也能减少计算量(直接将所有比较打乱一起训练会导致过拟合)。

        损失函数:

        最后对奖励模型使用一个偏差归一化,以使得标注者示范例子在做RL前的平均分数是0。

3、Reinforcement learning (RL)

        使用PPO算法优化SFT模型。

        PPO:为每个token添加来自SFT模型的KL惩罚来缓和RM模型的过度优化,值函数从RM模型初始化。

        PPO-ptx:将预训练模型梯度混合进PPO梯度

        损失函数:

五、评价:

        helpful, honest, and harmless.

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

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

相关文章

共享股东模式:规则、优势与亮点

在当今高度信息化的时代,共享经济正在改变人们的生活方式。其中,共享股东模式作为一种新型的商业模式,正在受到越来越多企业的关注。本文将对共享股东模式的规则、优势和亮点进行详细介绍。 一、共享股东模式规则 共享股东模式是一种将闲置资…

接口自动化测试要做什么?一文3个步骤带你成功学会!

先了解下接口测试流程: 1、需求分析 2、Api文档分析与评审 3、测试计划编写 4、用例设计与评审 5、环境搭建(工具) 6、执行用例 7、缺陷管理 8、测试报告 了解了接口测试的工作流程,那"接口自动化测试"怎么弄&#xff1…

山西电力市场日前价格预测【2023-10-29】

日前价格预测 预测说明: 如上图所示,预测明日(2023-10-29)山西电力市场全天平均日前电价为318.01元/MWh。其中,最高日前电价为537.50元/MWh,预计出现在18:15。最低日前电价为0.00元/MWh,预计出…

vue项目package.json与package-lock.json作用及区别

package.json文件介绍和使用 运行项目,命令行: npm run dev “dependencies” 运行依赖,需引入页面使用 “devDependencies” 开发依赖(生产环境使用),只是开发阶段需要 我们每次新建一个项目的时候会发现在项目中会有这么俩个相似的文件&am…

Go语言标准输入

文章目录 Go语言标准输入函数使用 Go语言标准输入 函数 Scan // 使用stdin读取内容,读取的内容以空白(换行也属于空白)分隔,赋值给函数参数。返回读取的个数和错误 func Scan(a ...interface{}) (n int, err error)Scanf // 和…

《算法通关村—最大小栈问题解析》

《算法通关村—最大小栈问题解析》 最小栈 描述 leetCode 155: 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 实现最小栈 MinStack() 初始化堆栈对象。 void push(int val) 将元素val推入堆栈。 void pop()…

计算线阵相机 到 拍摄产品之间 摆放距离?(隐含条件:保证图像不变形)

一物体被放置在传送带上,转轴的直径为100mm。已知线阵相机4K7u(一行共4096个像素单元,像素单元大小7um),镜头35mm,编码器2000脉冲/圈。保证图像不变形的条件下,计算相机到产品之间 摆放距离&…

Docker的架构与自制镜像的发布

一. Docker 是什么 Docker与自动化测试及其测试实践 大家都知道虚拟机吧,windows 上装个 linux 虚拟机是大部分程序员的常用方案。公司生产环境大多也是虚拟机,虚拟机将物理硬件资源虚拟化,按需分配和使用,虚拟机使用起来和真实操…

[计算机提升] Windows系统各种开机启动方式介绍

1.14 开机启动 在Windows系统中,开机启动是指开启电脑后,自动运行指定的程序或服务的技术。一些程序或服务需要在开机后自动启动,以便及时响应用户操作,比如防安防软件、即时通信工具、文件同步软件等。 同时,一些系统…

5.OsgEarth加载地形

愿你出走半生,归来仍是少年! 在三维场景中除了使用影像体现出地貌情况,还需要通过地形体现出地势起伏,还原一个相对真实的三维虚拟世界。 osgEarth可通过直接加载Dem数据进行场景内的地形构建。 1.数据准备 由于我也没有高程数据&#xff0c…

在Centos7中配置NIS的详细过程

在Centos7中配置NIS的详细过程 原理 NIS(Network Information Service) 在有多台linux服务器的环境中,且一台linux服务器的账号又有很多且可能会相同,所以会出现理员很难管理的现象。NIS的主要功能是对主机账号系统等系统信息提供集中的管理。 当NIS客户…

C# 图解教程 第5版 —— 第10章 语句

文章目录 10.1 什么是语句(*)10.2 表达式语句10.3 控制流语句10.4 if 语句(*)10.5 if ... else 语句(*)10.6 while 循环(*)10.7 do 循环(*)10.8 for 循环10.8…

centos7虚拟机部署苍穹私有云环境记录

物理机建议16G内存以上,不然安装gpass过程中带不动虚拟机 步骤1:迅雷下载centos7.9镜像文件,并创建虚拟机,手动安装 http://ftp.sjtu.edu.cn/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-DVD-2009.iso 后面安装gpass时会有校验…

一文1800字解读性能指标与性能分析

性能测试监控关键指标: 1、系统指标:与⽤户场景与需求直接相关的指标 2、服务器资源指标:硬件服务器的资源使⽤情况的指标 3、JAVA应⽤ : JAVA应⽤程序在运⾏时的各项指标 4、数据库:数据库服务器运⾏时需要监控的指标 5、压测机资源指标:测试机在模拟⽤户负载时的资源使⽤…

经典目标检测神经网络 - RCNN、SSD、YOLO

文章目录 1. 目标检测算法分类2. 区域卷积神经网络2.1 R-CNN2.2 Fast R-CNN2.3 Faster R-CNN2.4 Mask R-CNN2.5 速度和精度比较 3. 单发多框检测(SSD)4. YOLO 1. 目标检测算法分类 目标检测算法主要分两类:One-Stage与Two-Stage。One-Stage与…

python3+requests+unittest实战详解(一)

1、环境准备 python3 pycharm编辑器 2、框架目录展示 (该套代码只是简单入门,有兴趣的可以不断后期完善) (1)run.py主运行文件,运行之后可以生成相应的测试报告,并以邮件形式发送&#xff1…

如何写好测试用例,看完即会

目的 测试用例这个名词,相信各位从业者已经是熟悉的不能再熟悉了,无论你是从事何种行业,只要是软件测试从业者,测试用例始终贯穿于我们的日常工作中,今天我们就针对设计测试用例的方方面面进行一个详细的介绍。 写好黑…

【华为HCIP | 职业认证考试】821每日一刷

个人名片: 🐼作者简介:一名大三在校生,喜欢编程🎋 🐻‍❄️个人主页🥇:落798. 🐼个人WeChat:hmmwx53 🕊️系列专栏:🖼️ 零…

STM32 ADC数模转换器

STM32 ADC数模转换器 ADC简介 ADC(Analog-Digital Converter)模拟-数字转换器 ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁 STM32主要是数字电路,数字电路只有高低电平&#xf…

计算机网络重点概念整理-第四章 网络层【期末复习|考研复习】

第四章 网络层 【期末复习|考研复习】 计算机网络系列文章传送门: 第一章 计算机网络概述 第二章 物理层 第三章 数据链路层 第四章 网络层 第五章 传输层 第六章 应用层 第七章 网络安全 计算机网络整理-简称&缩写 文章目录 第四章 网络层 【期末复习|考研复习…