ChatGPT技术解构

news/2024/4/26 12:40:22/文章来源:https://blog.csdn.net/FYZDMMCpp/article/details/128317528

ChatGPT的训练主要分为三个步骤,如图所示:

Step1:

使用有监督学习方式,基于GPT3.5微调训练一个初始模型;训练数据约为2w~3w量级(根据InstructGPT的训练数据量级估算,参照https://arxiv.org/pdf/2203.02155.pdf P33 Table6),由标注师分别扮演用户和聊天机器人,产生人工精标的多轮对话数据;值得注意的是,在人类扮演聊天机器人时,会得到机器生成的一些建议来帮助人类撰写自己的回复,以此提高撰写标注效率。

以上精标的训练数据虽然数据量不大,但质量和多样性非常高,且来自真实世界数据,这是很关键的一点。经过第一步,微调过的GPT3.5初步具备了理解人类Prompt所包含意图的能力,可以根据不同意图给出高质量的回答。

Step2:

收集相同上文下,根据回复质量进行排序的数据:即随机抽取一大批Prompt,使用第一阶段微调模型,产生多个不同回答,之后标注人员对结果排序,形成 C^{2}_{n} 组训练数据对,使用pairwise loss来训练Reward Model,从而可以预测出标注者更喜欢哪个输出。这种比较学习可以给出相对精确的reward值。

这一步使得ChatGPT从命令驱动转向了意图驱动。训练数据不需过多,维持在万量级即可,因为它不需要穷尽所有的问题,只是要告诉模型人类的喜好,强化模型意图驱动的能力。

Step3:

使用PPO来微调第一阶段的模型。核心思想是随机抽取新的Prompt,用第二阶段的Reward Model给产生的回答打分,这个分数即回答的整体reward;进而将此reward回传,由此产生的策略梯度可以更新PPO模型参数;整个过程迭代数次直到模型收敛。

以上三个步合称为文献中提到的 RLHF(Reinforcement Learning from Human Feedback) 技术。

相关技术

InstructGPT

ChatGPT是InstructGPT的兄弟模型(sibling model),后者经过训练以遵循Prompt中的指令,提供详细的响应。InstructGPT是OpenAI在今年3月在Training language models to follow instructions with human feedback中提出的模型,整体流程和以上的ChatGPT流程基本相同,除了在数据收集和基座模型(GPT3 vs GPT 3.5),以及第三步初始化PPO模型时略有不同。

在InstuctGPT的工作中,与ChatGPT类似,给定Instruction,需要人工写回答。首先训练一个InstructGPT的早期版本,使用完全人工标注的数据,数据分为3类:Instruction+Answer,Instruction+多个examples和用户在使用API过程中提出的需求。从第二类数据的标注,推测ChatGPT可能用检索来提供多个In Context Learning的示例,供人工标注。剩余步骤与以上ChatGPT相同。

尤其需要重视但往往容易被忽视的,即OpenAI对于数据质量和数据泛化性的把控,这也是OpenAI的一大优势:

1)寻找高质量标注者:寻找在识别和回应敏感提示的能力筛选测试中,表现良好的labeler;

2)使用集外标注者保证泛化性:即用未经历以上1)步骤的更广大群体的标注者对训练数据进行验证,保证训练数据与更广泛群体的偏好一致。

在完成以上工作后,我们可以来看看InstuctGPT与GPT3的区别,通过下图可以明显看出:

GPT3的回答简短,回复过于通用毫无亮点;而InstructGPT“侃侃而谈”,解释自由主义为何愚蠢,显然模型学到了对于此类问题人们更想要的长篇大论的回答。

GPT3只是个语言模型,它被用来预测下一个单词,丝毫没有考虑用户想要的答案;当使用代表用户喜好的三类人工标注为微调数据后,1.3B参数的InstructGPT在多场景下的效果超越175B的GPT3: 

InstuctGPT的工作具有开创性,它挖掘了GPT3学到的海量数据中的知识和能力,但这些仅通过快速的In-context的方式较难获得;可以说,InstuctGPT找到了一种面向主观任务来解锁GPT3强大语言能力的方式。

PPO

