InstructGPT论文详解(学习ChatGPT必看论文)

news/2024/4/27 23:21:42/文章来源:https://blog.csdn.net/a1920993165/article/details/129566085

InstructGPT论文详解(Training language models to follow instructions with human feedback,学习ChatGPT必看论文)

返回论文和资料目录

1.导读

ChatGPT大火后,越来越多人想了解ChatGPT相关技术。OpenAI官网虽然没有给出ChatGPT足够详细的信息,但给出了一篇推荐阅读论文InstructGPT,经过对比,可以发现两者技术相差不大,所以完全可以通过InstructGPT了解ChatGPT。下面就给出InstructGPT内容详解。
阅读本文内容最好提前了解GPT1-GPT3。

2.摘要和概述

这篇文章企图解决的问题:已有的大型语言模型(例如GPT3.5)并非模型越大越好。越大的模型仍然会生成假的、有害的、简单的和没有用的内容。简单的说,得不到用户想要的内容。
解决方法:1.人工引导,使用监督学习。2.强化学习,人工帮助的情况下,训练一个模型,该模型会进一步引导GPT模型生成优质的结果。
实验结果InstructGPT使用1.3B参数的模型对比GPT-3的1750B参数模型能取得更优的性能(即能生成更优,更有用,更安全,更无害的内容,调戏过ChatGPT的人应该更有体会)。

3.引言

已有大型语言模型经常会生成不想要的内容(很好理解,因为目标函数只是预测下一个词和数据集信噪比高的原因)。

所以,本文使用微调的方法在一个大型语言模型LM上进行改进。大致思路是:首先,收集大量的指令prompt(可以理解为问题,但实际是指令大于问题,例如帮我写一首诗是一个指令,但具体问题的时候我们可能不是这么问的,即我们有多种问法,所以一个指令对应于多个问题),让人工提供答案,扩充数据集,进行第一步的引导。其次,人工给LM的回答进行排名,并用这些排名作为标签label。以(promptlabel)形式训练一个RM模型,该训练完成后模型能对LM生成的答案进行打分,告诉LM哪些是好的回答。最后,RM会作为一个奖励函数,同时使用PPO算法微调GPT模型最大化RM奖励函数。

评估:使用未在数据集中出现的prompt,采用人工的方式对GPT模型生成的结果进行打分。

模型InstructGPT模型考虑3种设置方案:1.3B,6B,150B。模型的结构和GPT-3保持一致。

实验结果

  1. 在人工打分结果上,InstructGPT显著优于GPT-3
  2. InstructGPT的结果比GPT-3更真实,即不会瞎说(但从ChatGPT的结果来看,还是有待提高)
  3. InstructGPT的结果比GPT-3更不会有害,即不会有种群歧视之类的
  4. 面对具体的NLP数据集,还可以改进
  5. 面对没有出现的人工引导的promptInstructGPT的结果也会更好,即 InstructGPT模型得到了推广
  6. InstructGPT效果会比使用一般的公开的NLP数据集后的GPT模型更好
  7. InstructGPT仍然会犯简单的小错误(从ChatGPT的结果来看确实)。

4. InstructGPT流程

InstructGPT流程如下图所示。可以分成3个阶段:

  1. 阶段一:在这个阶段前,我们首先有一个大型语言模型GPT-3.5。然后,我们随机从指令库中采样出一些指令prompt,并人工给出答案。最后,将这些指令和答案作为新的数据集进一步训练GPT-3.5模型,这里是由人工给出的答案作为标签,所以是有监督学习。我们将这一阶段完成后的模型称为SFT(supervised fine-tuning )。
  2. 阶段二:使用SFT对指令库中的指令生成多个答案。然后人工对这些答案进行排名。使用这些排名训练一个奖励模型RW,即可以通过这个模型对一个指令的多个回答给出奖励值。
  3. 阶段三:从指令库中采样一批指令,让SFT回答多个答案,并使用RW给出预测的奖励值。最后,使用奖励值采用PPO算法更新模型。

在这里插入图片描述

5.数据集

