ChatGPT怎么突然变得这么强,博士万字长文深度拆解GPT3.5能力起源

最近OpenAI发布的ChatGPT给人工智能领域注入了一针强心剂,其强大的能力远超自然语言处理研究者们的预期。

体验过ChatGPT的用户很自然地就会提出疑问:初代GPT3是如何进化成ChatGPT的?GPT3.5惊人的语言能力又来自哪?

作者符尧是2020年入学的爱丁堡大学博士生,硕士毕业于哥伦比亚大学,本科毕业于北京大学,目前在艾伦人工智能研究所做研究实习生。他的主要研究方向为人类语言的大规模概率生成模型。

作者彭昊本科毕业于北京大学,博士毕业于华盛顿大学,目前是艾伦人工智能研究所的YoungInvestigator,并将于2023年8月加入伊利诺伊大学厄巴纳-香槟分校计算机科学系,担任助理教授。他的主要研究方向包括使语言AI更有效率和更容易理解,以及建立大规模的语言模型。

作者TusharKhot博士毕业于威斯康星-麦迪逊大学,目前是艾伦人工智能研究所的研究科学家。他的主要研究方向为结构化机器推理。

初代GPT-3展示了三个重要能力:

那么这些能力从何而来呢?

基本上,以上三种能力都来自于大规模预训练:在有3000亿单词的语料上预训练拥有1750亿参数的模型(训练语料的60%来自于2016-2019的C4+22%来自于WebText2+16%来自于Books+3%来自于Wikipedia)。其中:

令人好奇的是,初代的GPT-3有多强。

其实比较难确定初代GPT-3(在OpenAIAPI中被称为davinci)到底是「强」还是「弱」。

一方面,它合理地回应了某些特定的查询,并在许多数据集中达到了还不错的性能;

另一方面,它在许多任务上的表现还不如T5这样的小模型(参见其原始论文)。

在今天(2022年12月)ChatGPT的标准下,很难说初代的GPT-3是「智能的」。Meta开源的OPT模型试图复现初代GPT-3,但它的能力与当今的标准也形成了尖锐的对比。许多测试过OPT的人也认为与现在的text-davinci-002相比,该模型确实「不咋地」。

尽管如此,OPT可能是初代GPT-3的一个足够好的开源的近似模型了(根据OPT论文和斯坦福大学的HELM评估)。

虽然初代的GPT-3可能表面上看起来很弱,但后来的实验证明,初代GPT-3有着非常强的潜力。这些潜力后来被代码训练、指令微调(instructiontuning)和基于人类反馈的强化学习(reinforcementlearningwithhumanfeedback,RLHF)解锁,最终体展示出极为强大的突现能力。

从最初的GPT-3开始,为了展示OpenAI是如何发展到ChatGPT的,我们看一下GPT-3.5的进化树:

在2020年7月,OpenAI发布了模型索引为的davinci的初代GPT-3论文,从此它就开始不断进化。

在2021年7月,Codex的论文发布,其中初始的Codex是根据(可能是内部的)120亿参数的GPT-3变体进行微调的。后来这个120亿参数的模型演变成OpenAIAPI中的code-cushman-001。

在2022年3月,OpenAI发布了指令微调(instructiontuning)的论文,其监督微调(supervisedinstructiontuning)的部分对应了davinci-instruct-beta和text-davinci-001。

在2022年4月至7月的,OpenAI开始对code-davinci-002模型进行Beta测试,也称其为Codex。然后code-davinci-002、text-davinci-003和ChatGPT都是从code-davinci-002进行指令微调得到的。详细信息请参阅OpenAI的模型索引文档。

尽管Codex听着像是一个只管代码的模型,但code-davinci-002可能是最强大的针对自然语言的GPT-3.5变体(优于text-davinci-002和-003)。code-davinci-002很可能在文本和代码上都经过训练,然后根据指令进行调整(将在下面解释)。

然后2022年5-6月发布的text-davinci-002是一个基于code-davinci-002的有监督指令微调(supervisedinstructiontuned)模型。在text-davinci-002上面进行指令微调很可能降低了模型的上下文学习能力,但是增强了模型的零样本能力(将在下面解释)。

然后是text-davinci-003和ChatGPT,它们都在2022年11月发布,是使用的基于人类反馈的强化学习的版本指令微调(instructiontuningwithreinforcementlearningfromhumanfeedback)模型的两种不同变体。

