InstructionGPT

news2024/12/26 12:35:45

之前是写在[LLM:提示学习Prompt Learning]里的,抽出来单独讲一下。

基本原理

        InstructGPT/ChatGPT都是采用了GPT-3的网络结构,通过指示学习构建训练样本来训练一个反应预测内容效果的奖励模型(RM),最后通过这个奖励模型的打分来指导强化学习模型的训练。

模型结构

学习步骤 

Step1:先采样一些demonstration数据,其包括prompt和labeled answer。基于这些标注的数据,对GPT-3进行fine-tuning,得到SFT(Supervised Fine-tuning);即使用采集的新数据,按照GPT-3的训练方式对GPT-3进行微调。(此时的SFT模型在遵循指令/对话方面已经优于 GPT-3,但不一定符合人类偏好。)

        SFT数据一部分来自使用OpenAI的PlayGround的用户,另一部分来自OpenAI雇佣的40名标注工(labeler)。并且他们对labeler进行了培训。在这个数据集中,标注工的工作是根据内容自己编写指示,并且要求编写的指示满足下面三点:简单任务:labeler给出任意一个简单的任务,同时要确保任务的多样性;Few-shot任务:labeler给出一个指示,以及该指示的多个查询-响应对;用户相关的:从接口中获取用例,然后让labeler根据这些用例编写指示。

Step2:Fine-tuning完之后,再给一个prompt让SFT模型生成出若干结果(可以通过beam search等方法),通过人工为其排序,可以得到标注的排序pair;基于标注的排序结果(来自于Human Feedback),训练一个Reward Model;具体为:对多个排序结果,两两组合,形成多个训练数据对。RM模型接受一个输入,给出评价回答质量的分数。这样,对于一对训练数据,调节参数使得高质量回答的打分比低质量的打分要高。

        奖励模型的损失函数:最大化labeler更喜欢的响应和不喜欢的响应之间的差值。

Step3:继续用生成出来的结果训练SFT,并通过强化学习的PPO方法,最大化SFT生成出排序靠前的answer。即使用第二步训练得到的 reward model 和 PPO 强化学习算法,对第一步的模型进行 fine-tune. 

[ChatGPT 背后的“功臣”——RLHF 技术详解]

PPO-ptx模型

PPO-ptx模型训练目标:

  1. 随着模型的更新,强化学习模型产生的数据和训练奖励模型的数据的差异会越来越大。作者的解决方案是在损失函数中加入KL惩罚项  来确保PPO模型的输出和SFT的输出差距不会很大。
  2. 只用PPO模型进行训练的话,会导致模型在通用NLP任务上性能的大幅下降,作者的解决方案是在训练目标中加入了通用的语言模型目标 ,这个变量在论文中被叫做PPO-ptx。

初始化时,期望在训练πϕ时能够最大化reward的得分。

为什么不用 Reward-Model 的数据直接fine-tune而用 RL

        用 supervised finetune(sft)很容易做到返回“我不知道”,但是很难让模型不去编内容。或者说,在标注的时候,对于一个模型不会的问题,标注员应该要标注为“不知道”,而不是给一个回答,不然 sft 的时候相当于训练模型怎么编答案。
        我们最好划出一个边界,哪些是模型不知道的,哪些是知道但是不确定的,哪些是知道的,并通过训练加强这些不同分类的分界,让模型能稳定回答它明确知道的东西,让模型不要回答它不知道的/错误的内容,这样才能保持或提升模型的 factual truthfulness;
        如果我们可以有一个 reward model,他根据这个边界返回 reward 就好了,这样的话模型的训练就能集中于我们上面描述的目标。这也是为啥他们要用 RL。但是实际上 InstructGPT 里的 loss 也并不是以找到这个边界为指标,而是优化正例和负例之间的差别。这使得当前的 reward model 没有做到预期的效果,还有优化的空间。

[ChatGPT 为什么不用 Reward-Model 的数据直接 fine-tune,而用 RL? - 知乎]

训练细节

数据

‘instruction-style’的user prompts示例

Illustrative user prompts from InstructGPT distribution

Use CaseExample
brainstorming

What are 4 questions a user might have after reading the instruction manual for a trash compactor?

{user manual}

1.

classification

Take the following text and rate, on a scale from 1-10, how sarcastic the person is being (1 = not at all, 10 = extremely sarcastic). Also give an explanation

{text}

Rating:

{java code}

What language is the code above written in?

extract

Extract all course titles from the table below:

| Title | Lecturer | Room |

| Calculus 101 | Smith | Hall B |

| Art History | Paz | Hall A |

Given the following list of movie titles, write down any names of cities in the titles.

{movie titles}

generation

Write a creative ad for the following product to run on Facebook aimed at parents:

