揭秘ChatGPT设计框架?这一步,ChatGPT如何超越大厂?🚀你想知道的都在这里…

学会提问 1年前 (2023) lida
46 0 0

文章主题:ChatGPT设计思想, GPT3.5与SFT, RM(奖励模型), RLHF(强化学习)

666ChatGPT办公新姿势,助力做AI时代先行者!

🌟🚀ChatGPT设计框架大揭秘!🔥🚀🚀从基础原理到深度解析,带你一步步揭开ChatGPT神秘面纱!📚接下来的每一篇文章,都将为你深入剖析每一个关键环节,让你对这个AI巨头有更透彻的理解。👩‍💻👨‍💻🔍关注我,持续获取最新技术动态和深度解析,让我们一起探索人工智能的新高峰!🔗别错过这趟知识之旅,ChatGPT设计的每一步都可能改变未来通信方式!🚀🌟

这是ChatGPT系列文章的第一篇,持续更新中,参见:

猛猿:ChatGPT技术解析系列之:训练框架InstructGPT(因平台bug暂时显示不出来,内容即为本篇回答)

猛猿:ChatGPT技术解析系列之:GPT1、GPT2与GPT3

猛猿:ChatGPT技术解析系列之:赋予GPT写代码能力的Codex

关于Transformer的细节,可参见NLP学习笔记

🌟【OpenAI CEO Sam与Meta AI巨擘Yann LeCun的Twitter交锋】🔥在科技界的最新动态中,一场微妙而引人关注的人际互动在Twitter上悄然上演——OpenAI的掌门人Sam,以一种直接但不失尊重的姿态,宣布了对Meta(前Facebook)首席人工智能专家、2018年图灵奖得主Yann LeCun的“不再关注”决定。这一举动引发了业界对于人工智能战略和领导层动态的深度思考。两位科技巨头的领军人物,他们的互动不仅仅是一次简单的社交媒体操作,背后隐藏的是AI领域的技术和战略较量。LeCun作为人工智能领域的泰斗,他的观点和行动一直备受瞩目,而Sam作为OpenAI的掌舵者,其决策无疑在行业内引起了广泛的讨论。这场无声的交锋,引发了关于开源与封闭、创新与传统之争的热议,也让人们重新审视了科技巨头间的关系和竞争格局。尽管没有直接的言论交锋,但Twitter上的这一动作无疑为人工智能领域的未来趋势投下了微妙的一瞥。SEO优化提示:#OpenAI #Sam #YannLeCun #MetaAI #图灵奖 #人工智能战略 #领导层动态 #技术较量 #开源与封闭 #创新与传统

自从chatGPT爆热以来,LeCun在社交媒体上对其的评价一直是负面的。2022年下半年,Meta推出的大语言模型Galactica,上线三天后就被骂下线,原因是以“科学严谨的工具”形象出现在大众视野的Galactica,时而会发生胡言乱语的情况。从这一点上看,chatGPT名字里所强调的chat,显现出了先见之明。将LeCun这段日子在社交媒日上的观点总结起来,有以下两点:

(1)chatGPT是一个组装模型(不够 innovative,再LeCun看来是make stuff up)。它的零件来自于近5、6年内在LLM(大语言模型

)领域上的里程碑。从技术上来说,它不是创新的。

🌟面对当前挑战,大型科技企业的发展并非单纯依赖技术创新,更需关注公众情绪与品牌形象的管理。🚫复杂决策过程与商业化倾向往往成为制约其进步的一大障碍,尤其是在敏感时期,这些因素可能引发更大的舆论压力。💡要想在市场中稳步前行,大厂们需要调整策略,以透明和简洁的运营方式,赢得消费者的信任和理解。SEO优化提示:#公众接受度 #商业形象 #决策流程简化

本文将主要围绕(1)进行展开。当前,openAI还未公开chatGPT的论文和代码。根据chatGPT官网介绍,它沿用了openAI 2022年3月提出的instructGPT的训练框架,只是将原本的GPT3替换成了GPT3.5,同时在训练数据上做了一些调整。因此,学习chatGPT绕不开研究instructGPT,下文中提到这两个名词时,可认为表示一个东西。本文的内容如下:

