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

article/2024/12/22 2:53:36

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输出了 K K K个结果,所以有 ( K 2 ) \binom{K}{2} (2K)次比较,OpenAIlabeler对这些比较都进行了标注。模型大小为6B。模型的损失函数为:
在这里插入图片描述
其中 x x xprompt y w y_w yw是标出的更优的answer y l y_l yl是标出的更差的answer r θ ( x , y w ) r_\theta(x,y_w) rθ(x,yw)是模型对 x x x y w y_w yw的输出奖励值 r r r r θ ( x , y l ) r_\theta(x,y_l) rθ(x,yl)是模型对 x x x y l y_l yl的输出奖励值 r r r , r θ ( x , y w ) − r θ ( x , y l ) r_\theta(x,y_w) - r_\theta(x,y_l) rθ(x,yw)rθ(x,yl)是两者的差值,训练时需要最大化这个差值,即最小化损失函数。
模型训练超过一个epoch后会过拟合,故只训练一个epoch。

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

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

r θ ( x , y ) r_\theta(x,y) rθ(x,y)是模型对 x x x y y y的输出奖励值 r r r,即我们要最大化这个奖励,越大越好。
π R L ( y ∣ x ) \pi^{RL}(y|x) πRL(yx)RL模型在给定 x x x后输出 y y y的分布, π S E T ( y ∣ x ) \pi^{SET}(y|x) πSET(yx)SFT模型在给定 x x x后输出 y y y的分布。
我们希望 β log ⁡ ( π R L ( y ∣ x ) / π S E T ( 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://chatgpt.dhexx.cn/article/H3sMvFL1.shtml

相关文章

可以用ChatGPT搜索论文了

Datawhale干货 作者:陈萍,来源:机器之心 搜索arXiv最相关论文一键直达,多亏了ChatGPT,几天就完成。 看来论文搜索工具也开始卷了! 对于天天查找论文的小伙伴来说,有一个好用的搜索工具&#xf…

大学生快上车!大学教授要求用 ChatGPT 写论文

整理 | 屠敏 出品 | CSDN(ID:CSDNnews) 新 AI 工具 ChatGPT 的到来,正在教育圈呈现出冰火两重天的态势,教授们几家欢喜几家愁。 这不近日,来自宾夕法尼亚大学沃顿商学院的一位专门研究创业与创新的资深教授…

ChatGPT专题|谈谈ChatGPT背后的核心论文

缘起 输入几个简单的关键词,AI能帮你生成一篇短篇小说甚至是专业论文。作为上知天文下知地理对话语言模型,最近大火的ChatGPT在邮件撰写、视频脚本、文本翻译、代码编写等任务上强大表现,让埃隆马斯克都声称感受到了AI的“危险”。最近大火的…

如何使用ChatGPT在1天内完成毕业论文

如何使用ChatGPT在1天内完成毕业论文 几天前,亲眼见证了到一位同学花了1天时间用ChatGPT完成了他的毕业论文,世道要变,要学会使用黑科技才能混的下去。废话到此结束,下面说明这么用AI生成自己的论文。 使用工具: 1. P…

ChatGPT是什么?用ChatGPT搜索论文详细教程

搜索arXiv最相关论文一键直达,多亏了ChatGPT,几天就完成。 看来论文搜索工具也开始卷了! 对于天天查找论文的小伙伴来说,有一个好用的搜索工具,那简直不要太开心,效率妥妥的上升。 但现实结果却是&#xff…

ChatGPT 在做什么… 以及它为何发挥作用?最新关于ChatGPT的论文速递

作者:Stephen Wolfram,发表于 2023年2月14日 原文链接:https://writings.stephenwolfram.com/2023/02/what-is-chatgpt-doing-and-why-does-it-work/ 文章字数:约 3.4 万字 —— 建议先点赞、收藏后阅读…… ChatGPT 能够自动生成…

ChatGPT/InstructGPT论文(一)

文章目录 一. GPT系列1. in-context learning(情景学习) 二. ChatGPT背景介绍(Instruct? Align? 社会化?)三. InstructGPT的方法四. InstructGPT工作的主要结论五. 总结六. 参考链接 一. GPT系列 基于文本预训练的GPT-1&#…

如何用ChatGPT写毕业论文?

老早之前就听说有同学用ChatGPT写论文了 但是一直不觉得人工智能够真的替代人类 正好最近毕业论文开始降重了,超高的重复率愁得我快睡不着了 刷微博突然看到这个有关ChatGPT的问题。 出于好奇的我决定先来试试这个ChatGPT到底能不能帮我解决降重问题哈哈哈 点击…

ChatGPT在科研论文的应用:提问命令汇总

一、常用命令 (1) shorten to 400 characters: "放入需要被缩短的文字"; 可以在写摘要,结论的时候进行润色 (2) suggest 3 titles for this paper; 给出题目建议 (3) suggest creative titles for the paper with the following abstract: XXXX&#xff1…

ChatGPT写小论文

ChatGPT写小论文 只是个人对写小论文心得?从知乎,知网自己总结的,有问题,可以留个言我改一下 别删我的东西啊CSDN 文章目录 ChatGPT写小论文-1.写小论文模仿实战(狗头)0.小论文组成1.好论文前提:2.标题3.摘要4.关键词5.概述6.实验数据、公式或者设计7.结论,思考8.…

利用ChatGPT高效撰写论文???

大家好,我是研路科研人。今天我来和大家分享如何使用ChatGPT高效撰写学术论文。我想分享这篇文章的原因是因为前几天,我刚刚利用ChatGPT成功完成了我的硕士论文,这给我带来了很大的帮助和启示。 我目前指导的大四、研三和博士毕业班的学生们也…

ChatGPT的来源-InstructGPT论文简要介绍

文章目录 前言一、ChatGPT是什么?二、ChatGPT的前身InstructGPT论文解读论文下载地址:主要内容:模型训练数据类型结果效果示例 总结 前言 现在大火的ChatGPT功能十分强大,不仅可以回答用户问题,编写故事,甚…

如何利用ChatGPT写毕业论文

如何利用ChatGPT写毕业论文 ChatGPT是什么?利用ChatGPT写毕业论文的步骤1.准备数据2.训练模型3.生成论文4.检查论文 总结地址 ChatGPT是什么? ChatGPT是一个基于GPT-2模型的开源聊天机器人,它可以回答用户的问题,进行闲聊和提供各…

安卓也能用上 ChatGPT

大家好!我是韩老师。 相信大家今天已经被 iOS 版的 ChatGPT 刷屏了吧~ 不到一天时间,它已经登顶 App Store 榜首了! ​ 作为安卓用户,是不是有点心痒痒的,也有点跃跃欲试呢?有没有一个好用的安卓版 ChatGPT…

手机版ChatGPT软件开发

手机版ChatGPT软件开发需要以下步骤: 确定需求:明确手机版ChatGPT软件的功能和特点,包括用户界面、交互方式、语音识别、自然语言处理等方面的要求。 设计UI界面:根据需求设计手机版ChatGPT软件的UI界面,包括首…

chatgpt手机端

https://dmla.lanzouo.com/b05pao8eh 邀请码12B1DD

2023 安卓 ChatGPT手机学习版

无须注册 无须登陆 直接使用。。。。。。。。。。。。。。。。 2023 安卓 ChatGPT手机学习版。。。。。。。。。。。。。。。。

【ChatGPT初体验与Android的集成使用】

ChatGPT初体验与Android的集成使用 前言创建自己的API KEYAndroid端的集成代码总结 前言 ChatGPT凭借着强大的AI功能火的一塌糊涂,由于其官网在国内不能访问,很多小伙伴不能很友好的体验及使用,现在就来分享一下其简单的集成使用&#xff0c…

有个手机端ChatGPT是什么体验?

ChatGPT版搜索,怎么能没有手机版? 当下有哪些手机浏览器均已接入 ChatGPT 了呢?给大家总结了一下! 第一个,根据微软最新公告称,iOS 和 Android 端的 Bing 搜索和 Edge 浏览器均已接入 ChatGPT。与此同时&am…

ChatGPT APK 安卓手机 安装包

ChatGPT APK 安卓手机 安装包 2023官方最新版是全新上线的ai智能对话软件,你可以通过声音匹配自己喜欢的队友,在这里参与到体验中来下载地址:https://download.csdn.net/download/qq_24529345/87427760