text-davinci-003恢复了(但仍然比code-davinci-002差)一些在text-davinci-002中丢失的部分上下文学习能力(大概是因为它在微调的时候混入了语言建模)并进一步改进了零样本能力(得益于RLHF)。另一方面,ChatGPT似乎牺牲了几乎所有的上下文学习的能力来换取建模对话历史的能力。

总的来说,在2020-2021年期间,在code-davinci-002之前,OpenAI已经投入了大量的精力通过代码训练和指令微调来增强GPT-3。当他们完成code-davinci-002时,所有的能力都已经存在了。很可能后续的指令微调,无论是通过有监督的版本还是强化学习的版本,都会做以下事情(稍后会详细说明):

许多论文都报道了code-davinci-002在基准测试中实现了最佳性能(但模型不一定符合人类期望)。在code-davinci-002上进行指令微调后,模型可以生成更加符合人类期待的反馈(或者说模型与人类对齐),例如:零样本问答、生成安全和公正的对话回复、拒绝超出模型它知识范围的问题。

在code-davinci-002和text-davinci-002之前,有两个中间模型,分别是davinci-instruct-beta和text-davinci-001。两者在很多方面都比上述的两个-002模型差(例如,text-davinci-001链式思维推理能力不强)。

所以我们在本节中重点介绍-002型号。

思维链推理之所以重要,是因为思维链可能是解锁突现能力和超越缩放法则(scalinglaws)的关键。

这些能力从何而来?

与之前的模型相比,两个主要区别是指令微调和代码训练。具体来说:

最初的GPT-3没有接受过代码训练,它不能做思维链。

text-davinci-001模型,虽然经过了指令微调,但第一版思维链论文报告说,它的它思维链推理的能力非常弱——所以指令微调可能不是思维链存在的原因,代码训练才是模型能做思维链推理的最可能原因。

PaLM有5%的代码训练数据,可以做思维链。

Codex论文中的代码数据量为159G,大约是初代GPT-35700亿训练数据的28%。code-davinci-002及其后续变体可以做思维链推理。

在HELM测试中,Liangetal.(2022)对不同模型进行了大规模评估。他们发现了针对代码训练的模型具有很强的语言推理能力,包括120亿参数的code-cushman-001.。

我们在AI2的工作也表明,当配备复杂的思维链时,code-davinci-002在GSM8K等重要数学基准上是目前表现最好的模型。

直觉来说,面向过程的编程(procedure-orientedprogramming)跟人类逐步解决任务的过程很类似,面向对象编程(object-orientedprogramming)跟人类将复杂任务分解为多个简单任务的过程很类似。

这里我想进一步补充的是:由于面向对象编程中的类继承,代码也可能有助于模型建立编码层次结构的能力。我们将对这一假设的检验留给未来的工作。

另外还要注意一些细节差异:

text-davinci-002与code-davinci-002

Code-davinci-002是基础模型,text-davinci-002是指令微调code-davinci-002的产物(见OpenAI的文档)。它在以下数据上作了微调:(一)人工标注的指令和期待的输出;(二)由人工标注者选择的模型输出。

当有上下文示例(in-contextexample)的时候,Code-davinci-002更擅长上下文学习;当没有上下文示例/零样本的时候,text-davinci-002在零样本任务完成方面表现更好。从这个意义上说,text-davinci-002更符合人类的期待(因为对一个任务写上下文示例可能会比较麻烦)。

OpenAI不太可能故意牺牲了上下文学习的能力换取零样本能力——上下文学习能力的降低更多是指令学习的一个副作用,OpenAI管这叫对齐税。

001模型(code-cushman-001和text-davinci-001)v.s.002模型(code-davinci-002和text-davinci-002)

001模型主要是为了做纯代码/纯文本任务;002模型则深度融合了代码训练和指令微调,代码和文本都行。

Code-davinci-002可能是第一个深度融合了代码训练和指令微调的模型。证据有:code-cushman-001可以进行推理但在纯文本上表现不佳,text-davinci-001在纯文本上表现不错但在推理上不大行。code-davinci-002则可以同时做到这两点。

在这个阶段,我们已经确定了指令微调和代码训练的关键作用。一个重要的问题是如何进一步分析代码训练和指令微调的影响?

具体来说:上述三种能力是否已经存在于初代的GPT-3中,只是通过指令和代码训练触发/解锁?或者这些能力在初代的GPT-3中并不存在,是通过指令和代码训练注入?

如果答案已经在初代的GPT-3中,那么这些能力也应该在OPT中。因此,要复现这些能力,或许可以直接通过指令和代码调整OPT。

但是,code-davinci-002也可能不是基于最初的GPT-3davinci,而是基于比初代GPT-3更大的模型。如果是这种情况,可能就没办法通过调整OPT来复现了。