我觉得主要包含4个数据集,并且刚好4个数据集对应于不同的阶段。第2、3和4个数据集对应于InstructGPT流程的第1-3个阶段,而第1个数据集对应于第一个阶段前的训练GPT3.5模型的阶段。

在了解4个数据集前要先了解OpenAI先做了个指令库数据集
指令库数据集:前面多次提到指令库,这个指令库来自于OpenAI以前的GPT模型提供的API中收集的用户问题。但这些问题经过了一定的处理,包括去除重复,限制每个用户最多200个指令,去除个人身份信息等。下表Table1给出了来自API的指令分布。然而,这个处理好后的指令库数据集也并不全面,好用。所以InstructGPT让人工(请的labelers)写了3类指令进行扩充:(1)Plain:尽可能广地写各种指令,增加多样性。(2)Few-shot:写出一些指令,并给出多对(问题,回答)。(3)User-based:根据刚才OpenAI提供的API中得到的用户的请求队列waitlist中收集用户需求,并写出对应的指令。
在这里插入图片描述

下面是InstructGPT用到的4个数据集:

  1. 已有的用于训练GPT3.5的数据集:这个数据集主要来自NLP数据集、网络爬虫和OpenAI从其他公司拿来的。可参考GPT-3(Language Models are Few-Shot Learners)的工作。
  2. 训练SFT的模型(数据量:13k):来自指令数据库中的API和人工写的(promptanswer),用于第一阶段初步训练InstructGPT
  3. 训练RM的排名数据集(数据量:33k):首先从指令数据库中的API和人工写的指令中获得指令,再使用InstructGPT进行回答,人工给InstructGPT的回答进行排名得到排名数据集(promptRank)。该数据集会用于训练得到一个RM模型。
  4. PPO数据集(数据量:31k):只从指令数据库的API中获得指令,并使用InstructGPTRM模型分别得到answerRM给出的分数。最后这个数据集由多个三元组(promptanswerRM给出的分数)组成,用于进一步微调采用PPO算法微调InstructGPT

总结:InstructGPT特有的数据集并不大,13k-33k对于一个公司来说是很小的了。不过仍然有效,能显著提升模型性能。

6.模型的训练

SFT(Supervised fine-tuning ):第一阶段训练的模型SFT。具体地,迭代轮数使用16个epoch、学习率使用余弦衰减、模型残差连接dropout率为0.2。模型结构为标准LM。

RM:第二阶段训练的奖励模型,模型结构是在SFT基础上去掉了最后的unembedding层,并以(promptanswerReward)训练模型。在这,模型一个prompt输出了KKK个结果,所以有(K2)\binom{K}{2}(2K)次比较,OpenAIlabeler对这些比较都进行了标注。模型大小为6B。模型的损失函数为:
在这里插入图片描述
其中xxxpromptywy_wyw是标出的更优的answeryly_lyl是标出的更差的answerrθ(x,yw)r_\theta(x,y_w)rθ(x,yw)是模型对xxxywy_wyw的输出奖励值rrrrθ(x,yl)r_\theta(x,y_l)rθ(x,yl)是模型对xxxyly_lyl的输出奖励值rrr , rθ(x,yw)−rθ(x,yl)r_\theta(x,y_w) - r_\theta(x,y_l)rθ(x,yw)rθ(x,yl)是两者的差值,训练时需要最大化这个差值,即最小化损失函数。
模型训练超过一个epoch后会过拟合,故只训练一个epoch。

RL(PPO):第三阶段用PPO微调SFT。其目标函数如下, 我们需要最大化它。

在这里插入图片描述
理解时,xxxyyy分别是promptanswer

