论文阅读——InstructGPT

论文: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.mzph.cn/news/123853.shtml

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

相关文章

光学仿真|优化汽车内部照明体验

当我们谈论优化人类感知的内部照明时,我们实际上指的是两个重点领域:安全性和驾驶员体验。如果内部照明可以提供尽可能最佳的体验,驾驶员则能够更好地应对颇具挑战性或意外的驾驶状况,并且减轻疲劳感。除了功能优势外,…

Vue 3 响应式对象:ref 和 reactive 的使用和区别

🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是尘缘,一个在CSDN分享笔记的博主。📚📚 👉点击这里,就可以查看我的主页啦!👇&#x…

【深度学习】吴恩达课程笔记(二)——浅层神经网络、深层神经网络

笔记为自我总结整理的学习笔记,若有错误欢迎指出哟~ 笔记链接 【深度学习】吴恩达课程笔记(一)——深度学习概论、神经网络基础 吴恩达课程笔记——浅层神经网络、深层神经网络 四、浅层神经网络1.双层神经网络表示2.双层神经网络的前向传播第一层前向传播第二层前…

Java进阶(Set)——面试时Set常见问题解读 结合源码分析

前言 List、Set、HashMap作为Java中常用的集合,需要深入认识其原理和特性。 本篇博客介绍常见的关于Java中Set集合的面试问题,结合源码分析题目背后的知识点。 关于List的博客文章如下: Java进阶(List)——面试时L…

mac电脑怎么永久性彻底删除文件?

Mac老用户都知道在我们查看Mac内存时都会发现有一条“其他文件”占比非常高,它是Mac储存空间中的“其他”数据包含不可移除的移动资源,如,Siri 语音、字体、词典、钥匙串和 CloudKit 数据库、系统无法删除缓存的文件等。这些“其他文件”无用…

frp-内网穿透部署-ubuntu22服务器-windows server-详细教程

文章目录 1.下载frp2.配置服务器2.1.配置frps.ini文件2.2.设置服务文件2.3.设置开机自启和服务操作2.4.后台验证2.5.服务器重启 3.配置本地window3.1.frpc配置3.2.添加开机计划启动3.3.控制台启动隐藏窗口 4.centos防火墙和端口3.1.开放端口3.2.查看端口 5.关闭进程5.1.杀死进程…

Elasticsearch:标量量化 101 - scalar quantization 101

作者:BENJAMIN TRENT 什么是标量量化以及它是如何工作的? 大多数嵌入模型输出 float32 向量值。 虽然这提供了最高的保真度,但考虑到向量中实际重要的信息,这是浪费的。 在给定的数据集中,嵌入永远不需要每个单独维度…

一体化模型图像去雨+图像去噪+图像去模糊(图像处理-图像复原-代码+部署运行教程)

本文主要讲述了一体化模型进行去噪、去雨、去模糊,也就是说,一个模型就可以完成上述三个任务。实现了良好的图像复原功能! 先来看一下美女复原.jpg 具体的: 在图像恢复任务中,需要在恢复图像的过程中保持空间细节…

vue使用百度富文本

🔥博客主页: 破浪前进 🔖系列专栏: Vue、React、PHP ❤️感谢大家点赞👍收藏⭐评论✍️ 1、下载UEditor 链接已放到文章中了 2、上传到项目目录中 一般上传到public下,方便到时候打包进去,以免…

Ubuntu学习---跟着绍发学linux课程记录(第4部分)

第3部份内容记录在:Ubuntu学习—跟着绍发学linux课程记录(第3部分) 文章目录 14 ubuntu服务器上的java14.1 Java的安装14.2 运行java程序14.3 Java启动脚本 15 ubuntu服务器上的tomcat15.1 Tomcat服务器15.2 Tomcat的配置15.3 Tomcat启动日志…

加速度中标云尖信息「电子元器件商城」开发项目——加速度jsudo

深圳市加速度软件开发有限公司在电子元器件和工业品行业有着多年得商城开发经验,服务过半导体、元器件、工业品行业的多家上市公司或实力工厂。选择加速度合作的60%的客户,或多或少都有踩坑的经历,这一次他们在选择商城开发商的时候格外谨慎&…

Spring@Lazy是如何解决构造函数循环依赖问题

Spring实例化源码解析之循环依赖CircularReference这章的最后我们提了一个构造函数形成的循环依赖问题,本章就是讲解利用Lazy注解如何解决构造函数循环依赖和其原理。 准备工作 首先创建两个构造函数循环依赖的类,TestA和TestB,代码如下&am…

qt-C++笔记之在两个标签页中按行读取两个不同的文件并且滚动条自适应滚动范围高度

qt-C笔记之在两个标签页中按行读取两个不同的文件并且滚动条自适应滚动范围高度 code review! 文章目录 qt-C笔记之在两个标签页中按行读取两个不同的文件并且滚动条自适应滚动范围高度1.运行2.文件结构3.main.cc4.main.pro5.a.txt6.b.txt7.上述代码中QVBoxLayout&#xff0c…

世界前沿技术发展报告2023《世界航空技术发展报告》(四)无人机技术

(四)无人机技术 1.无人作战飞机1.1 美国空军披露可与下一代战斗机编组作战的协同式无人作战飞机项目1.2 俄罗斯无人作战飞机取得重要进展 2.支援保障无人机2.1 欧洲无人机项目通过首个里程碑2.2 美国海军继续开展MQ-25无人加油机测试工作 3.微小型无人机…

TextureView和SurfaceView

1、Surface Surface对应了一块屏幕的缓冲区,每一个window对应一个Surface,任何View都是画在Surface上的,传统的View共享一块屏幕缓冲区,所有的绘制都必须在UI线程上进行。 2、SurfaceView 顾名思义就是Surface的View,…

NSS刷题 js前端修改 os.path.join漏洞

打算刷一遍nssweb题(任重道远) 前面很简单 都是签到题 这里主要记录一下没想到的题目 [GDOUCTF 2023]hate eat snake 这里 是对js的处理 有弹窗 说明可能存在 alert 我们去看看js 这里进行了判断 如果 getScore>-0x1e9* 我们结合上面 我觉得是6…

RabbitMQ基础

目录 RabbitMQ的可靠性投递 确保消息正确地发送至 RabbitMQ 确保消息接收方消费了消息 流程分析 1.生产者发送消息给Broker 2.交换机路由消息到队列 3.消息存储在队列 4.消费者订阅并消费消息 三个重要概念 RabbitMQ集群模式 RabbitMQ的可靠性投递 在 RabbitMQ 中&a…

BUUCTF qr 1

BUUCTF:https://buuoj.cn/challenges 题目描述: 这是一个二维码,谁用谁知道! 密文: 下载附件,得到一张二维码图片。 解题思路: 1、这是一道签到题,扫描二维码得到flag。 flag:…

一文了解Elasticsearch

数据分类 数据按数据结构分类主要有三种:结构化数据、半结构化数据和非结构化数据。 结构化数据 结构化数据具有明确定义数据模型和格式的数据类型。 特点: 数据具有固定的结构和模式。 数据项明确定义数据类型和长度。 适合用于数据查询、过滤和分…

【C++的OpenCV】第十四课-OpenCV基础强化(三):Mat元素的访问之data和step属性

🎉🎉🎉 欢迎来到小白 p i a o 的学习空间! \color{red}{欢迎来到小白piao的学习空间!} 欢迎来到小白piao的学习空间!🎉🎉🎉 💖 C\Python所有的入门技术皆在 我…