研究社区需要进一步弄清楚OpenAI训练了什么样的模型作为code-davinci-002的基础模型。

我们有以下的假设和证据:

初代的GPT-3在数据集C42016-2019上训练,而code-davinci-002训练集则在延长到2021年才结束。因此code-davinci-002有可能在C4的2019-2021版本上训练。

初代的GPT-3有一个大小为2048个词的上下文窗口。code-davinci-002的上下文窗口则为8192。GPT系列使用绝对位置嵌入(absolutepositionalembedding),直接对绝对位置嵌入进行外推而不经过训练是比较难的,并且会严重损害模型的性能(参考Pressetal.,2022)。如果code-davinci-002是基于初代GPT-3,那OpenAI是如何扩展上下文窗口的?

这主要是因为OpenAI的论文报告的指令数据量大小只有77K,比预训练数据少了几个数量级。

其他指令微调论文进一步证明了数据集大小对模型性能的对比,例如Chungetal.(2022)的工作中,Flan-PaLM的指令微调仅为预训练计算的0.4%。一般来说,指令数据会显著少于预训练数据。

代码数据集的规模与上述指令微调的情况不同。这里的代码数据量足够大,可以占据训练数据的重要部分(例如,PaLM有8%的代码训练数据)

如上所述,在code-davinci-002之前的模型text-davinci-001大概没有在代码数据上面微调过,所以它的推理/思维链能力是非常差的,正如第一版思维链论文中所报告的那样,有时甚至比参数量更小的code-cushman-001还差。

因为它们具有相似的模型大小(110亿和120亿),相似的训练数据集(C4),它们最大的区别就是有没有在代码上训练过/有没有做过指令微调。

目前还没有这样的比较。我们把这个留给未来的研究。

在当前阶段(2022年12月),text-davinci-002、text-davinci-003和ChatGPT之间几乎没有严格的统计上的比较,主要是因为:

所以在这些模型之间的比较更多是基于研究社区的集体经验(统计上不是很严格)。不过,我们相信初步的描述性比较仍然可以揭示模型的机制。

我们首先注意到以下text-davinci-002,text-davinci-003和ChatGPT之间的比较:

这意味着大多数新模型的行为都是RLHF的产物。

那么让我们看看RLHF触发的能力:

有两件事情值得注意:

幕后发生的事情可能是:

到目前为止,我们已经仔细检查了沿着进化树出现的所有能力,下表总结了演化路径:

我们可以得出结论:

如果是监督学习版,得到的模型是text-davinci-002。

如果是强化学习版(RLHF),得到的模型是text-davinci-003。

无论是有监督还是RLHF,模型在很多任务的性能都无法超过code-davinci-002,这种因为对齐而造成性能衰退的现象叫做对齐税。

建模对话历史。

增加对话信息量。

拒绝模型知识范围之外的问题。

虽然GPT-3.5是自然语言处理研究中的重要一步,但它并没有完全包含许多研究人员(包括AI2)设想的所有理想属性。以下是GPT-3.5不具备的某些重要属性:

我最近遇到的一个例子是:ChatGPT坚持认为3599是一个质数,尽管它承认3599=59*61。另外,请参阅Reddit上关于游得最快的海洋哺乳动物的例子。

然而,模型信念的强度似乎存在不同的层次。一个例子是即使我告诉它达斯维达(星球大战电影中的人物)赢得了2020年大选,模型依旧会认为美国现任总统是拜登。但是如果我将选举年份改为2024年,它就会认为总统是达斯维达是2026年的总统。

在自然语言处理的文献中,「推理」一词的定义很多时候不太明确。但如果我们从模糊性的角度来看,例如一些问题(a)非常模棱两可,没有推理;(b)有点儿逻辑在里面,但有些地方也可以模糊;(c)非常严谨,不能有任何歧义。

那么,模型可以很好地进行(b)类的带模糊性的推理,例子有:

生成如何做豆腐脑的方法。做豆腐脑的时候,中间很多步骤模糊一点是可以接受的,比如到底是做咸的还是做甜的。只要整体步骤大致正确,做出来的豆腐脑儿就能吃。

数学定理的证明思路。证明思路是用语言表达的非正式的逐步解法,其中每一步的严格推导可以不用太具体。证明思路经常被用到数学教学:只要老师给一个大致正确的整体步骤,学生就可以大概明白。然后老师把具体的证明细节作为作业布置给学生,答案略。

GPT-3.5不能进行类型(c)的推理(推理不能容忍歧义)。

