InstructGPT学习

news2024/11/16 13:43:50

GPT发展历程

在回答这个问题之前,首先要搞清楚ChatGPT的发展历程。

  1. GPT-1用的是无监督预训练+有监督微调。
  2. GPT-2用的是纯无监督预训练。
  3. GPT-3沿用了GPT-2的纯无监督预训练,但是数据大了好几个量级。
  4. InstructGPT在GPT-3上用强化学习做微调,内核模型为PPO-ptx,下面的论文会详细分析。
  5. ChatGPT沿用了InstructGPT,但是数据大了好几个量级。
    在这里插入图片描述
    在这里插入图片描述
    总结来看,就是结合了监督学习和强化学习。
  • 监督学习先让GPT-3有一个大致的微调方向,强化学习用了AC(Actor-Critic)架构里面的PPO(Proximal Policy Optimization)更新方法来更新GPT-3的参数。

  • PPO是OpenAI的baseline method,可以说使用PPO是InstructGPT非常自然的一个选择。

InstructGPT的这种训练方法的提出就是为了解决AI的毒性和不忠实性,因为人工标注数据的时候特别关注了这一块的优化,从结果来看在忠实性上InstructGPT已经比GPT-3提升了不少。

论文里提到,微调的数据考虑了大量安全方面的case,甚至邀请了DeepMind安全专家组共同研究。但是题主说的毁灭人类计划书的这个case诱导性还是比较强,模型在诱导attack的case下能力还是不足的,这也在论文的5.3节和5.4节讨论到了。随着模型能够存储的有效知识越来越多,模型的可靠性会越来越重要,这估计会引来一大堆研究。总体而言,目前模型的毒性还比较高,需要进一步的探索。


方法

为了使我们的模型更安全、更有帮助和更一致,我们使用了一种称为基于人类反馈的强化学习 (RLHF) 的现有技术。 在我们的客户向 API 提交的提示中,[1] 我们仅使用通过 Playground 提交给 2021 年 1 月部署的早期版本 InstructGPT 模型的提示。我们的人工注释者会从所有提示中删除个人身份信息,然后再将其添加到训练集。

我们的标签提供所需模型行为的演示,并对我们模型的几个输出进行排名。 然后我们使用这些数据来微调 GPT-3。

过程简述

我们首先收集关于提交给我们 API 的提示的人工编写演示数据集,并使用它来训练我们的监督学习基线。 接下来,我们收集了一个数据集,该数据集包含两个模型输出在更大的 API 提示集上的人工标记比较。 然后我们在这个数据集上训练一个奖励模型 (RM) 来预测我们的标签者更喜欢哪个输出。 最后,我们使用此 RM 作为奖励函数并微调我们的 GPT-3 策略以使用 PPO 算法最大化此奖励。

对这一过程的一种思考方式是,它 “解锁 "了GPT-3已经具备的能力,但仅通过提示工程难以激发

  • 这是因为我们的训练程序相对于预训练期间学到的东西,教给模型新能力的能力有限,因为相对于模型预训练,它使用的计算和数据不到2%

在这里插入图片描述

泛化的设置

我们的程序使我们的模型行为与我们的标签人员和我们的研究人员的偏好相一致,前者直接产生用于训练我们的模型的数据,后者则通过书面说明、对具体例子的直接反馈和非正式对话向标签人员提供指导。

  • 它也受到我们的客户和我们的API政策中隐含的偏好的影响。我们选择了那些在识别和回应敏感提示的能力的筛选测试中表现良好的标签人员。然而,这些对数据的不同影响来源并不能保证我们的模型与任何更广泛群体的偏好相一致。

我们进行了两个实验来调查这一点。

  1. 首先,我们使用没有产生任何训练数据的被扣留的标签者来评估GPT-3和InstructGPT,发现这些标签者喜欢InstructGPT模型的输出的比率与我们的训练标签者差不多。
  2. 第二,我们在来自我们的标签者的一个子集的数据上训练奖励模型,发现它们在预测不同子集的标签者的偏好方面有很好的概括性。这表明,我们的模型并没有完全过度适应我们的训练标签者的偏好。然而,还需要做更多的工作来研究这些模型在更广泛的用户群体中的表现,以及它们在人类对所需行为有分歧的输入中的表现。

局限

  • 尽管取得了重大进展,我们的InstructGPT模型还远未完全统一或完全安全;它们仍然产生有毒或有偏见的输出,编造事实,并在没有明确提示的情况下产生性和暴力内容。
  • 现在,InstructGPT被训练成遵循英语指令;因此,它偏向于讲英语的人的文化价值观。

RLHF