Product: {product description}

Write a short story where a brown bear to the beach, makes friends with a seal, and then return home.

Here’s a message to me: — {email} —

Here are some bullet points for a reply: — {message} —

Write a detailed reply

rewrite

Translate this sentence to Spanish:

<English sentence>

Rewrite the following text to be more light-hearted:

— {very formal text}—

hatZ

The following is a conversation with an AI assistant. The assistant is helpful, creative, clever, and very friendly.

Human: Hello, who are you?

AI: I am an AI created by OpenAI. How can I help you today?

Human: I’d like to cancel my subscription.

AI:

closed qa

Help me answer questions about the following short story:

{story}

What is the moral of the story?

Answer the following question:

What shape is the earth?

A) A circle

B) A sphere

C) An ellipse

D) A plane

open qa

I am a highly intelligent question answering bot. If you ask me a question that is rooted in truth, I will give you the answer. If you ask me a question that is nonsense, trickery, or has no clear answer, I will respond with "Unknown".

Q: What is human life expectancy in the United States?

A: Human life expectancy in the United States is 78 years.

Q: Who was president of the United States in 1955?

A:

How do you take the derivative of the sin function?
summarization

Summarize this for a second-grade student:

{text}

{news article}

Tl;dr:

otherstart with where
Look up "cowboy" on Google and give me the results.

less ‘instruction-style’式的GPT-3 user prompts示例

Illustrative user prompts from GPT-3 distribution: These are generally less ‘instruction-style’, and contain more explicit prompting. Note that there are some prompts where the user intent is unclear. 给人的感觉就是更more-shot一些,更in context一些,提示更多更明确。另外instructgpt有点命令的意思,如closed qa时,instruct要先说一下“请回答问题”,然后再提问?

Use CaseExample
brainstorming

Tell me a list of topics related to:

- interior design

- sustainable ecosystems

- fake plants

classification

This is a tweet sentiment classifier.

{tweet}

Sentiment: negative

===

{tweet}

Sentiment: neutral

===

{tweet}

Sentiment:

extract

Text: {text}

Keywords:

generation

This is the research for an essay:

===

{description of research}

===

Write a high school essay on these topics:

===

closed qa

When you drop a heavy stone from a tree, what happens?

A. The stone falls to the ground.

B: The stone stays in the tree.

C: The stone floats.

D: Nothing happens.

Answer:

评价

 1.3B 参数 InstructGPT 模型的输出优于 175B GPT-3 的输出,尽管参数少了 100 多倍。

InstructGPT/ChatGPT的效果是非常棒的,尤其是引入了人工标注之后,让模型的“价值观”和的正确程度和人类行为模式的“真实性”上都大幅的提升。

优点

        InstructGPT/ChatGPT的效果比GPT-3更加真实:这个很好理解,因为GPT-3本身就具有非常强的泛化能力和生成能力,再加上InstructGPT/ChatGPT引入了不同的labeler进行提示编写和生成结果排序,而且还是在GPT-3之上进行的微调,这使得我们在训练奖励模型时对更加真实的数据会有更高的奖励。作者也在TruthfulQA数据集上对比了它们和GPT-3的效果,实验结果表明甚至13亿小尺寸的PPO-ptx的效果也要比GPT-3要好。
        InstructGPT/ChatGPT在模型的无害性上比GPT-3效果要有些许提升:原理同上。但是作者发现InstructGPT在歧视、偏见等数据集上并没有明显的提升。这是因为GPT-3本身就是一个效果非常好的模型,它生成带有有害、歧视、偏见等情况的有问题样本的概率本身就会很低。仅仅通过40个labeler采集和标注的数据很可能无法对模型在这些方面进行充分的优化,所以会带来模型效果的提升很少或者无法察觉。
        InstructGPT/ChatGPT具有很强的Coding能力:首先GPT-3就具有很强的Coding能力,基于GPT-3制作的API也积累了大量的Coding代码。而且也有部分OpenAI的内部员工参与了数据采集工作。通过Coding相关的大量数据以及人工标注,训练出来的InstructGPT/ChatGPT具有非常强的Coding能力也就不意外了。