PPO(Proximal Policy Optimization) 一种新型的Policy Gradient算法(Policy Gradient是一种强化学习算法,通过优化智能体的行为策略来解决在环境中实现目标的问题)。我们只需了解普通的Policy Gradient算法对步长十分敏感,但是又难以选择合适的步长,在训练过程中新旧策略的的变化差异如果过大则不利于学习。

而PPO提出了新的目标函数可以在多个训练步骤实现小批量的更新,解决了Policy Gradient算法中步长难以确定的问题。由于其实现简单、性能稳定、能同时处理离散/连续动作空间问题、利于大规模训练等优势,近年来收到广泛的关注,同时也成为OpenAI默认强化学习算法。

GPT与强化学习

再往前回溯,其实在2019年GPT2出世后,OpenAI就有尝试结合GPT-2和强化学习。在NIPS2020的Learning to Summarize with Human Feedback中,OpenAI对于摘要生成任务,利用了人类反馈对强化学习模型进行训练。可以从这篇工作的整体流程图中,看出三步走的核心思想: 收集反馈数据 -> 训练奖励模型 -> PPO强化学习。

 RLHF第一阶段,针对多个候选摘要,人工排序(这里就体现出OpenAI的钞能力,按标注时间计费,标注过快的会被开除);第二阶段,训练排序模型(依旧使用GPT模型);第三阶段,利用PPO算法学习Policy(在摘要任务上微调过的GPT)。

文中模型可以产生比10倍大模型容量更好的摘要效果。但文中也同样指出,模型的成功部分归功于增大了Reward Model的规模,而这需要很大量级的计算资源,训练6.7B的强化学习模型需要320 GPU-days的成本。

另一篇2020年初的工作,是OpenAI的Fine-Tuning GPT-2 from Human Preferences。同样首先利用预训练模型,训练Reward模型;进而使用PPO策略进行强化学习,整体步骤初见ChatGPT的雏形。

而RLHF的思想,是在更早的2017年6月的OpenAI Deep Reinforcement Learning from Human Preferences提出,核心思想是利用人类的反馈,判断最接近视频行为目标的片段,通过训练来找到最能解释人类判断的奖励函数,然后使用RL来学习如何实现这个目标。

可以说,ChatGPT是站在InstructGPT以及以上理论的肩膀上完成的一项出色的工作,它们将LLM (large language model) / PTM (pretrain language model) 与 RL (reinforcement learning) 出色结合,证明这个方向可行。

WebGPT和CICERO

WebGPT是2021年底OpenAI的工作,其核心思想是使用GPT3模型强大的生成能力,学习人类使用搜索引擎的一系列行为,通过训练奖励模型来预测人类的偏好,使WebGPT可以自己搜索网页来回答开放域的问题,而产生的答案尽可能满足人类的喜好。

Cicero是Meta AI上个月发布的可以以人类水平玩文字策略游戏的AI系统, 其同样可以与人类互动,可以使用战略推理和自然语言与人类在游戏玩法中进行互动和竞争。Cicero的核心是由一个对话引擎和一个战略推理引擎共同驱动的,而战略推理引擎集中使用了RL,对话引擎与GPT3类似。

应用难点

对于ChatGPT的规模,目前没有更多信息支撑,所以无法明确如此智能的ChatGPT是在何规模下达成的。 最早的175B的GPT-3代号是Davinci,其他大小的模型有不同的代号。然而自此之后的代号几乎是一片迷雾,不仅没有任何论文,官方的介绍性博客也没有。OpenAI称Davinci-text-002/003是GPT-3.5,而它们均为InstrucGPT类型的模型,ChatGPT是基于其中一个微调模型得到,固由此推测ChatGPT可能是千亿模型。

大家一般没有机会接触千亿模型(Bloom之前没有开源的千亿模型,GPT-3也是收费的),不了解现在千亿模型的能力边界,对全量微调这个级别的模型也无从估计。ChatGPT的推断成本是比较高的。根据GPT3.5(Davinci)的成本推测:

1k tokens≈700 words为0.02美元,则换算后,一篇2k字的文章,直接调用需要0.4人民币,若保守按照日活1w用户,人均10篇文章计算,则每日调用成本为:10000x10x0.4=40000元。

和以前的模型比较,以BERT和T5为代表的早期Transformer和现在的大模型已不是一个量级。事实上11月28日OpenAI上新了text-davinci-003几乎没有引起国内的任何讨论,如果ChatGPT(11.30发布)不是免费试用,或许也不会引起这么大的反响。