一个例子是严格的数学证明,要求中间步骤中不能跳,不能模糊,不能错。

但这种严格推理到底是应该让语言模型做还是让符号系统做还有待讨论。一个例子是,与其努力让GPT做三位数加法,不如直接调Python。

但是有一篇WebGPT论文发表于2021年12月,里面就让GPT调用了搜索引擎。所以检索的能力已经在OpenAI内部进行了测试。

这里需要区分的一点是,GPT-3.5的两个重要但不同的能力是知识和推理。一般来说,如果我们能够将知识部分卸载到外部的检索系统,让语言模型只专注于推理,这就很不错了。因为:

回想一下,我们已经讨论过1750亿的参数大量用于存储知识。如果我们可以将知识卸载到模型之外,那么模型参数可能会大大减少,最终它甚至可以在手机上运行(疯狂的想法,但ChatGPT已经足够科幻了,谁知道未来会怎样呢)。

初代GPT-3模型通过预训练获得生成能力、世界知识和in-contextlearning。然后通过instructiontuning的模型分支获得了遵循指令和能泛化到没有见过的任务的能力。经过代码训练的分支模型则获得了代码理解的能力,作为代码训练的副产品,模型同时潜在地获得了复杂推理的能力。

结合这两个分支,code-davinci-002似乎是具有所有强大能力的最强GPT-3.5模型。接下来通过有监督的instructiontuning和RLHF通过牺牲模型能力换取与人类对齐,即对齐税。RLHF使模型能够生成更翔实和公正的答案,同时拒绝其知识范围之外的问题。

复杂推理的能力来自于代码训练是我们倾向于相信的假设。

对没有见过的任务泛化能力来自大规模指令学习是至少4篇论文的结论。

GPT-3.5来自于其他大型基础模型,而不是1750亿参数的GPT-3是有根据的猜测。

所有这些能力都已经存在了,通过instructiontuning,无论是有监督学习或强化学习的方式来解锁而不是注入这些能力是一个强有力的假设,强到你不敢不信。主要是因为instructiontuning数据量比预训练数据量少了几个数量级。

结论=许多证据支持这些说法的正确性;假设=有正面证据但不够有力;有根据的猜测=没有确凿的证据,但某些因素会指向这个方向