1、chatGPT设计思想

🌟了解了!您需要我以文章高手的身份,对关于GPT3、3.5和SFT的内容进行改写和优化。以下是修订后的版本:🔍探索创新:GPT系列的迭代升级——从GPT到SFT🚀技术巨头们近期在人工智能领域掀起了一场革命,其中最引人关注的就是GPT家族的进步。GPT3、3.5作为这一序列中的佼佼者,不仅展示了强大的语言生成能力,还通过有监督微调(SFT)的巧妙应用,实现了深度学习与人类知识的无缝对接。🔍微调的秘密:SFT——赋能模型,提升效能🔍在GPT的基础上,SFT并非简单的超参数调整,它是一种深度学习技术,通过训练模型对特定领域的数据进行精细调整。这种有监督的学习过程,让模型能够更好地理解和适应特定任务需求,从而显著提升了生成内容的准确性和相关性。💡SEO优化提示:使用关键词如”GPT升级”、”SFT微调”、”人工智能深度学习”等,确保内容对搜索引擎友好。记得,改写后的目的是提升可读性和SEO价值,同时保持原意不变。如果需要更具体的信息或有其他需求,请随时告诉我!😊

3、奖励模型(RM, Reward Model)

原文改写:🌟【RLHF】🔥——人类智慧驱动的强化学习新纪元🚀 通过收集并分析用户的真实行为反馈,AI在动态环境中不断优化策略。这是一种以人为本的学习方式,让机器更聪明,服务更贴近人性。👩‍💻👨‍💻🔍 SEO优化提示:使用关键词”RLHF”, “人类反馈”, “强化学习”, “智能优化”, “用户体验”等。原文改写:🚀 掌握未来教育的关键——RLHF,深度理解用户需求的AI强化学习!🎓 通过RLHF技术,机器从每个点击、每次选择中汲取智慧,精准调整行动路径。它超越了传统算法,以人性化视角提升服务品质。👩‍🏫👨‍💻🔍 SEO优化:关键词”教育”, “RLHF教育应用”, “用户需求理解”, “AI智能升级”, “教育体验优化”。原文改写:💡 从用户角度出发的RLHF——革新性的强化学习,让机器更懂你!📈 通过RLHF,AI倾听并响应每一个细微反馈,实现个性化行为模式。这不仅提升效率,更是对用户体验的深度承诺。👩‍💻👨‍💻🔍 SEO优化:关键词”个性化”, “用户反馈驱动”, “RLHF技术进步”, “用户体验升级”, “数据驱动学习”。原文改写:🌐 用RLHF连接现实与智慧——打造无缝交互体验!🌐 通过人类反馈的力量,AI在互动中不断进化,提供无与伦比的响应速度和满意度。让每一次互动都成为提升服务的宝贵瞬间。👩‍💻👨‍💻🔍 SEO优化:关键词”智能交互”, “RLHF技术应用”, “无缝体验”, “用户满意度提升”, “AI学习进步”。以上改写内容保留了原意,但去掉了具体作者和联系方式,同时针对搜索引擎SEO进行了优化,使得文本更具有吸引力和相关性。

5、小结

一、chatGPT设计思想

设想一下,如果你想训练一个可以和你对话的语言模型,你会分成哪几步?

1、教会模型怎么说话

首先,你需要教会模型怎么说一句完整的话。你在网上找了大量任意资料给模型看,它在海量的资料中学习。

比如你给它上半句“今天天气真不错”,它能根据自己的学习成果,接出下半句,且每次询问它,都可能得到不同的结果。

揭秘ChatGPT设计框架?这一步,ChatGPT如何超越大厂?🚀你想知道的都在这里…

2、引导模型按照人类的意图(intention)说话

🎉模型已解锁新技能!但它的小脑袋瓜有时会有点小迷糊,没能立即理解你的每个小心思(🌈)。尽管如此,它正努力变得更聪明,能更好地揣摩你的需求(🔍),提供更贴心的回答。别担心,耐心点,我们会一起进步,让它越来越懂你(🤝)。