同一时期的工作还有Deepmind的Sparrow和Google的LaMDA,效果与ChatGPT应该不相上下。同样以上提到的WebGPT和Cicero也在国内没有太大的水花。这两年LLM发展已经到了这个层级,或许因为成本或者工程化难度的问题,某种层面上在国内被忽视了。而此次ChatGPT正好找到了好的“曝光点”,一炮而红。

从OpenAI的成功可以看出,优秀的数据是一种极大的优势——除去技术上的考量,OpenAI很少开源数据,显然他们在数据上也下了大功夫,训练语料质量和开源的C4或The Pile不能同日而语;对于我们目前核心使用的扩增模型,Bloom作为千亿模型有很多待挖掘的能力。Bloom的微调任务中缺乏生成式的对话和问答,某些表现不如ChatGPT也在预料之中(实际上在Bloom的测试中,唯一与InstructGPT有重合的任务,是Bloom表现更好)。但是对于很多任务来说,配合In-context Learning,这个差距会被进一步缩小。

所以,我们应该思考如何利用这些令人激动的最新成果,而其中关键是如何找到适合我们入口的方式。比如使用ChatGPT,按不同需求生成高质量小样本数据,克服现有数据难获得的瓶颈;进而利用现有Bloom(GPT3模型)进行数据扩增。

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

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

相关文章

全网最详细中英文ChatGPT-GPT-4示例文档-从0到1快速入门语法纠正应用——官网推荐的48种最佳应用场景(附python/node.js/curl命令源代码,小白也能学)

从0到1快速入门语法纠正应用场景Introduce 简介setting 设置Prompt 提示Sample response 回复样本API request 接口请求python接口请求示例node.js接口请求示例curl命令示例json格式示例其它资料下载ChatGPT是目前最先进的AI聊天机器人,它能够理解图片和文字&#x…

已解决chatgpt报错出了些问题。如果此问题仍然存在,请通过我们的帮助中心 help.openai.com 与我们联系。

已解决chatgpt报错出了些问题。如果此问题仍然存在,请通过我们的帮助中心 help.openai.com 与我们联系。 文章目录报错问题报错原因解决方法千人全栈VIP答疑群联系博主帮忙解决报错报错问题 粉丝群里面的一个小伙伴遇到问题跑来私信我,想用chatgpt&am…

【原创】什么是chatGPT?Unity结合OpenAI官方api实现类似chatGPT的AI聊天机器人

一、什么是ChatGPT 最近chatGPT爆火,网络铺天盖地的各种文章视频,各种牛逼之声。倒算不上第一时间使用,发布隔了一周多,才从同事那里听说了这么个神奇的技术。这周阳了,持续发烧在家,忙着养病也没时间去了解…

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 让你的编程更简单 - Get More Done in Less Time

1 引言“AI will not replace your job, people who using AI will” - twitter userChatGpt不必多说了,一句话总结:”YYDS“。最近探索了一下在Code方面它能从哪些方面帮助我们,目前为止对我来说,具体有这么几个方面:…

ChatGPT几个有趣的玩法

文章目录1、开启一个VM2、以……的风格发文3、自动写代码用脚本编写一个多进程ping主机的程序3、用chatGPT学习loki4、客制化脚本生成一个自动建立软连接的脚本5、vscode 插件1、开启一个VM 在caht中输入一下内容 I want you to act as a Linux terminal. I will type comman…

chatgpt-4生成代码,看这一篇就够了

chatgpt-4生成代码,看这一篇就够了cursor示例pythondbscan 聚类voronoi 图像分割手写数字识别圆柱绕流matlab表白程序常微分方程常微分方程组2048小游戏C/C正则表达式匹配删除有序数组中的重复项n 皇后问题总结今天发现一个OpenAI的partnership基于gpt-4开发的好玩的…

ChatGPT成精了

ChatGPT 是OpenAI 发布的一个全新的聊天机器人模型。它到底有多厉害呢?我注册后体验了一下,你会感觉背后有个真人跟你在聊天。例如: 代码不仅可以运行,还特么有每行带有中文注释,这完全是降维打击StackOverflow。 再来…

ChatGPT | 分享论文 Rebuttal、Review 时可能会用到的 Prompt