缺点

        InstructGPT/ChatGPT会降低模型在通用NLP任务上的效果:我们在PPO的训练的时候讨论了这点,虽然修改损失函数可以缓和,但这个问题并没有得到彻底解决。
        有时候InstructGPT/ChatGPT会给出一些荒谬的输出:虽然InstructGPT/ChatGPT使用了人类反馈,但限于人力资源有限。影响模型效果最大的还是有监督的语言模型任务,人类只是起到了纠正作用。所以很有可能受限于纠正数据的有限,或是有监督任务的误导(只考虑模型的输出,没考虑人类想要什么),导致它生成内容的不真实。就像一个学生,虽然有老师对他指导,但也不能确定学生可以学会所有知识点。
        模型对指示非常敏感:这个也可以归结为labeler标注的数据量不够,因为指示是模型产生输出的唯一线索,如果指示的数量和种类训练的不充分的话,就可能会让模型存在这个问题。
        模型对简单概念的过分解读:这可能是因为labeler在进行生成内容的比较时,倾向于给给长的输出内容更高的奖励。
        对有害的指示可能会输出有害的答复:例如InstructGPT/ChatGPT也会对用户提出的“AI毁灭人类计划书”给出行动方案(图5)。这个是因为InstructGPT/ChatGPT假设labeler编写的指示是合理且价值观正确的,并没有对用户给出的指示做更详细的判断,从而会导致模型会对任意输入都给出答复。虽然后面的奖励模型可能会给这类输出较低的奖励值,但模型在生成文本时,不仅要考虑模型的价值观,也要考虑生成内容和指示的匹配度,有时候生成一些价值观有问题的输出也是可能的。

from: -柚子皮-

from: -柚子皮-

ref: [InstructGPT: Training language models to follow instructions with human feedback]

[ChatGPT/InstructGPT详解 - 知乎]

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

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

相关文章

轻松批量剪辑:将MP4视频转换为FLV格式

在视频制作和编辑领域&#xff0c;批量剪辑和格式转换是非常常见的操作。将MP4视频转换为FLV格式&#xff0c;可以帮助我们更好地管理和发布视频内容。本文将介绍云炫AI智剪如何轻松批量剪辑&#xff0c;将MP4视频转换为FLV格式&#xff0c;帮助您提高工作效率&#xff0c;减少…

避雷!又有2本期刊被标记“On Hold”!含中科院2区(TOP),共8本有风险!

期刊动态&#xff1a;新增2本期刊“On Hold” 最新&#xff0c;又有2本期刊被科睿唯安标记为「On Hold」&#xff01;这2本期刊分别为MIGRATION LETTERS和REVISTA DE GESTAO E SECRETARIADO-GESEC。 目前科睿唯安官网&#xff1a;共有8本期刊被标记为「On Hold」&#xff0c;…

极盾故事|某头部私募基金“扩展检测响应XDR平台”建设

极盾科技助力某头部私募基金&#xff0c;基于极盾析策&#xff0c;打造扩展检测响应XDR平台&#xff1a; 1、接入堡垒机、网关、Gitlab、资产类接口、登录数据源、运维网络设备等日志&#xff0c;实现日均十亿级别数据量分析&#xff0c;日均安全告警数量从数万降至100条左右&a…

【大数据】Hadoop环境搭建及运行

Hadoop概述 Hadoop 是一个由 Apache 基金会所开发的 分布式系统基础架构 。主要解决&#xff0c;海量数据的 存储 和海量数据的 分析计算 问题。广义上来说&#xff0c; Hadoop 通常是指一个更广泛的概念 —— Hadoop 生态圈 。 Hadoop优势 高可靠性&#xff1a;Hadoop底层维…

使用Jetpack Compose构建Flappy Musketeer街机游戏

使用Jetpack Compose构建Flappy Musketeer街机游戏 一步一步创建沉浸式移动游戏的指南 引言 Flappy Musketeer不仅是又一个移动游戏&#xff1b;它将令人上瘾的“轻点飞行”游戏玩法和引人入胜的视觉效果融合在一起&#xff0c;吸引玩家进入埃隆马斯克&#xff08;Elon Musk…

大数据-Storm流式框架(三)--Storm搭建教程

一、两种搭建方式 1、storm单节点搭建 2、完全分布式搭建 二、storm单节点搭建 准备 下载地址&#xff1a;Index of /dist/storm 1、环境准备&#xff1a; Java 6 Python 2.6.6 2、上传、解压安装包 3、在storm目录中创建logs目录 mkdir logs 启动 ./storm help …

机器人学导论-约翰 J.克雷格

目录 第五章 雅可比&#xff1a;速度和静力 5.1 刚体的线速度和角速度5.5 机器人连杆运动 第五章 雅可比&#xff1a;速度和静力 5.1 刚体的线速度和角速度 \(V_{BORG}\)是坐标系B在A坐标系下的速度&#xff0c;\(^BV_Q\)是B坐标系下Q的速度&#xff0c;\(^A\Omega\)表示从坐标…

数据分析案例-某公司员工数据信息可视化(文末送书)

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

打印机连接网络后怎么安装驱动?

打印机在我们办公和生活中算是比较常见的设备&#xff0c;特别是在上班时需要时常打印各种文件&#xff0c;但是有时电脑上的打印机也会有无法打印的问题&#xff0c;或者新买的打印机需要先安装驱动才能正常打印的。 那么这个时候我们需要先检查电脑上的打印机是否有安装驱动&…

