InstructGPT原理讲解及ChatGPT类开源项目

InstructGPT原理讲解及ChatGPT类开源项目

Generative Pre-Trained Transformer(GPT) 是OpenAI的提出的生成式预训练语言模型,目前已经发布了GPT-1、GPT-2、GPT-3和GPT-4,未来也将发布GPT-5。

最近非常火的ChatGPT是基于InstructGPT提出的,有时候也被叫做GPT3.5。ChatGPT和InstructGPT在模型结构,训练方式上都完全一致,即都使用了指示性学习(Instruction Learning)人工反馈的强化学习(Reinforcement Learning from Human Feedback,RLHF) 来指导模型的训练,它们不同的仅仅是采集数据的方式上有所差异。所以要搞懂ChatGPT,我们必须要先读懂InstructGPT。

核心要点:

  • 把语言模型变大并不代表是能够按照用户的意图来做事,这些模型与用户没有align
  • AI模型落地,安全性和有效性很重要
  • 如何将大模型与人类意图相结合。简单的方法是使用用户反馈的监督数据进行fine-tune。
  • 我们期望语言模型是helpful、honest、harmless。

相关文献:
Training a Helpful and Harmless Assistant with Reinforcement Learning from Human Feedback
构建了一个数据集,用于评测helpful和harmless:https://github.com/anthropics/hh-rlhf。

本文以GPT-3.5为起始点,关注使用fine-tuning的方法来align用户意图和大模型预训练。采用Reinforcement Learning from Human Feedback(RLHF):

Google在2017年发表的《Deep Reinforcement Learning from Human Preferences》,人类反馈的强化学习过程如下所示:
在这里插入图片描述

InstructionGPT的训练过程:
在这里插入图片描述

  • Step1: 先采样一些demonstration数据,其包括prompt和labeled answer。基于这些标注的数据,对 GPT-3 进行fine-tuning,得到SFT(Supervised Fine-tuning);雇佣40名标注人员完成prompt的标注(实际可能上百人参与了数据标注和处理)。此时的SFT模型在遵循指令/对话方面已经优于 GPT-3,但不一定符合人类偏好。

  • Step2: Fine-tuning完之后,再给一个prompt让SFT模型生成出若干结果(生成约4~7个结果,可以通过beam search等方法),例如上图中生成ABCD四种结果,通过人工标注为其排序,例如D>C>A=B,可以得到标注的排序pair;

基于标注的排序结果,训练一个Reward Model:
对多个排序结果,两两组合,形成多个训练数据对。RM模型接受一个输入,给出评价回答质量的分数。这样,对于一对训练数据,调节参数使得高质量回答的打分比低质量的打分要高:
l o s s ( θ ) = − 1 ( K 2 ) E ( x , y w , y l ) ∼ D [ log ⁡ ( σ ( r θ ( x , y w ) − r θ ( x , y l ) ) ) ] loss(\theta) = -\frac{1}{K\choose 2}E_{(x, y_w, y_l)\sim D[\log(\sigma(r_{\theta}(x, y_w) - r_{\theta}(x, y_l)))]} loss(θ)=(2K)1E(x,yw,yl)D[log(σ(rθ(x,yw)rθ(x,yl)))]

r θ r_{\theta} rθ表示一个reward function
论文中K表示生成的数量4~9之间。
解决过拟合的问题:
在这里插入图片描述
即在训练时,InstructGPT/ChatGPT将每个prompt的 C K 2 C_{K}^{2} CK2 个响应对作为一个batch,这种按prompt为batch的训练方式要比传统的按样本为batch的方式更不容易过拟合,因为这种方式每个prompt会且仅会输入到模型中一次。

  • Step3: 继续用生成出来的结果训练SFT,并通过强化学习的PPO方法,最大化SFT生成出排序靠前的answer。

