【深度揭秘】探索ChatGPT的崛起:揭开智能对话领域领导者背后的核心技术秘密!

最近,ChatGPT作为OpenAI的预训练模型,在人工智能领域的研究人员中留下了深刻印象,并提供了极大的启发。它展示了出色的语言生成能力,与之互动非常有趣,还能编写代码。其多方面的表现远超自然语言处理研究者的预期。因此,我们不禁要问:ChatGPT是如何获得如此强大的能力?它的这些强大功能到底是如何获得的?在本文中,我们将探讨ChatGPT的突出能力,追溯这些能力的来源,希望能提供一个全面的技术路线图,解释GPT-3.5系列模型及相关大型语言模型是如何逐步演变为当前强大状态的。

背景:熊猫AI-免费问答学习交流GPT-4

我们希望本文能促进大型语言模型的透明度,成为开源社区共同努力复现GPT-3.5的参考。

给国内同胞的话:

在国际学术界,ChatGPT/GPT-3.5被视为划时代的创新,它与之前的常见语言模型(如Bert、Bart、T5)的差别,简直是导弹与弓箭之间的差距,我们必须高度重视。

在我与国际同行的交流中,全球主流学术机构(如斯坦福大学、加州大学伯克利分校)和主要工业研究院(如谷歌大脑、微软研究院)已全面接纳大模型。

目前,国内的技术水平、学术视野和治学理念与国际前沿存在的差距不仅未缩小,反而在扩大,如果这种情况持续下去,我们很可能面临技术断层的风险。

此为存亡之秋。

多年后,面对行刑队,奥雷里亚诺·布恩迪亚上校将回忆起父亲带他去看冰块的那个遥远的下午。——《百年孤独》 加西亚·马尔克斯

一、2020版的初代GPT-3和大规模预训练

初代GPT-3展现了以下三个重要能力:

语言生成:根据提示生成完整句子。这是与语言模型交互最常见的方式。

上下文学习:根据几个示例生成新的解决方案。GPT-3的论文几乎不涉及“语言建模”,而是全力探讨了上下文学习的潜力。

世界知识:包括事实和常识。

这些能力从何而来?

基本上,这些能力都来源于大规模预训练:在包含3000亿单词的语料库上,预训练了拥有1750亿参数的模型。其中:

语言生成能力来源于语言建模的训练目标。

世界知识来源于庞大的训练语料库。

1750亿参数的模型用于存储这些知识,Liang等人的研究进一步验证了这一点。他们发现知识密集型任务的表现与模型大小密切相关。

上下文学习的来源及其泛化能力仍然难以确切知道。直觉上,这种能力可能源于训练期间,相同任务的数据点被顺序地安排在同一批次中。尽管如此,为什么语言模型的预训练会促进上下文学习,以及上下文学习的行为与微调(fine-tuning)为何如此不同,这些问题仍然没有得到广泛的研究。

值得一提的是,初代 GPT-3 的性能究竟如何?实际上,这一点并不容易确定。一方面,它在某些特定查询上能够给出合理的回应,并在许多数据集上展现出不错的性能;另一方面,它在许多任务上的表现仍不如一些较小的模型,如T5(参见其原始论文)。从当前ChatGPT的标准看,初代 GPT-3 很难被视为“智能”的。Meta开源的OPT模型试图复制初代 GPT-3,但其性能与现代标准相比也显得较弱。尽管如此,OPT可能是一个足够好的初代 GPT-3 的开源近似模型了(根据OPT的论文和斯坦福大学的HELM评估)。

尽管初代GPT-3看似不强,但随后的实验证明,它具有巨大的潜力。这些潜力后来通过代码训练、指令微调(instruction tuning)和基于人类反馈的强化学习(reinforcement learning with human feedback, RLHF)被解锁,最终展示出极为强大的突现能力。

二、从2020版GPT-3到2022版ChatGPT

从最初的GPT-3起,为了展示OpenAI是如何发展到ChatGPT的,我们可以看一下GPT-3.5的进化路径:

在2020年7月,OpenAI发布了初代 GPT-3,模型指数为davinci的论文。此后,该模型不断进化。2021年7月,Codex的论文发布,其中初始的Codex是基于(可能是内部的)120亿参数的GPT-3变体进行的微调。随后,这个120亿参数的模型演变成了OpenAI API中的code-cushman-001。在2022年3月,OpenAI发布了指令微调的论文,其监督微调部分对应了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进行指令微调得到的。

虽然Codex听起来像是一个专注于代码的模型,但code-davinci-002可能是针对自然语言处理最强大的GPT-3.5变体(优于text-davinci-002和-003)。code-davinci-002很可能在文本和代码上都经过训练,然后根据指令进行调整。2022年5-6月发布的text-davinci-002是一个基于code-davinci-002的有监督指令微调模型。在text-davinci-002上进行的指令微调可能降低了模型的上下文学习能力,但增强了模型的零样本能力。然后是text-davinci-003和ChatGPT,它们都在2022年11月发布,使用的是基于人类反馈的强化学习进行的指令微调版本。

总的来说,在2020到2021年期间,OpenAI通过代码训练和指令微调加强了GPT-3的能力。当他们完成

了code-davinci-002的开发时,所有的核心功能都已经就位。后续的指令微调,无论是通过有监督学习还是强化学习,主要做的工作可能包括以下几点:

指令微调并不是给模型注入新的能力——所有的能力在预训练中已经形成。指令微调的作用更多是激发和优化这些已有能力。这主要是因为指令微调的数据量远远少于预训练的数据量(预训练阶段培养了模型的基础能力)。