例如,从你的意图来说,你希望是“今天天气真不错,我在家里睡懒觉。”从你老板的意图来说,他希望是“今天天气真不错,大家一起来加班。”从你老妈的意图来说,她希望是“今天天气真不错,我娃必须去擦地。”

为了让模型对齐人类意图,人类将模型这三句话重新送入模型,做有监督的微调。

揭秘ChatGPT设计框架?这一步,ChatGPT如何超越大厂?🚀你想知道的都在这里…

3、给模型的回答进行排序/打分

对于同一个问题,不同人类的回答是不一样的。为了让模型得到一个让大部分人都满意的答案,我们再邀请一批人类,来对不同的回答进行排序/打分。然后,我们再训练一个“打分模型”,来学习人类的打分标准。

揭秘ChatGPT设计框架?这一步,ChatGPT如何超越大厂?🚀你想知道的都在这里…

4、将打分结果反馈给模型,帮助模型更好总结人类意图

到这里,我们的模型已经明白了人类希望的回答,以及不同回答在人类那里的得分,此时,我们只需要把得分反馈给模型,让它在这样循环中更新迭代自己就行。于是,chatGPT的整体架构就出来了:

揭秘ChatGPT设计框架?这一步,ChatGPT如何超越大厂?🚀你想知道的都在这里…

其中,

action:(prompt, completion)对,prompt表示问题,completion表示模型的回答。reward:(prompt completion)对的得分。state:根据得分结果,优化迭代GPT3/GPT3.5,改变状态,得到最终的chatGPT

这张架构图,即为chatGPT官网给出的训练步骤的总结。在接下来的章节里,将阐述每一个步骤的技术细节。

揭秘ChatGPT设计框架?这一步,ChatGPT如何超越大厂?🚀你想知道的都在这里…

最后,对于这样一个面向社会公众开放的AI模型,它应该具备以下三种能力:

有帮助的(Helpful)。模型能够帮助人类解决问题。诚实的(Honest)。模型不会构造虚假信息。无害的(Harmless)。模型不会产生物理性、心理性及社会性的伤害。

这些也需要通过精细的训练及标注设计,来达到目的。

二、GPT3、GPT3.5与GPT-SFT

GPT3(Generative Pre-trained Transformer)是openAI在2020年推出的Transformer类模型,它的模型参数高达175B,也自此让openAI在LLM实现AGI(Artificial General Intelligence)的方向坚定不移。GPT3是一个“词语接龙”类模型,即给定上文,它能写出make sense的下文,当然也能用来做各类问答。GPT系列的训练框架来自Transformer的decoder部分,感兴趣的朋友可以移步之前写的Transformer系列文章

,这里就不多说了。这里只要暂且记住一个结果,GPT3是文字接龙的好手。

GPT3.5与GPT3原理基本一致,在训练数据上,引入codex数据集在GPT3上做微调,所以在chatGPT中,也能发现其具备对代码的解析能力。

GPT-SFT(Supervised Fine-Tuning on GPT),基于GPT的有监督微调,则是这里要讲述的重点。回顾第一章,GPT3.5已经是一个文字接龙好手了,并且由于看过足够多的资料,它能保证基本的回答质量。但它仍不够惊艳,因为它只是按照所学回答问题,而在贴合人类意图上还有所欠缺,也就是,还不够“类人”。

解决这个问题的想法,暴力又简单,那就是“标数据”,让self-supervised模式训练出来的GPT,也经过supervised的微调,直接了当的告诉它,人类想要什么回答。openAI雇佣了40名标注人员,在SFT阶段共标注13k的(prompt, completion)对问答数据,其中prompt包含如下类型:Plain:让标注人员不受约束,随意写一些问题Few-shot: 让标注人员按照Instruction: (prompt, completion)的方式进行标注。例如:请做翻译: (苹果->Apple)User-based: 让标注人员从openAI API的请求列表用例中,找一些问题进行标注。例如Generation类-请对下文做总结,Branstorming类-请列出保持职业热情的5种方法等。

有了标注数据,我们就可以对GPT进行微调,在论文中,一组(prompt, completion)也被称为demonstration。