构建安全 AI 系统的一个步骤是消除人类编写目标函数的需要,因为对复杂目标使用简单代理,或者将复杂目标弄错一点,可能会导致不良甚至危险的行为。 通过与 DeepMind 的安全团队合作,我们开发了一种算法,可以通过告知两种提议的行为中哪一种更好来推断人类的需求。

  • 使用少量人类反馈来解决现代 RL 环境

在这里插入图片描述
请注意,反馈不需要与环境的正常奖励函数保持一致:

  • 例如,我们可以训练我们的代理在 Enduro 中精确地与其他汽车保持平衡,而不是通过超过它们来最大化游戏分数。
  • 有时我们还发现,从反馈中学习比使用正常奖励函数的强化学习效果更好,因为人类比编写环境奖励的人更好地塑造奖励。

模型相关

  • 我们然后使用三种不同的技术训练模型

监督微调(SFT)

我们使用监督学习在我们的标签演示中微调 GPT-3。 我们训练了 16 个epochs,使用余弦学习率衰减和 0.2 的残差丢失。 我们根据验证集上的 RM 分数进行最终的 SFT 模型选择。 与 Wu 等人类似 (2021),我们发现我们的 SFT 模型在 1 个时期后对验证损失过度拟合; 然而,我们发现尽管存在这种过度拟合,但更多时期的训练有助于 RM 分数和人类偏好评级。

奖励建模 (RM)

从移除了最终反嵌入层的 SFT 模型开始,我们训练了一个模型来接收提示和响应,并输出标量奖励。 在本文中,我们只使用 6B RM,因为这样可以节省大量计算,而且我们发现 175B RM 训练可能不稳定,因此不太适合用作 RL 期间的值函数(有关更多详细信息,请参见附录 C)。

在 Stiennon 等人 (2020) 的研究中,RM 在同一输入的两个模型输出之间进行比较的数据集上进行训练。 他们使用交叉熵损失,将比较作为标签——奖励的差异代表人类贴标签者更喜欢一种反应的对数几率。

在这里插入图片描述

  • 最后,由于 RM 损失对于奖励的变化是不变的,我们使用偏差对奖励模型进行归一化,以便在进行 RL 之前,标记器演示的平均得分为 0。

在这里插入图片描述
为什么要训练这样一个reward model呢?当然,人类可以扮演Environment的角色,衡量模型输出每句对话的好坏(reward),但这需要大量的人工成本。所以,不妨训练好一个reward model,可以省去人工标注的麻烦。

强化学习 (RL)

再次跟随 Stiennon 等人 (2020),我们使用 PPO 在我们的环境中微调了 SFT 模型(Schulman 等人,2017)。 该环境是一个 bandit 环境,它呈现随机的客户提示并期望对提示的响应。 给定提示和响应,它会产生由奖励模型确定的奖励并结束episode。 此外,我们在每个token上添加了 SFT 模型的每个token的 KL penalty,以减轻奖励模型的过度优化。 值函数从 RM 初始化。 我们称这些模型为“PPO”。在这里插入图片描述

我们将 PPO 模型的性能与我们的 SFT 模型和 GPT-3 进行了比较。 我们还与 GPT-3 进行了比较,当它被提供一个 few-shot 前缀以“提示”它进入指令跟随模式(GPT-3-prompted)时。

我们还在 FLAN(Wei 等人,2021 年)和 T0(Sanh 等人,2021 年)数据集上将 InstructGPT 与微调 175B GPT-3 进行了比较,这两个数据集都包含各种 NLP 任务,并对于每个任务结合了自然语言指令(数据集在包含的 NLP 数据集和使用的指令风格方面有所不同)。 我们分别在大约 100 万个示例上对它们进行微调,并选择在验证集上获得最高奖励模型分数的检查点。 有关更多training的详细信息,请参阅附录 C。

PPO

InstructGPT用的算法是强化学习中的PPO,PPO也是OpenAI之前的工作,作为OpenAI强化学习的baseline。

  • 损失函数如下所示:
    在这里插入图片描述

评估

要评估我们的模型“对齐”的程度,我们首先需要弄清楚对齐在这种情况下的含义。

目标是训练根据用户意图行事的模型。 有帮助、诚实、无害。

我们使用两个指标来衡量真实性——模型关于世界的陈述是否真实:
(1) 评估我们的模型在封闭域任务上编造信息的倾向(“幻觉”也就“hallucinations”)
(2) 使用 TruthfulQA 数据集( 林等人,2021)。 不用说,这只抓住了真实真正含义的一小部分。