ChatGPT 可以帮助润色学术论文,助力搞科研! 论文 Rebuttal, Review 过程中可能使用的一个 Prompt: Prompt:I want you to act as an English translator, spelling corrector and improver. I will speak to you in any language…

技巧|使用Chatgpt练习多种类型口语

练雅思口语——其实练什么语言、什么形式的口语都可以。 ChatGPT作为一款聊天机器人,自然可以用于对练口语——只要你的输入和它的输出都变换为语音的形式即可。 一、语音插件 首先,谷歌搜索voice control for chatgpt,点击第一个chrome……

ChatGPT的API接口的模型有多少种?这些模型都有什么功能或者在应用场景上有什么区别?【模型介绍使用与调用接口方法】

OpenAI 的 API 接口提供了多个 GPT-3 模型,每个模型针对不同的应用场景和任务进行了优化。以下是目前可用的 GPT-3 模型: davinci: 这是最大和最全面的模型,具有最高的准确性和灵活性,用于多种自然语言处理任务,如文本生成、对话系统、翻译等。 curie: 这个模型比 davin…

ChatGPT 通过谷歌算法面试,年薪 18.3 万美金

本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 提问。 声明:此图片由 MidJourney 生成 未经训练,不属于任何真实人物 大家好,我是小彭。 2023 开年以来,全球媒体最火爆的热点莫过于一…

ChatGPT必将在文档处理领域大有所为,未来以来,拭目以待【文末送书】

您好,我是码农飞哥(wei158556),感谢您阅读本文,欢迎一键三连哦。 💪🏻 1. Python基础专栏,基础知识一网打尽,9.9元买不了吃亏,买不了上当。 Python从入门到精…

ChatGPT与网络安全的跨时代对话

前言 ChatGPT:是人工智能技术驱动的自然语言处理工具,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,真正像人类一样来聊天交流,甚至能完成撰写邮件、视频脚本、文案、翻译、代码等任务。G…

爆火的ChatGPT到底能做什么?5分钟带你进入AI的大门

刘润说过:AI不会让你失业, 会使用AI的人, 才会让你失业。ChatGPT不会淘汰你, 能驾驭ChatGPT的人, 才会淘汰你。最近一个月,不管是各大新闻网站,还是朋友圈,ChatGPT都被刷爆了,火爆程度空前,有人焦虑&#x…

「ChatGPT国内首款学术优化工具首发」代码解析、论文润色全覆盖:未来以来,你来不来

♥️作者:白日参商 🤵‍♂️个人主页:白日参商主页 ♥️坚持分析平时学习到的项目以及学习到的软件开发知识,和大家一起努力呀!!! 🎈🎈加油! 加油&#xff01…

建议收藏chatGPT说的编译安装nginx教程

写在前面 这个是当下最流行最时髦的AI神器chatGPT和我一起合作写的一篇通用技术文章,请读者笑纳! chatGPT说 咚咚咚,咚咚咚,嘿嘿;咚咚咚,咚咚咚,嘿嘿;AI等一会,我来发答案…

【类ChatGPT】本地CPU部署中文羊驼大模型LLaMA和Alpaca

昨天在github上看到一个在本地部署中文大模型的项目,和大家分享一下。先把地址po出来。 项目名称:中文LLaMA&Alpaca大语言模型本地部署 (Chinese LLaMA & Alpaca LLMs) 项目地址:https://github.com/ymcui/Chinese-LLaMA-Alpaca 以…

释放 OpenAI 的 ChatGPT API 的力量:使用 Python 轻松进行命令行对话

最近,对话式 AI 变得越来越流行,原因很容易理解。凭借自动执行日常任务、提供客户支持甚至生成创意内容的能力,对话式 AI 正在迅速改变我们与技术交互的方式。OpenAI 的 ChatGPT 是当今可用的最强大的对话式 AI 工具之一,这是一种…

ChatGPT的智能性体现在哪里?就当前的发展路径而言,ChatGPT 还有更好的路可以走吗?

最近 ChatGPT 真的是太火爆了,连我儿子的小学老师都和我在微信上关于这个话题聊了很久。 ChatGPT 的智能性主要体现在它能够处理各种自然语言的问题,并且具备一定的理解、推理和生成能力。在语言理解方面,ChatGPT 可以理解语言的含义和语法结…