rθ(x,y)r_\theta(x,y)rθ(x,y)是模型对xxxyyy的输出奖励值rrr,即我们要最大化这个奖励,越大越好。
πRL(y∣x)\pi^{RL}(y|x)πRL(yx)RL模型在给定xxx后输出yyy的分布,πSET(y∣x)\pi^{SET}(y|x)πSET(yx)SFT模型在给定xxx后输出yyy的分布。
我们希望βlog⁡(πRL(y∣x)/πSET(y∣x))\beta \log \left(\pi^{RL}(y|x)/{\pi^{SET}(y|x)}\right)βlog(πRL(yx)/πSET(yx))越小越好,即两个分布尽量一致。(这里有个背景要说下,由于RL模型是在原SFT模型的最后一层出修改得到的,所以RL模型输出和SFT模型输出不一致。另外,当在优化RL模型时这种不一致会越来越大,因此,我们加上了这一个项。)
最后一项γγγ为0,不用管,详情可看PPO原文。

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

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

相关文章

解放生产力!chatGPT接入Excel与Word教程(需要魔法上网,不用的都是骗人的)

解放生产力!chatGPT接入Excel与Word教程(需要魔法上网,不用的都是骗人的)!!!默认你注册过openAI账号了并使用过chatGPT了,本文就不教如何注册GPT啦,网上全是教程&#xf…

已获得百度文心一言内测资格,和ChatGPT3.5简单对比测评

今日获得了百度刚发布的文心一言的内测资格。整体感觉还不错哟。 闲来无事,使用同样的问题,用文心一言和我们基于ChatGPT的GPT-3.5-Turbo接口开发的免费镜像网站作了一下对比。给各位同学提前做一下参考。 传送门:https://ai.bo-e.com/ 接口…

ChatGPT技术与市场动态

ChatGPT服务器,深度拆解(2023)ChatGPT发布之后,引发了全球范围的关注和讨论,国内各大厂商相继宣布GPT模型开发计划。据各公司官网,2023年2月7日,百度宣布将推出ChatGPT类似产品“文心一言”&…

PHP - ChatGpt 学习 仅供参考

由于最近ChatGpt 大火,但是门槛来说是对于大家最头疼的环节, 由此ChatGpt 有一个API 可以仅供大伙对接 让我来说下资质: 1:首先要搞得到一个 ChatGpt 的账户, 会获得一个KEY,该key为访问API核心&#xff0…

ChatGPT王炸更新!能联网获取新知识,可与5000+个应用交互,网友:太疯狂了

梦晨 杨净 发自 凹非寺量子位 | 公众号 QbitAI都说ChatGPT是AI的“iPhone时刻”,现在属于它的“应用商店”来了。OpenAI刚刚又甩出一个王炸——宣布推出插件功能,赋予ChatGPT使用工具、联网、运行计算的能力。例如在官方演示中,ChatGPT一旦接…

chatgpt的多种免费使用方式

很多朋友因为各种限制无法开通#ChatGPT Plus,而申请OpenAI的GPT-4 API也要慢慢排队(我的也还没下来)。于是在这里我搜集了X个可以免费使用的方法。 注:哪有什么真正免费,只不过有人在替你付钱。因此下述的方法都有限制…

ChatGPT带你轻松入门嵌入式,实现51、STM32、Arduino、树莓派、Linux各种点灯程序...

关注星标公众号,不错过精彩内容作者 | strongerHuang微信公众号 | strongerHuang最近两个月什么最火?我想 ChatGPT 必定算其中一个。这东西能有多火?我之前一直以为只有在互联网等技术领域比较火,直到前不久,我们当地政…

搭建个人专属ChatGPT(零成本且不需要XX)

本篇文章假定读者已经拥有OpenAPI帐号,并且已经获取了API访问的secret key。 本文部分内容由ChatGPT生成 ChatGPT网页版开发 本章节描述了如何从零开发一个私有化版本的 ChatGPT 网站,主要使用技术栈为 NextJS TailwindCSS chatgpt ,其中 …

6 个令人惊艳的 ChatGPT 项目,开源了!

公众号关注 “GitHubDaily”设为 “星标”,每天带你逛 GitHub!过去一周,技术圈的各个爆炸新闻,可以说是让我真正见证到了什么叫人间一日,AI 一年。首先是 New Bing 对所有用户放开,注册即可用,然…

关于 ChatGPT 必看的 10 篇论文