THE END
1.ChatGPT的工作原理解析chatgpt模型公式ChatGPT的核心是Transformer架构,它是一种专门设计用于处理序列数据的深度神经网络结构。与传统的循环神经网络(RNN)相比,Transformer具有以下优势: 并行计算能力强:Transformer可以并行处理输入序列中的所有元素,大大提高了训练速度。 长距离依赖建模能力强:Transformer通过自注意力机制可以捕捉输入序列中任意两个元素之间的关系https://blog.csdn.net/m0_62554628/article/details/142835504
2.最近爆红的ChatGPT到底是个什么玩意儿?这些基本概念你要知道序列应ChatGPT 可用于各种有趣和有创意的应用程序。以下是您可以使用 ChatGPT 执行的一些示例。 生成文本和响应 ChatGPT 最流行的用途之一是根据提示生成文本。通过提供提示,您可以要求 ChatGPT 生成文本作为响应。例如,您可以要求 ChatGPT 根据提示生成一个故事,或者您可以要求它完成一个句子或段落。 https://3g.163.com/dy/article/HT25VD1805561IOL.html
3.怎么让ChatGPT优化代码?Worktile社区怎么让ChatGPT优化代码 要让ChatGPT优化代码,可以尝试以下方法: 1. 代码优化技巧 首先,可以采用一些常见的代码优化技巧,例如使用合适的数据结构、减少循环次数、减少重复计算等等。这些技巧可以提高代码的执行效率,从而加快程序运行速度。 2. 算法优化 另外,也可以从算法的角度进行优化。尽量选择高效的算法,避免使用时间https://worktile.com/kb/ask/539173.html
4.OpenAI是如何胜过谷歌的?ChatGPT发展简史ChatGPT由GPT-3.5模型提供支持,GPT(Generative Pre-trained Transformer,生成式预训练变换器)是一种基于互联网可用数据训练的文本生成深度学习模型。名字中之所以有一个Transformer,是因为GPT就是OpenAI在谷歌的Transformer语言模型框架的基础上构建的。 该模型使用了"利用人类反馈强化学习(RLHF)"的训练方式,包括了:人类提https://aidc.shisu.edu.cn/7f/a0/c13626a163744/page.htm
5.ChatGPT使用量的计算ChatGPT聊天将消耗token(这里称之为积分),积分的计算比较复杂,发送的文本要计算积分,回来的文本也要计算积分。 如果是上下文聊天,每次发送文本都要包括之前的聊天记录,因此,积分消耗更多。 那么,具体一段文本怎么计算token数量呢?计算比较复杂,粗略来说,一个简单的英文单词就是一个token,复杂的英文单词可能是2~4个tohttps://www.douban.com/group/topic/288590324
6.ChatGPT模型大战:讯飞星火认知大模型百度文心一言能否击败GPT数值计算 推理解题 跨语言能力 文生图 总结 个人感受 一、你有使用过这种对话式AI吗?你对这类型AI有什么看法或感受? 二、对于“讯飞星火大模型将超越chatgpt?”这个命题你的态度是什么?简要说说原因 三、你认为这类型的人工智能对于现在的社会有哪些意义? https://blog.51cto.com/u_14943402/10335157
7.GPT图解大模型是怎样构建的■初代GPT:基于 Transformer 的单向预训练语言模型,采用生成式方法进行预训练。 ■ChatGPT:从GPT-3开始,通过任务设计和微调策略的优化,尤其是基于人类反馈的强化学习,实现强大的文本生成和对话能力。 ■GPT-4:仍基于Transformer架构,使用前所未有的大规模计算参数和数据进行训练,展现出比以前的AI模型更普遍的智能,不仅https://labs.epubit.com/bookDetails?id=UB836238e7a9d3d
8.云计算:ChatGPT的“中枢神经”开发侧,ChatGPT 生长在云上, 依赖于云计算服务,多年来OpenAI共收到了上百亿的投资,这些资金帮助 OpenAI 在平台上运行和训练其模型;产品侧,OpenAI 基于Cloud Native进行应用开发,基于云计算提供的便捷高性能计算运算模型和打磨算法,并对外销售产品和 API;而投资方基于 AI Native 来提升搜索、绘画等产品,未来会在Offhttps://m.thepaper.cn/newsDetail_forward_22342649
9.“整篇论文没有我自己写的东西”:论文是AI写的,算学术不端吗赵铭在ChatGPT的帮忙下完成了硕士毕业论文,他在国内一所985大学的理工科专业就读,毕业论文的内容是关于云计算。他总结了几种使用ChatGPT的方法,比如凑字数。 ChatGPT很适合“凑字数”,只要发出指令,一句观点便能扩充至几百字。但字数一多,它也会暴露出不足,很多受访者都反映它会重复说“车轱辘话”,“它废话是https://static.nfapp.southcn.com/content/202305/31/c7740338.html
10.解惑了——ChatGPT基于知识库提问token计算方法最近一直做知识库的训练,基于公司的场景一直做课程助手、课程推荐专家的训练。 慢慢了基于知识库回答的一些原理,也慢慢给自己解惑了。 首先,token的计算 众所周知,ChatGhttps://www.jianshu.com/p/519c4c606743
11.为何ChatGPT有时“一本正经地胡说八道”李祖超:对于ChatGPT是否能成为操作系统的新雏形这个问题,我的答案是积极的。操作系统的作用根据用户指令实现资源的分配以及计算的调度,那么ChatGPT发挥的作用是充当新的人机接口,更智能地实现用户指令的解译,减少用户的操作。从更长远来看,通过赋予ChatGPT管理系统资源如硬盘、CPU、外设等能力,将ChatGPT直接作为一种操作系https://m.gmw.cn/2023-02/23/content_1303292513.htm
12.ChatGPT标注指南来了!数据是关键ChatGPT 这个超大的模型可能暂时不需要,但我们在实际工作中很多模型(尤其是推荐)是小时或分钟级别更新的。对这种情况,应该在一开始设计的时候将这部分流程考虑进去。这部分更多是设计和工程问题,比如数据怎么更新,存储在哪里,如何获取,是否需要转换,是否需要定时清理,伸缩性,可用性等多个方面。http://www.360doc.com/content/23/0309/17/1071268750_1071268750.shtml
13.2023年爆火的软件“ChatGPT”到底是个什么呢?ChatGPT的详解以及2023年2月2日,微软官方公告表示,旗下所有产品将全线整合ChatGPT,除此前宣布的搜索引擎必应、Office外,微软还将在云计算平台Azure中整合ChatGPT,Azure的OpenAI服务将允许开发者访问AI模型。 2023年2月3日消息,IT 行业的领导者们担心,大名鼎鼎的人工智能聊天机器人 ChatGPT,已经被黑客们用于策划网络攻击时使用。 http://www.quwaifu.com/News/View/22739