指令微调使GPT-3.5在不同技能上有了更明显的分化。例如,text-davinci-003更擅长上下文学习,而ChatGPT则更擅长处理对话。

通过指令微调,模型在牺牲一定性能的情况下更符合人类的期待和要求。OpenAI的研究人员在他们的论文中提到这种现象为“对齐税”(alignment tax)。许多论文报道了在基准测试中,code-davinci-002表现出最佳性能(但不一定符合人类的期望)。在code-davinci-002进行指令微调后,模型能够生成更符合人类期望的响应,例如:更安全、公平的对话回复、拒绝回答超出模型知识范围的问题。

三、Code-Davinci-002和Text-Davinci-002:在代码上训练,在指令上微调

在code-davinci-002和text-davinci-002之前,有两个中间阶段的模型,分别是davinci-instruct-beta和text-davinci-001。这两个模型在许多方面都不如后来的-002版本(例如,text-davinci-001在链式推理能力上较弱)。因此,在本节中,我们将重点介绍-002型号。

这两个模型展现出与初代GPT-3明显不同的三种重要能力:

响应人类指令:以前的GPT-3输出往往是训练集中常见的句子。现在的模型能够根据指令/提示词生成更合理的回答。

泛化到未见过的任务:当用于调整模型的指令数量超过一定规模时,模型能够在完全未见过的新指令上生成有效的回答。这种能力对于实际部署至关重要,因为用户总是会提出新的问题。

代码生成和理解:由于模型在代码上接受过训练,因此具备了处理编程语言的能力。

利用思维链进行复杂推理:初代GPT-3在这方面几乎无能为力。而code-davinci-002和text-davinci-002表现出足够强大的思维链推理能力。

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

这些能力从何而来?

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

能够响应人类指令的能力直接来源于指令微调。

对未见过的指令进行有效反馈的泛化能力在指令数量超过一定程度后自然出现,T0、Flan和FlanPaLM的论文进一步证明了这一点。

使用思维链进行复杂推理的能力很可能是代码训练的一个意外产物。我们有以下事实作为一些支持:

1. 最初的GPT-3没有接受过代码训练,它在思维链推理方面几乎无能为力。
 
2. 虽然text-davinci-001模型经过了指令微调,但根据第一版思维链论文的报告,它在思维链推理方面的能力非常弱——这表明指令微调可能不是形成思维链的原因,代码训练才是。

3. PaLM模型包含了5%的代码训练数据,能够进行思维链推理。

4. Codex论文中的代码数据量达到159G,约占初代GPT-3训练数据总量的28%。code-davinci-002及其后续变体能进行思维链推理。

5. 在HELM测试中,Liang等人对不同模型进行了广泛评估。他们发现针对代码训练的模型具有很强的语言推理能力,包括拥有120亿参数的code-cushman-001。

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

7. 直觉上,面向过程的编程(procedure-oriented programming)与人类逐步解决任务的过程相似,面向对象编程(object-oriented programming)与人类将复杂任务分解为多个简单任务的过程相似。

以上所有观察结果都显示了代码与推理能力/思维链之间的关联。这种相关性对研究社区来说是一个非常有趣的问题,但目前尚未得到很好的理解。然而,还没有确凿的证据表明代码训练就是思维链和复杂推理能力的直接原因。思维链的来源仍是一个开放的研究问题。

虽然代码训练对于GPT-3.5模型复杂推理能力的形成起到了重要作用,但这种能力的确切来源仍然是一个值得研究的开放问题。以下是几个可能的解释和相关证据:

1. **数据多样性和量级**:代码训练过程中使用的数据集通常包含了大量的代码片段和编程语言结构。这种多样性和大规模数据的使用可能为模型提供了处理复杂逻辑和推理链条的基础。例如,Codex模型中使用了约159亿个代码片段,相当于初代GPT-3训练数据的28%。这样的大规模数据集可能培养了模型处理抽象逻辑和复杂任务的能力。

2. **任务定位与模型结构**:在代码训练过程中,模型不仅仅学习如何生成代码,还学习如何理解和运用编程语言的语法、语义以及解决问题的方法论。这种训练可能促使模型形成了更为结构化和逻辑严谨的推理方式,这种推理方式可能表现为“思维链”能力的具现化。

3. **预训练架构和微调技术**:GPT-3.5模型在预训练阶段就已经通过海量的文本数据学习了广泛的语言能力。然而,通过指令微调和代码训练,模型的这些能力得到了进一步优化和定制化,使其更加适应于特定的任务需求和逻辑推理。这种定制化的微调过程可能是促使模型复杂推理能力增强的关键。

4. **结构化编程与推理类比**:面向过程的编程和面向对象的编程方法与人类处理复杂任务时采用的思维模式有相似之处。模型在代码训练中可能学会了如何将复杂任务分解为简单步骤,并逐步解决问题,这与思维链推理的概念相关联。

尽管如此,要完全理解模型如何从代码训练中获得复杂推理能力,还需要进一步的研究和实验验证。例如,通过系统性地探索模型在不同规模和类型的代码数据上训练的效果,或者通过对比代码训练前后模型的推理能力变化,可以更深入地理解代码训练对模型推理能力的具体影响。

总结来说,代码训练为GPT-3.5模型提供了处理复杂逻辑和推理链条的能力基础,但确切的推理链条形成机制仍需要进一步的研究和探索。

  • 15
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值