OpenAI的AGI语言智能演进之路:GPT1到ChatGPT

OpenAI的AGI语言智能演进之路:GPT1到ChatGPT

以AGI为目标的OpenAI语言智能演进

ChatGPT并非是凭空就突然有了这么强大的能力,而是OpenAI在语言智能上历经数年的探索和积累,一代代的演进之后,一方面语言模型在几乎大部分的NLP任务上都取得效果,另一方面基于人的反馈学习能够更好的理解需求生成对人更有帮助的内容,同时借助对话式交互的形态,变成一个人人都可以测试的产品(门槛相比API更低),产生巨大的影响力。深入的理解ChatGPT的技术,就需要追溯其背后一代代的技术演进上。

 

上图是我综合OpenAI官网[1]、GPT-1[2]、GPT-2[3]、GPT-3[4]、Codex[5]、InstructGPT[6]、博文[7]、李沐的论文精讲[8][9]、官网的Model Index[10]等梳理出来的在语言智能这条线上OpenAI的各个关键阶段的大模型演进路径,其实在GPT-3出来后就已经看到非常惊艳的效果,且衍生出很大的应用生态,而ChatGPT则再次把效果推到新的高峰。我把演进的阶段抽象为两个阶段。

阶段1:模型规模增大,融合的任务更多样、方式更自然

GPT-1:奠定AR式建模路径,通用多任务预训练+微调范式的开创

GPT-1实际上比BERT提出的要早,但是由于效果不如BERT所以影响力不如BERT,大家对预训练+微调范式的认知几乎都是从BERT开始的。但是GPT-1对于GPT系列而言,算是奠定了关键的技术路径,也是朝着能够一个模型解决多个任务的开创式的重要尝试。GPT系列模型的主要架构都是Transformer中decoder的架构,通常我们把这种架构归类为自回归类AR(Autoregressive),如下图所示:

图片[1]-OpenAI的AGI语言智能演进之路:GPT1到ChatGPT-CHATGPT实验室

而GPT-1,在finetune的时候还要加上任务特定的linear层,应用的数据量(7000本BookCorpus)和参数规模(0.117B)也都还不够大,效果上虽然不少能够达到sota但是还不够好。

GPT-2:扩大参数规模,用prompt让任务模型和语言模型合为一体

GPT-2在BERT之后出来,BERT声名大噪后,同样也说明了参数规模和预训练的数据量对于效果而言影响很大(BERT-LARGE 0.34 B),同时用AE的架构也带来了一些好处,在这些下游的finetune任务上能够更容易的刷到更好的结果。GPT-2时OpenAI一方面没有放弃AR的架构,同时选择在两个方面进行优化:

扩大参数规模:用更多优质的数据(采用reddit上优质的网页数据),把模型参数规模扩大到1.5B更自然的任务模型的融合方式:不管是GPT-1还是BERT都需要finetune才能在下游取得较好的效果,而且预训练的任务实际和finetune的任务之间也存在一些gap,不能充分的发挥预训练语言模型数据的优势,于是基于prompt技术的发展,GPT2的时候把下游的任务通过prompt的方式也加到预训练的模型中。进而让模型获得zero-shot的能力。比如,翻译任务可以表示成 “把中文翻译成英文,你好,hello”

虽然从效果上来看GPT-2在不少下游的finetune任务上也没有比BERT优秀太多,但是更自然的任务融合方式却是后续ChatGPT对instruction的理解能力的基石之一。但是因为其主打的zero-shot亮点上效果并非达到非常可用状态,因此GPT-2在业内的影响并不够大。

GPT-3:大力出奇迹,in-context learning选择先让few-shot learning可用

GPT-3在GPT-2的实验中发现随着参数规模的增大其效果的增长曲线并没有看到变缓的趋势,因此选择继续扩大参数规模,用更多优质的数据,直接把参数拉到了175B的规模。而在模型能力上,从GPT-2的zero-shot期望能直接有可用效果,到转变思路,使用meta-learning和in-context learning的思想,让模型在few-shot learning上先能够取得较好的效果。如下图所示:

图片[2]-OpenAI的AGI语言智能演进之路:GPT1到ChatGPT-CHATGPT实验室