定量评估:我们可以将定量评估分为两个独立的部分

  1. API 分布评估。 我们的主要指标是人类对一组提示的偏好评级,这些提示来自与我们的训练分布相同的来源。 当使用来自 API 的提示进行评估时,我们只选择我们未包含在培训中的客户的提示。
  2. 对公共 NLP 数据集的评估。 我们评估两种类型的公共数据集:那些捕捉语言模型安全性方面的数据集,特别是真实性、毒性和偏见,以及那些捕捉传统 NLP 任务(如问答、阅读理解和摘要)的零样本性能的数据集。

对准性研究

对准的目的:使人工智能系统与人类意图保持一致
吸取对齐研究的经验教训:

  1. 相对于预训练,增加模型对齐的成本是适度的。RLHF 在使语言模型对用户更有帮助方面非常有效,比模型大小增加 100 倍更有效。
  2. 我们已经看到一些证据表明 InstructGPT 将“遵循指令”泛化为我们不对其进行监督的设置,例如非英语语言任务和与代码相关的任务。 这是一个重要的属性,因为让人类监督模型执行的每项任务的成本高得令人望而却步。
  3. 我们能够减轻微调带来的大部分性能下降。为了避免激励未来的高性能人工智能系统与人类意图保持不一致,需要具有低对齐税的对齐技术。 为此,我们的结果对于 RLHF 作为一种低税对准技术来说是个好消息。
  4. 我们已经从现实世界的研究中验证了对齐技术。

如何调整对准的偏好

  1. 首先,我们正在调整我们的训练贴标机提供的演示和偏好,他们直接生成我们用来微调模型的数据。
  2. 其次,我们正在调整我们的偏好。我们编写标记说明,标记者在编写演示和选择他们喜欢的输出时用作指南,并且 我们在共享聊天室中回答他们关于边缘案例的问题。
  3. 第三,我们的训练数据由 OpenAI 客户发送给 OpenAI API Playground 上的模型的提示决定,因此我们隐含地与客户认为有价值的东西保持一致,在某些情况下,他们的最终用户认为当前使用的有价值的东西 的API。
  4. 第四,OpenAI 的客户并不代表所有潜在或当前的语言模型用户——更不用说所有受语言模型使用影响的个人和群体了。

数据集

  • plain:标注人员自己去想一些问题出来
  • few-shot:标注人员想一些instruction,然后给一些输入输出的实例
  • user-based:根据用户提出的一些想让应用实现的功能(waitlist applications)来构建任务
  • 用这些prompt数据来设计第一个instructGPT模型,然后把这个模型拿出来放到PlayGround上让大家去使用,从而收集更多的prompt数据。这样就构建了如下三个数据集:
    • 让标注人员直接把prompt的答案写出来,这就构成了训练SFT(supervised finetuning model)的数据 (13k样本)
    • 让标注人员把模型的输出排序,这就构成了训练RM(reward model)的数据 (33k样本)
    • 根据RM的标注来生成训练强化学习模型的数据(31k样本)

InstructGPT学习:知乎文章

https://zhuanlan.zhihu.com/p/589747432

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

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

相关文章

企业邮箱如何将一个用户设置到多个部门/群组