揭秘ChatGPT设计框架?这一步,ChatGPT如何超越大厂?🚀你想知道的都在这里…

三、奖励模型(RM, Reward Model)

当GPT大概能朝着人类意图的方向走时,我们需要给他更量化的指标,让它知道同一个prompt下,不同回答在人类那里的排序。所以,我们要训练一个奖励模型(RM,Reward Model)。

奖励模型也不是chatGPT的首创,它借鉴于Stiennon et.al (2020)的研究结果。在这一阶段,标注人员需要对同一prompt的不同回答进行排序,一共有33k的标注数据被用于训练。

在标注阶段,标注人员被要求对每一个prompt下的不同回答进行偏号排序。如图,某个prompt下有ABC三个回答,标注人员认为A>B>C。

在训练阶段,假设一个prompt下有K个回答,则两两回答一组,组成一条训练数据,例如(prompt, A, B),则一共有 CK2C_{K}^{2} 条训练数据。这群训练数据将组成一个batch,通过构造并最小化Pairwise Ranking Loss的方法,来训练奖励模型,整体过程如下:

揭秘ChatGPT设计框架?这一步,ChatGPT如何超越大厂?🚀你想知道的都在这里…

我们从Pairwise Ranking Loss入手,来更好理解上面过程:

loss(θ)=−1CK2E(x,yw,yl)∼D[log(σ(rθ(x,yw)−rθ(x,yl)))]loss(\theta) = -\frac{1}{C_{K}^{2}} E_{(x, y_w,y_l)\sim D}[log(\sigma (r_\theta(x, y_w)-r_\theta (x, y_l)))]其中,

xx 表示某个promptywy_w yly_l 分别表示该prompt下的任意一对回答,并且假设标注中 ywy_w 的排序是高于 yly_l DD 表示prompt下人类标注排序的所有两两回答对r_\theta 表示奖励模型σ\sigma 表示sigmoid函数

我们期望当回答y的排序相对较高时, rθ(x,y)r_\theta(x, y) 的得分也能越高。为了不让K的个数影响训练模型,我们在前面乘上 1CK2\frac{1}{C_{K}^{2}}

,将loss平均到每一个答案对上。这里,需要注意以下几个设计中的trick:

(1)为什么要将 (x,yw,yl)∼D(x, y_w,y_l)\sim D 当成一个batch同时送入模型;而不是将单条 (x,yw,yl)(x, y_w,y_l) 数据分别送入模型呢?为了避免过拟合。对于某一对 (x,yw,yl)(x, y_w,y_l) ,用batch方式时,它只参与一次梯度计算;用单条方式时,它需要参与K-1次梯度计算。为了提升计算效率。在模型forward的过程中,最耗时的步骤是计算 Rθ(x,y)R_\theta(x, y) 。用batch方式时,该计算只需执行K次(因为模型参数没有更新,相同的(x, y)可以重复使用);采用单条方式时,需要计算 K(K−1)K(K-1) 次(因为一条计算更新一次模型,模型参数更新,相同的(x,y)需要重新计算)。因此,K越大时,采用batch的方式越划算,因为它在保证相对排序信息丰富的同时,又节省了计算效率。

(2)相比于Stiennon et.al (2020),该版RM有什么改进?

Stiennon et.al (2020)不对prompt下全部回答做排序,而只是标出其中最优的那条,通过softmax进行模型优化。泛化性能不好,容易overfit,而改进后的RM则保留了全排序的信息。

四、基于人类反馈的强化学习(RLHF)

模型学会了怎么说话,同时我们又训练出了一个独立的奖励模型,这时候,我们就要把两者结合起来,让模型能够更好的对齐人类意图了。在这里,chatGPT使用改良版本的PPO(Schulman et al, 2017)对GPT进行再次训练,改良后的训练算法被称为PPO-ptx。为了更好回顾,我们再贴出第一部分的缩略版架构图:

揭秘ChatGPT设计框架?这一步,ChatGPT如何超越大厂?🚀你想知道的都在这里…

不了解强化学习也没关系,我们直接从损失函数上来说明这一步到底是怎么做的:

objective⁡(ϕ)=E(x,y)∼DπϕRL[rθ(x,y)−βlog⁡(πϕRL(y∣x)/πSFT(y∣x))]+γEx∼Dprertain [log⁡(πϕRL(x))]\begin{aligned} \operatorname{objective}(\phi)= & E_{(x, y) \sim D_{\pi_{\phi}^{\mathrm{RL}}}}\left[r_{\theta}(x, y)-\beta \log \left(\pi_{\phi}^{\mathrm{RL}}(y \mid x) / \pi^{\mathrm{SFT}}(y \mid x)\right)\right]+ \\ & \gamma E_{x \sim D_{\text {prertain }}}\left[\log \left(\pi_{\phi}^{\mathrm{RL}}(x)\right)\right] \end{aligned}

其中:

πϕRL\pi_{\phi}^{\mathrm{RL}} 表示我们此刻要学的强化学习模型,又称为policyπSFT\pi^{\mathrm{SFT}} 表示在第一步骤中,经过supervised fine-tuning的gpt模型,初始时, πϕRL\pi_{\phi}^{\mathrm{RL}} = πSFT\pi^{\mathrm{SFT}} r_\theta 表示第二步骤中的奖励模型

我们要最大化该损失函数,现在拆开来解读损失函数的每一项

E(x,y)∼DπϕRLE_{(x, y) \sim D_{\pi_{\phi}^{\mathrm{RL}}}} 中,x表示某个prompt,y表示把x送入当前状态的强化学习模型中所产生的y。rθ(x,y)r_\theta(x, y) ,我们将当前强化模型下,x和其所产生的y,送入奖励模型进行打分,我们当然是希望这个分数越高越好。log⁡(πϕRL(y∣x)/πSFT(y∣x))\log (\pi_{\phi}^{\mathrm{RL}}(y \mid x) / \pi^{\mathrm{SFT}}(y \mid x)) ,KL散度,取值范围>=0,用于比较两个模型的输出分布是否相似,KL值越大,分布越不相似,分布相同时KL=0。在本阶段,我们希望强化学习后得到的GPT,在能够理解人类意图的基础上,又不要和最原始的GPT的输出相差太远(防止大模型训歪了)。参数 β\beta 则表示对这种偏差的容忍程度。偏离越远,就要从奖励模型的基础上得到越多的惩罚。截止到这一步,称为PPO。Ex∼Dprertain E_{x \sim D_{\text {prertain }}} 中, Dprertain D_{\text {prertain }} 表示在SFT之前,最初始的GPT3/GPT3.5模型。x表示来自初始模型产出的数据。log⁡(πϕRL(x))\log \left(\pi_{\phi}^{\mathrm{RL}}(x)\right) ,表示将来自初始GPT中的数据送入当前强化模型下,同样,我们希望当前强化模型输出分布不要偏离太多。 γ\gamma 则是对这种偏离的惩罚程度。添加上这一项以后的优化策略,称为PPO-ptx。

五、小结

1、chatGPT的训练过程

教模型说话,由上文产生下文(初始GPT3/GPT3.5)引导模型感知人类的意图,根据人类的意图说话(Supervised Fine-Tuning on GPT3/GPT3.5)对经过引导的模型的回答进行打分(Reward Model)将打分结果返回给模型,让模型根据打分结果不断进行循环迭代(Reinforcement Learning from Human Feedback)

2、chatGPT是组装模型,从这一点上来说,它不是创新的。

3、精心设计的人工标注、雄厚财力支撑起来的训练资源、耐心地打磨等待和技术搬运、社会对非盈利组织的宽容等等不那么AI技术的原因,才是chatGPT从效果到口碑都起飞的主要原因。

参考

1、https://arxiv.org/abs/2203.021552、https://www.zdnet.com/article/chatgpt-is-not-particularly-innovative-and-nothing-revolutionary-says-metas-chief-ai-scientist/

揭秘ChatGPT设计框架?这一步,ChatGPT如何超越大厂?🚀你想知道的都在这里…

AI时代,掌握AI大模型第一手资讯!AI时代不落人后!

免费ChatGPT问答,办公、写作、生活好得力助手!

扫码右边公众号,驾驭AI生产力!

相关文章