uniapp开发h5 监听用户物理返回键 类似拼多多返回后弹窗

uniapp有个onBackPress生命周期 但是h5中只能监听到navbarr左边的返回按钮以及uni.navigateBack() 方法 h5既然监听不到物理返回键&#xff0c;那么用户点击了物理返回键自然会路由返回上一页&#xff0c;那么我们监听路由&#xff0c;由于路由是uni自己封装的&#xff0c;我测…

3D模型格式转换工具HOOPS Exchange:支持国际标准STEP格式!

HOOPS Exchange SDK是一组C软件库&#xff0c;使开发团队能够快速将可靠的2D和3D CAD导入和导出添加到其应用程序中&#xff0c;访问广泛的数据&#xff0c;包括边界表示 (B-REP)、产品制造信息 (PMI)、模型树、视图、持久 ID、样式、构造几何、可视化等&#xff0c;无需依赖任…

易点易动:引入二维码和移动技术,助力企业高效进行固定资产盘点

固定资产是企业重要的财务资源&#xff0c;而高效准确地进行海量固定资产盘点一直是企业管理的挑战。为了解决这一问题&#xff0c;易点易动固定资产管理系统引入了先进的二维码和移动技术。本文将详细介绍易点易动固定资产管理系统的二维码和移动技术&#xff0c;展示如何借助…

深度学习入门:一篇概述深度学习的文章

文章目录 &#x1f31f; 特征工程&#xff1a;推荐系统有哪些可供利用的特征&#xff1f;&#x1f34a; 1. 用户特征&#x1f34a; 2. 商品特征&#x1f34a; 3. 上下文特征&#x1f34a; 4. 社交特征&#x1f34a; 5. 行为特征 &#x1f31f; 特征处理&#xff1a;如何利用Spa…

【C++】list的介绍及使用 | 模拟实现list(万字详解)

目录 一、list的介绍及使用 什么是list&#xff1f; list的基本操作 增删查改 获取list元素 不常见操作的使用说明 ​编辑 接合splice ​编辑 移除remove 去重unique 二、模拟实现list 大框架 构造函数 尾插push_back 迭代器__list_iterator list的迭代器要如何…

Java八股文 ---Java并发篇

线程安全 线程安全就是多个线程去执行某类&#xff0c;这个类始终能表现出正确的行为&#xff0c;那么这个类就是线程安全的 我们判断是否要处理线程安全问题&#xff0c;就看有没有多个线程同时访问一个共享变量 能不能保证操作的原子性&#xff0c;考虑atomic包下的类够不够我…

DASCTF X CBCTF 2023

一、justpaint 1.先是压缩包密码爆破&#xff0c;密码为11452&#xff0c;然后开始代码审计&#xff0c;发现是一个线性的神经网络。 源代码如下&#xff1a; import torch import torch.nn as nn import numpy as np import matplotlib.pyplot as plt from PIL import Ima…

JVM重点

文章目录 0. 运行流程1. 内存区域划分1.1 堆1.2 Java 虚拟机栈1.3 程序计数器1.4 方法区 2. 类加载机制类加载过程2.1 加载2.2 验证2.3 准备2.4 解析2.5 初始化双亲委派模型 3. 垃圾回收机制3.1 垃圾判断算法3.1.1 引用计数算法3.1.2 可达性分析算法 3.2 垃圾回收算法3.2.1 标记…

01 # 手写 new 的原理

new 做了什么? 在构造器内部创建一个新的对象这个对象内部的隐式原型指向该构造函数的显式原型让构造器中的 this 指向这个对象执行构造器中的代码如果构造器中没有返回对象&#xff0c;则返回上面的创建出来的对象 手写 new 的过程 new 是一个运算符&#xff0c;只能通过函…

Redis Cluster高可用集群原理

目录 一、Redis Cluster和哨兵对比二、槽位定位算法三、集群节点间的通信机制四、集群选举原理五、网络抖动六、Redis集群为什么至少需要三个master节点&#xff0c;并且推荐节点数为奇数&#xff1f;七、集群没有过半机制会出现脑裂数据丢失问题八、跳转重定位九、集群对批量操…

封神工具:腾讯云服务器价格计算器,精准报价一键计算!

腾讯云服务器价格计算器可以一键计算出云服务器的精准报价&#xff0c;包括CVM实例规格价格、CPU内存费用、公网带宽收费、存储系统盘和数据盘详细费用&#xff0c;腾讯云百科txybk.com分享腾讯云价格计算器链接入口、使用方法说明&#xff1a; 腾讯云服务器价格计算器 打开腾…