OpenAI的研究人员认为在预训练的数据中实际上是有不少任务的一些上下文的,另外换个角度来说,人类其实在面对一些新的任务的时候往往也需要给一些示例(文章中称之为demonstration)。因此,在GPT-2的基础上,在inference的时候如果能够给一些context,能够让模型更好的产生正确的结果,他们称之为in-context learning。GPT-3的大力(模型规模扩大)确实出奇迹,在各种应用上都带来了很多大家意想不到的好效果,很快基于GPT-3就衍生了非常多的应用生态,包括 当时最火的一个事件是有哥们用GPT-3生成的文章建了个网站,其中的一篇文章还被一个热门的新闻点评网站给排到了最头部,一时让大家都感到震惊。

Codex:挑战AI写代码,继续融合更多任务

codex系列的演进主要是在GPT-3的基础上对写代码的任务进行融合训练,主要使用的是github上的语料(同样做了比较多的精心筛选)、还构造了一个人工标注的优质语料、竞赛题的优质语料、CI中优质语料。其中在第一个语料上进行post-train,这里面有一个比较意思的点是作者发现用GPT-3作为底座模型进行训练,并没有在code任务上取得增益的效果,但是收敛速度变快了,训练代价少了,我的推断是代码的这个任务,作者已经使用了比较多的数据。另外一个非常值得分享的实验结论是:如果用pass@k(指返回的生成K个结果中能通过正确代码测试的比例),而其中pass@1 其实仅为30%左右,但是pass@100 能达到70%+,那么就非常可用了。因此作者使用了一些排序的方式对结果进行重排序能够提升Top1的效果,而另外一个方面也说明大模型已经有非常多的知识,怎么使其正确的输出十分关键。

阶段2:从追求模型规模到追求对人们需求满足的应用效果

OpenAI发现GPT-3这个参数规模量级的模型已经具备很强大的知识,但是拥有的知识并不能很好很准确的面向人们对其的诉求而输出高质量的结果(OpenAI他们称之为Alignment Failure),因此如何进行human alignment变成更有性价比的演进方向。

InstructGPT:用人的反馈引导大规模语言模型变得更有价值

GPT-3的问题生成的质量参差不齐,容易产生语言通顺但是不真实、无用甚至是有害的结果zero-shot的需求理解能力不佳:GPT-3拥有in-context learning带来的few-shot的需求理解能力(即你需要告诉模型一些示例,且prompt的设计上也比较精心),但是对instruct zero-shot的需求理解能力不佳单纯的继续增大语言模型的规模并不能解决上述的问题InstructGPT的关键Motivation大模型原本就拥有大量的知识(这点很重要并非instructGPT通过少量的人工标注数据就突然获得了大量的知识),只是没有找到合适引导输出对人的需求有帮助的结果,通过人工标注的finetune能够引导模型输出更有价值的结果人的反馈有两种方式标注prompt的最佳结果,通过有监督学习的方式让模型学习。标注prompt下模型生成结果的质量排序,通过增强学习的方式引导模型朝更好结果质量的方向生成。

3. 关键的算法过程

以下便是chatGPT官网Blog以及instructGPT论文中的关键的算法过程

图片[3]-OpenAI的AGI语言智能演进之路:GPT1到ChatGPT-CHATGPT实验室

首先,通过人工标注的prompt-response进行有监督的finetune而后,基于人工标注的prompt-response pair的质量打分排序训练奖励模型(RM)最后再基于PPO的增强学习算法,基于prompt&RM模型进行finetune

InstructGPT是GPT-3到ChatGPT演进上至关重要的一步,也是当前拉开其他竞品的主要技术路径,因此展开做了精读和总结,详细见:深度ChatGPT系列(三)。

ChatGPT:对话语料训练打造更自然更具影响力的知识型对话产品

然而InstructGPT毕竟并不是最终的ChatGPT,其并不为多轮对话而设计以及优化,但是官方并没有release对应的paper,仅在官方博客上简略的介绍了下说和instructGPT采用类似的方法,但是这部分对于做对话的人而言却是关键的,尤其是其对话能力的训练和获得,这部分我从侧面去进行推测,详细见:深度ChatGPT系列(三)。

AGI为目标带来的技术路线特点及启发

谈完两个阶段的演进(How),我想重点谈谈OpenAI在问题建模、技术路径选择等上的关键标准(Why),以下是我的理解和总结,欢迎大家讨论和指正。

OpenAI一直用走向通用AGI的角度为标准来抉择,而这也带来了和其他大厂在技术路径上的差别以及最后的结果差异(比如典型的Google,更侧重于解决实际的应用问题,研究结果来自不同的研究组,通常没有带有整体的AGI方向演进的目标),展开从几个角度来看:

AR(Auto Regressive)架构(解码)的选择GPT-1在BERT之前选择了AR的架构,而在BERT出来效果比GPT-1更强时,GPT-2和3后续的架构OpenAI依然持续的选择AR架构。原因我认为有几个方面:BERT的这种AE(Auto Encoder)配合Mask LM的预训练任务,虽然能够更好的看到上文和下文,但是同样有train和inference时的gapAR架构非常符合人类的思考和回复的过程,符合”第一性原理”能够容纳的问题很丰富:语言模型(P(y|Xi,Xi-1,…,X0))、任务(P(y|Xi,Xi-1,…,X0,Task))都可以用条件概率生成的方式来建模

2. 更多、更自然的NLP任务融合和演进

要想实现AGI,显然不可能每个NLP的子任务都单独的来建模而后实现,甚至连pretrain+比较重的finetune的模式都觉得不够好,因而:

从GPT-2开始就放弃了之前pretrained+finetune且finetune时候还根据各个任务进行定制化的非自然语言表示的处理,选择用prompt的方式进行预训练时的融合持续增加各种能力:code能力、做题能力等打磨zero-shot和few-shot的能力,力争能够做到all-in-one

3. 以最终服务真实场景的需求满足为目标(真实应用效果)而不是刷公开的各种榜

这点在深入读完一系列的论文后深有感触,甚至可以说非常工业风的技术演进,每篇论文几乎都有50页+,但是整体都有上述的特点,具体而言:

较少的模型结构更改:模型结构侧更多还是紧跟已有的一些改进,做的一些调整也多为非常工业风的调整(比如 GPT-3中用Sparse Transformer替代Transformer来对应超大规模的参数)难却有价值的问题选择:比如 写代码的问题,比如 GPT-2开始关注的few-shot和zero-shot的问题极为精心的数据设计与处理:不论是GPT-1/2/3中对数据的选择(比如 为了从CommonCrawl中筛选优质数据还训了一个简单的模型进行筛选等),还是instructGPT中拥有非常多魔鬼细节的人工标注数据构建更深入的实验对比和分析获得更多的认知:几乎每篇论文都有非常详细的各种对比实验,以此获得更多深入的认知。比如,codex中有一个实验结论就非常有意思,实验发现如果用pass@k(指返回的生成K个结果中能通过正确代码测试的比例),而其中pass@1 其实仅为30%多,但是pass@100 能达到70%+,那么就非常可用,这里面也就侧面说明一点:大模型已经拥有足够多的知识,至少在召回上没有问题,如何进一步的引导到更好的生成质量上就变得非常关键。我甚至认为这个实验认知对后续instructGPT技术路线选择的演进至关重要!轻刷榜更贴近应用效果目标的评价设计:比如 在codex中,如果用简单的BLUE来判断生成质量显然完全无法体现效果目标,因此其设计了多个维度(包含一个人工精心设计的代码题目集合以及单测方式等);比如 GPT-2实际在刷榜能力上并没有拉开BERT太多,但是开始具备zero-shot和few-shot的直接prompt后生成结果的能力。

最后一点也让OpenAI继续引领大模型的发展方向,当其他各个大厂还在执迷于参数规模的扩大的时候,OpenAI已经发现单纯扩大参数规模也许刷榜效果好,但是对于开放领域上用户真实的需求满足上效果却并不能很好的提升,结合之前的认知开始引领RLHF(用人的反馈来引导模型)的新技术趋势。

References

OpenAI官网:https://openai.com/GPT-1:Improving Language Understanding by Generative Pre-Training:https://cdn.openai.com/research-covers/language-unsupervised/language_understanding_paper.pdfGPT-2:https://cdn.openai.com/better-language-models/language_models_are_unsupervised_multitask_learners.pdfGPT-3:https://arxiv.org/abs/2005.14165Codex:https://arxiv.org/abs/2107.03374InstructGPT:https://arxiv.org/abs/2203.02155How does GPT Obtain its Ability? Tracing Emergent Abilities of Language Models to their Sources:https://yaofu.notion.site/How-does-GPT-Obtain-its-Ability-Tracing-Emergent-Abilities-of-Language-Models-to-their-Sources-b9a57ac0fcf74f30a1ab9e3e36fa1dc1李沐,GPT,GPT-2,GPT-3 论文精读李牧,OpenAI Codex 论文精读OpenAI GPT 3.5 Model IndexChatGPT,https://openai.com/blog/chatgpt/

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容