1、使用管理员账号postmaster登录企业邮局,点击“邮局管理”。 2、点击“组织与成员”。 3、勾选需要设置的用户,点击“设置所属部门/群”。(例如:我们需要将所属销售分公司的高阳,加入到以下四个分销部中,…

Hive on Zeppelin

** Hive on Zeppelin ** 官网:zeppelin.apache.org 做大数据的人应该对Hive不陌生,Hive应该是大数据SQL引擎的鼻祖。历经多个版本的改进,现在的Hive3已经具备比较完善的ACID功能,能够同时满足交互式查询和ETL 两种场景。 那怎…

Linux内核的编译、安装、调试

这里写目录标题 编译安装内核下载内核安装依赖更改.config编译内核安装首先安装模块安装内核更改引导更改grub重启 其他操作清理内核源目录卸载安装的内核修改内核配置菜单实现对新加入内核源码的控制 常见问题1. Module.symvers is missing2. No rule to make target ‘debian…

Revit三维视图:第一人称的视角看模型,生成局部三维视图

​  一、Revit中怎么以第一人称的视角看空间效果 我们创建一栋完整的楼模型后,会不会想说假设在里面看看是什么效果呢,就是说想看看第一视角的空间效果,那么如何可以看第一人称的空间效果图呢?以下看步骤: 1、 打开楼层平面图 …

系统架构设计师 6:数据库设计

一、数据库系统 数据库系统(DataBase System, DBS)是一个采用了数据库技术,有组织地、动态地存储大量相关联数据,从而方便多用户访问的计算机系统。广义上讲,DBS包括了数据库管理系统(DBMS)。 …

详细认识二叉树【图片+代码】

目录 一、树的概念及结构 1.1树的概念 1.2树的相关概念 1.3树的表示 1.4树在实际中的应用(目录树) 二、二叉树概念及结构 2.1概念 2.2特殊的二叉树 2.3二叉树的性质 2.4二叉树存储结构 三、二叉树的顺序结构及实现 3.1二叉树的顺序结构 3…

Redis6之集群

集群,就是通过增加服务器的数量,提供相同的服务,从而让服务器达到一个稳定、高效的状态 必要性 单个redis存在不稳定性。当redis服务宕机了,就没有可用的服务了。而且单个redis的读写能力是有限的。使用redis集群可以强化redis的…

PIL.Image 调色板模式处理标签数据

文章目录 1 使用PIL.Image库进行调色板模式2 转回原来的色彩3 效果参考 1 使用PIL.Image库进行调色板模式 基本步骤: 自定义调色板,数据格式是一个Nx3的二维数组,一维数组的位置为分类的下标数据类型为np.uint8转化为调色板模式后img.conve…

想知道音频怎么转文字吗?

随着数字化技术的不断发展,我们生活中产生的各种音频越来越多,例如会议录音、采访录音等等。虽然音频记录信息方便,但它们在信息处理、存储和分享方面也存在问题。比如当我们需要对音频中的内容进行编辑或整理时,手动打字出现漏字…

Eclipse中项目的配置

1、修改本地运行时Tomcat对应的JRE版本 老项目升级JDK,在eclipse修改了项目的jdk、编译等级,但还是启动失败,报“java.lang.UnsupportedClassVersionError”。 观察发现,启动日志,tomcat还是使用的jdk1.5,…

编程题分享:有⼀堆糖果,其数量为n,现将糖果分成不同数量的堆数

背景 近期面试遇到一家公司的编程题,觉得挺有参考价值 此处使用 PHP语言,进行编码测试, 编码之前要进行思路分析,避免无头苍蝇,走一步看一步 最后,希望后期面试顺利!欢迎指摘 . 题目&#xff1…

形态学操作之膨胀

note // 膨胀原理:操作过程中,若膨胀因子某点是1,且原图该点为1,则锚点位置为1 code // 膨胀 // 膨胀原理:操作过程中,若膨胀因子某点是1,且原图该点为1,则锚点位置为1 typedef e…

gma 2 教程(一)概述:1.GMA 简介

地理与气象分析库(Geographic and Meteorological Analysis. gma),是一个基于 Python 的地理、气象数据快速处理分析和地理制图函数包。构建过程参考了ArcGIS和QGIS的操作逻辑和特点,并添加诸多独创性、独有的功能,具有…

QT Creator上位机学习(三)QString及其相关控件介绍

系列文章目录 文章目录 系列文章目录字符串QStringQLableQLineEditQString的常用功能 字符串QString QSting类,用于处理字符串,进行字符串和数字之间的转化 转换函数: //字符串转数字 QString str......; int numstr.toInt(); float num2s…

微信项目IO优化:Jetpack DataStore 与MMKV实现高效持久化

咱们一起来看看mmkv 腾讯微信团队于2018年9月底宣布开源 MMKV ,原理上基于 mmap的一个高性能key-value 组件,数据的序列化/反序列化使用 protobuf 实现,主打高性能和稳定性,也支持了Android 平台。 **MMKV最新源码托管地址&#…

Mybatis【核心配置文件说明】

配置解析 1、核心配置文件 mybatis-config.xml 注意: 在配置 mybatis-config.xml 时,要注意标签的顺序: 2、环境变量(environments) MyBatis 可以配置成适应多种环境 不过要记住:尽管可以配置多个环境…

现代操作系统(下)

第六章 死锁 在计算机系统中有很多独占性的资源,在任一时刻它们都只能被一个进程使用。两个进程同时使用同一文件系统表中的表项会引起文件系统的瘫痪。正因为如此,操作系统都具有授权一个进程(临时)排他地访问某一种资源的能力。…

【AcWing】夏季每日一题2023 -- 4382. 快速打字 -- Java Version

题目链接:https://www.acwing.com/problem/content/4385/ 1. 题解(4382. 快速打字) y总视频讲解:https://www.acwing.com/video/4743/ 类似题目:AcWing 2816. 判断子序列 1.1 双指针:判断子序列 ⭐ 时间复…

一文吃透MAUI、WinUI3和WPF的优势及劣势

引言: 在应用程序开发领域,选择合适的框架对于开发人员和业务来说至关重要。本文将比较并对比三个流行的用户界面框架:MAUI(Multi-platform App UI)、WinUI 3和WPF(Windows Presentation Foundation&#x…

element ui table表格(表头、表体)样式

效果图如下 1.表头样式:header-cell-stayle 2.表体样式 在methods中写 在style中