o b j e c t i v e ( ϕ ) = E ( x , y ) ∼ D π ϕ R L [ r θ ( x , y ) − β log ⁡ ( π ϕ R L ( y ∣ x ) / π S F T ( y ∣ x ) ) ] + γ E x ∼ D p r e t r a i n [ log ⁡ ( π ϕ R L ( x ) ) ] objective(\phi) = E_{(x, y)\sim D_{\pi_{\phi}^{RL}}}[r_{\theta}(x, y) - \beta\log(\pi_{\phi}^{RL}(y|x)/\pi^{SFT}(y|x))] + \gamma E_{x\sim D_{pretrain}}[\log(\pi_{\phi}^{RL}(x))] objective(ϕ)=E(x,y)DπϕRL[rθ(x,y)βlog(πϕRL(yx)/πSFT(yx))]+γExDpretrain[log(πϕRL(x))]
初始化时 π ϕ R L = π S F T \pi_{\phi}^{RL}=\pi^{SFT} πϕRL=πSFT
PPO算法在训练过程中环境会发生变换。
首先,根据自动标注的数据(下面的来源3),喂入 π ϕ R L \pi_{\phi}^{RL} πϕRL中,得到输出结果 y y y,其会根据 r θ r_{\theta} rθ得到一个得分,期望在训练 π ϕ R L \pi_{\phi}^{RL} πϕRL时能够最大化reward的得分;
第二项loss表示KL散度,在迭代训练过程中,避免RL模型 π ϕ R L \pi_{\phi}^{RL} πϕRL与原始的监督训练的SFT模型差的太远;
第三项则是一个预训练目标,可以理解为避免灾难遗忘。当 γ = 0 \gamma=0 γ=0时则为标准的PPO模型,否则为PPO-ptx模型;
1.3B 参数 InstructGPT 模型的输出优于 175B GPT-3 的输出,尽管参数少了 100 多倍。

Prompt数据来源
标注人员先标注一些prompt,主要包括三种类型的数据集:

  • 来源1:标注人员直接标注prompt对应的答案,然后训练SFT模型;
  • 来源2:标注人员标注排序数据(即对SFT生成的多个答案进行排序),用于训练RM模型;
  • 来源3:PPO数据集,此时不需要任何标注,其来自于RM模型对生成的若干结果进行排序后的内容

在这里插入图片描述
训练一个V1版本的模型;
发布内测,收集公众的提问数据,进行筛选后再次训练模型,迭代训练。

考虑到ChatGPT仅仅被用在对话领域,这里我猜测ChatGPT在数据采集上有两个不同:

  1. 提高了对话类任务的占比;
  2. 将提示的方式转换Q&A的方式。当然这里也仅仅是猜测,更准确的描述要等到ChatGPT的论文、源码等更详细的资料公布我们才能知道。

ChatGPT训练语料大约40T大小。大规模预训练语言模型预训练语料:
在这里插入图片描述
(1)BookCorpus:

  • 2.2GB:https://hyper.ai/datasets/13642
  • 37GB:https://the-eye.eu/public/AI/pile_preliminary_components/books3.tar.gz

(2)中文Wudao: https://data.baai.ac.cn/details/WuDaoCorporaText

(3)CLUECorpus: 100GB 的高质量中文预训练语料:https://github.com/CLUEbenchmark/CLUECorpus2020

(4)MNBVC: 2376.12GB超大规模中文语料:https://github.com/esbatmop/MNBVC

MNBVC数据集不但包括主流文化,也包括各个小众文化甚至火星文的数据。MNBVC数据集包括新闻、作文、小说、书籍、杂志、论文、台词、帖子、wiki、古诗、歌词、商品介绍、笑话、糗事、聊天记录等一切形式的纯文本中文数据。数据均来源于互联网收集。

其他数据集:

名称项目地址基础模型训练方法/数据集
Alpacahttps://github.com/tatsu-lab/stanford_alpacaLLaMAAlpaca
ChatGLMhttps://github.com/THUDM/ChatGLM-6BGLM自定义数据集(1T)
Dollyhttps://github.com/databrickslabs/dollyGPT-J 6BAlpaca
BELLEhttps://github.com/LianjiaTech/BELLEBLOOMAlpaca转中文+自定义数据集(0.5 ~ 2M)
OpenChatKithttps://github.com/togethercomputer/OpenChatKitGPT-NEOX/PythiaOIG-43M
FastChat/Vicunahttps://github.com/lm-sys/FastChatLLaMA shareGPT(70k)
gpt4allhttps://github.com/nomic-ai/gpt4allLLaMA自定义数据集(800k)
lit-llamahttps://github.com/Lightning-AI/lit-llama Lit-LLaMAAlpaca
HugNLPhttps://github.com/wjn1996/HugNLPGPT / OPT / LLaMA中文3M,英文1.5M

参考资料:
【1】InstructGPT原理
【2】理解Actor-Critic的关键是什么?(附代码及代码分析)
【3】Prompt-Tuning——深度解读一种新的微调范式

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

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

相关文章

数据开源 | Magic Data开源基于ChatGPT的可扩展的对话数据集

在过去的一月里,人工智能领域中最火的话题莫过"ChatGPT"。ChatGPT是OpenAI于11月30日发布最新作品聊天机器人,开放公众免费测试。聊天机器人是一种软件应用程序,根据用户的提问做出回应、模仿人类的对话方式。目前,Chat…

chatgpt赋能python:Python的玩法

Python的玩法 Python作为一种高级编程语言,在计算机编程领域非常流行。它是一种自由软件,可以在多种平台上运行。Python在数据科学、机器学习等土地居功无比,但它的应用除了这些重磅级领域,还有很多有趣的玩法。 编写游戏 Pyth…

教你轻松玩转-ChatGPT或生成类大模型--助你成为未来高端黄金职业人

文章目录 1、前言2、大模型--巴拉巴拉小魔仙3、巴拉巴拉小魔仙-指导方向3、二次元美女或科幻图-魔法4、Cosplay-魔法5、魔法师5.1、系统消息5.2、小样本学习5.3、非对话场景5.4、使用明确的指令5.5、最后重复一遍指令5.5、对输出的操作5.6、添加语法5.7、把任务分解5.8、思维链…

海外ChatGPT专题

作为AIGC领域顶尖的模型,ChatGPT有望对现有生产力工具进行变革,引领赛道发展。海外ChatGPT专题_up.pdf: https://url39.ctfile.com/f/2501739-805099789-098b62?p2096 (访问密码: 2096) 参考文献: [1]海外ChatGPT专题_up.pdf: https://url39…

浅谈 ChatGPT —— 现代巴别塔

theme: nico 一、用 ChatGPT 一搜就到你这了 ChatGPT 在去年 11 月发布以后,上线 5 天后就有了 100 万用户,上线两个月后已有上亿用户,可谓一炮而红。起初我对 ChatGPT 是没有什么感知的,我单纯认为人工智能还没有发展到完全超越人…

“我们聘请 ChatGPT,让它当了一天 ML 工程师”

随着 ChatGPT 的爆火,许多人提出疑问:它究竟是否可以取代人类?于是,面对众说纷纭的答案,本文作者决定:让 ChatGPT 当一天的机器学习工程师,毕竟实践出真理。 原文链接:https://encor…

Twitter崩了,马斯克:代码太烂,全部重写!

上一篇:高校教师“夸”女学生「睡衣好看」「含苞欲放」被投诉,校方回应 本来有很多人非常好奇,自去年 10 月底,马斯克掌管 Twitter 之后,便大刀阔斧的改革,尤其是对于员工数量从彼时的 7500 名员工骤减到了…

【Python|从0到1】小白的学习之旅:跟chatgpt学python(1)

软件:pycharm3.3 插件:NexChatGPT 今日学习成果: 文件的输入与输出 我宣布chatgpt就是我的亲妈呜呜呜!还有谁会这么耐心细致地给PS讲这么简单但是我死活搞不明白的东西!!! PS:先帝创业未半而中…