目录1 Transformer2 GPT-33 InstructGPT4 Sparrow5 RLHF6 TAMER7 PPO8 In-Context Learning8.1 Why Can GPT Learn In-Context8.2 What learning algorithm is in-context learning9 Prompt参考团队博客: CSDN AI小组 相关阅读 ChatGPT 简介从 ELMo 到 ChatGPT:历数…

前沿重器[31] | 理性聊聊ChatGPT

前沿重器栏目主要给大家分享各种大厂、顶会的论文和分享,从中抽取关键精华的部分和大家分享,和大家一起把握前沿技术。具体介绍:仓颉专项:飞机大炮我都会,利器心法我还有。(算起来,专项启动已经…

最强的数据增强--ChatGPT?

在许多自然语言处理(NLP)任务中,文本数据增强是克服样本量有限挑战的有效策略。 目前的文本数据增强方法要么不能保证生成数据的正确标记(缺乏可信度),要么不能保证生成数据的足够多样性(缺乏完整性),要么两者兼有。 ChatGPT在具有无与伦比…

chatgpt_academic学术优化(配置使用教学-保姆级)

一、Anaconda 下载及安装 1.官网下载链接 :www.anaconda.com/ 2.安装 (1)下载完成后,双击exe进行安装 (2)安装完成后,点击Anaconda Navigator,然后点击 CMD.exe Prompt &#xff0…

未来以来,可能是最好ChatGPT学习社群来了!

最近ChatGPT大火,但是大部分人都停留在入门级阶段。但有一点是毫无疑问的,ChatGPT带动的这波浪潮将会彻底改变我们的生活。我最近也一直在研究如何将ChatGPT与大数据结合起来,有进展会与大家分享。今天分享的这个社群也是自己抱有极高期望&am…

用ChatGPT创建虚拟小镇,或许《西部世界》已经成为现实

我们也许真的可以创造一个世界! 你们有没有想过有一天电影《西部世界》可能成为现实,又或许它已经成为现实了。当我们以后玩的游戏不在是程序员的精心设计,而是它们自己的“情绪变化”,那这个世界又会是怎样?可能有一天…

手把手教你使用Python调用 ChatGPT!我不容许你还不知道这么好的东西!

前段时间OpenAI 开放了两个新模型的api接口,专门为聊天而生的 gpt-3.5-turbo 和 gpt-3.5-turbo-0301。 ChatGPT is powered by gpt-3.5-turbo, OpenAI’s most advanced language model. 从上面这句话,我们可以知道现在 chat.openai.com 官网就是由 gpt-…

ChatGPT是如何教你视频去重的

​ 对于很多自媒体和视频剪辑从业者来说,视频去重是家常便饭了,去重有各种各样的方法和教程,但到底平台是如何识别去重的,哪些去重有效,又该选择怎样的去重方式,小编今天为替大家问了问万能的chatgpt&…

Alpaca-Lora (羊驼-Lora): 轻量级 ChatGPT 的开源实现(对标 Standford Alpaca)

Alpaca-Lora (羊驼-Lora): 轻量级 ChatGPT 的开源实现(对标 Standford Alpaca) 文章目录Alpaca-Lora (羊驼-Lora): 轻量级 ChatGPT 的开源实现(对标 Standford Alpaca)总览前言(与正文可能无关,可以忽略&am…

教你体验目前最火AI - 在craft AI assistant 使用chatGPT

atGPT大火之后,很多人都想体验一把,今天为大家推荐一种免费方式,体验chatGPT同款内核的AI助手。 craft AI assistant Craft 推出的 AI 助手产品 Craft AI Assistant,并且现在就可以使用。根据 Craft 官方介绍,Craft …

ChatGPT非常火,我用它自动编写Python爬虫脚本。结果出乎意料。

前言 都知道最近ChatGPT聊天机器人爆火,我也想方设法注册了账号,据说后面要收费了。 ChatGPT是一种基于大语言模型的生成式AI,换句话说它可以自动生成类似人类语言的文本,把梳理好的有逻辑的答案呈现在你面前,这完全不…