利用chatgpt实现三分钟快速制作自定义PPT

目录 利用ChatGPTMindShow三分钟生成PPT 机器人 道合顺 莓用ai 百晓生 aichat 结合提词器以达到更好地提问效果: 更好地提问ChatGPT_常用prompt表_小黄同学LL的博客-CSDN博客 举个栗子: 利用ChatGPTMindShow三分钟生成PPT 提词:…

吵完架后,总感觉没发挥好?让ChatGPT教你如何科学吵架!

最近ChatGPT的热度正如火箭般飞升,朋友圈每天都能看到朋友们晒和ChatGPT聊天的图片。 ChatGPT不仅可以跟你有来有回的对话聊天,甚至能编代码、做图等等。除此之外,它还会道歉,学习,情商可能比一些人都高。人性化的感觉…

ChatGPT的技术逻辑及演进

完整PDF文件点这里可以下载

ChatGPT 发展历程、原理、技术架构详解

△点击上方“Python猫”关注 ,回复“1”领取电子书 大家好,我是猫哥。最近 ChatGPT 的内容铺天盖地,话题热度全网第一,我们想不注意它都不可能。去年 12 月份的时候,ChatGPT 横空出世,我当时就体验过&#…

ChatGPT原理与技术演进剖析

—— 要抓住一个风口,你得先了解这个风口的内核究竟是什么。本文作者:黄佳 (著有《零基础学机器学习》《数据分析咖哥十话》) ChatGPT相关文章已经铺天盖地,剖析(现阶段或者只能说揣测)其底层原…

分享github上比较热门的ChatGPT项目,值得收藏

🔗 运行环境:chatGPT 🚩 撰写作者:左手の明天 🥇 精选专栏:《python》 🔥 推荐专栏:《算法研究》 #### 防伪水印——左手の明天 #### 💗 大家好🤗&#x1f9…

领导都被你镇住的公文金句-写作文稿

领导都被你镇住的公文金句 1.把转变作风、提振状态作为提升质量效率、推动全局工作的突破口,发扬真抓实干的作风,激励争先进位的精神,砥砺攻坚克难的勇气。 2.对标对表、加压奋进,久久为功、日日做功,努力实现从“追…

公文写作素材:工作落实类过渡句50例

1.再美的发展蓝图,如果不能落到实处,都是纸上谈兵;再大的奋进决心,如果没有实际行动,对工作毫无益处。 2.会议提出的任务再明确不落实只是纸上谈兵,会议出台的措施再可行不担当只是空中楼阁。 3.既要有不…

怎么提高公文写作水平?原来这就是公文写作通知类模板

最近突然想到公文写作这个话题,虽然在后台问过这个问题的粉丝不多,但毕竟不知不觉收集了不少这方面的资源,所以干脆就花时间整理一下吧 今天要分享的内容,可以解决各位公文写作时缺少参考素材、缺少参考提纲、缺少参考范文、校稿不…

chatgpt赋能python:Python安装配置教程

Python安装配置教程 Python是一种功能强大、易于学习和免费的编程语言。它广泛应用于Web开发、科学计算、人工智能、数据分析、自动化等领域。在本文中,我们将教你如何在Windows、Mac和Linux操作系统上安装和配置Python。 安装Python Python最新版本是Python 3&a…

IDE装上ChatGPT,一天开发一个系统

昨天白天在写代码,晚上看了一场直播,是两个技术的直播: 一个是技术总监,一个是号称Java之父的余**。 结果Java之父被技术总监吊打。然后匆匆下播。 技术这玩意,真的就是真的! 白天我开发了一个系统&…

ChatGPT 桌面应用程序 for macOS, Linux, Windows v0.10

请访问原文链接:https://sysin.org/blog/chatgpt/,查看最新版。原创作品,转载请保留出处。 作者主页:www.sysin.org ChatGPT 是什么 ChatGPT 是 OpenAI 公司开发的一种基于对话优化的语言模型。用俗话说就是“人工智障”聊天机器…