第二章 快速迭代的发展历程
在ChatGPT一词中,Chat是指对话方式,GPT是指背后的技术,其是一种基于互联网可用数据训练的文本生成深度学习模型。它用于文本问答、文本摘要、语言翻译、文本分类、代码生成和对话对答等工作中。从最初版本的GPT-1到GPT-4(ChatGPT),仅用4年时间ChatGPT就实现了快速的迭代式演进(见图2-1)。
2018年,GPT-1诞生,这一年也是NLP(自然语言处理)的预训练模型元年。在性能方面,GPT-1有着一定的泛化能力,能够用于和监督任务无关的NLP任务。其常用任务包括:
● 自然语言推理:判断两个句子的关系(包含、矛盾、中立)。
● 问答与常识推理:输入为文章及若干答案,输出为每个答案的预测准确率。
● 语义相似度识别:判断两个句子的语义是否相关。
● 分类:判断输入的文本属于指定的哪个类别。
图2-1 GPT-1到GPT-4的演进过程
虽然GPT-1在未经调试的任务上有一些效果,但其泛化能力远低于经过微调的有监督任务,因此GPT-1只能算得上一个还算不错的语言理解工具而非对话式AI。
GPT-2于2019年正式推出,不过,GPT-2并没有对原有的网络进行过多的结构创新与设计,只使用了更多的网络参数与更大的数据集:最大模型共计48层,参数量达15亿,学习目标则使用无监督预训练模型做有监督任务。在性能方面,除了理解能力,GPT-2在生成方面第一次表现出了强大的天赋:阅读摘要、聊天、续写、编故事,甚至生成假新闻、钓鱼邮件或在网上进行角色扮演,这些通通不在话下。在“变得更大”之后,GPT-2的确展现出了普适而强大的能力,并在多个特定的语言建模任务上实现了彼时的最佳性能。
之后,GPT-3出现了,它作为一个无监督模型(现在经常被称为自监督模型),几乎可以完成自然语言处理的绝大部分任务,例如,面向问题的搜索、阅读理解、语义推断、机器翻译、文章生成和自动问答等。而且,该模型在诸多任务上表现卓越,例如,在法语—英语和德语—英语机器翻译任务中达到当时的最佳水平,自动生成的文章几乎让人无法辨别出自人类还是机器(正确率仅为52%,与随机猜测相当)。更令人惊讶的是,在两位数的加减运算任务中,该模型的正确率几乎达到100%,甚至还可以依据任务描述自动生成代码。一个无监督模型功能多、效果好,似乎让人们看到了通用人工智能的希望,可能这就是GPT-3影响力如此之大的主要原因。
实际上,我们可以将GPT-3看成一个简单的统计语言模型。从机器学习的角度来说,语言模型是指对词语序列的概率分布进行建模,即利用已经说过的片段作为条件,预测下一个时刻不同词语出现的概率分布。语言模型可以衡量一个句子符合语言文法的程度(如衡量人机对话系统自动产生的回复是否自然流畅),同时也可以用来预测并生成新的句子。例如,对于一个片段“杭州东站到了,乘客们请准备下车”,语言模型可以预测“请”后面可能出现的词语。一般的语言模型会预测下一个词语是“下车”,强大的语言模型能够捕捉时间信息,预测并且生成符合语境的词语“准备下车”。
通常,一个语言模型是否强大主要取决于两点:首先,看该模型是否能够调用全部的历史上下文信息,上述例子中如果无法捕捉“杭州东站到了”这个远距离的语义信息,语言模型就无法预测下一个词语“准备下车”。其次,还要看是否有足够丰富的历史上下文可供模型学习,也就是说训练语料是否足够丰富。由于语言模型属于自监督学习,优化目标是最大化所见文本的语言模型概率,因此任何文本无须标注即可作为训练数据。
由于GPT-3具有更强的性能和更多的参数,亦包含了更多的主题文本,显然优于前代的GPT-2。作为目前最大的密集型神经网络之一,GPT-3能够将网页描述转换为相应代码、模仿人类叙事、创作定制诗歌、生成游戏剧本,甚至模仿已故的哲学家来预测生命的真谛。且GPT-3不需要微调,在处理语法难题方面,它只需要一些输出类型的样本(少量学习)。可以说GPT-3似乎已经满足了我们对于语言专家的一切想象。
但是GTP-3并不完美,当前人们最担心的人工智能的主要问题之一,就是聊天机器人和文本生成工具等很可能会不分青红皂白地对网络上的所有文本进行学习,进而产生错误的、恶意的、冒犯的,甚至是具有攻击性的语言输出,这将会充分影响到它们的下一步应用。
2022年初,OpenAI发布了InstructGPT。相比GPT-3,OpenAI采用对齐研究(Alignment Research),训练出更真实、更无害,而且能更好地遵循用户意图的语言模型InstructGPT。InstructGPT是一个经过微调的新版本GPT-3,可以将有害的、不真实的和有偏差的输出最小化。
开发人员通过监督学习叠加从人类反馈中获得的强化学习,来提高GPT-3的输出质量。在这种学习中,人类对模型的潜在输出进行排序,强化学习算法则对产生类似于高级输出材料的模型进行打分。
训练数据集以创建提示开始,其中一些提示基于GPT-3用户的输入,比如“给我讲一个关于西游记的故事”或“用几句话给一个6岁的孩子解释一下春节的由来”。
开发人员将提示分为三个部分,并以不同的方式为每个部分创建响应。
人类作家会对第一组提示做出响应。开发人员微调了一个经过训练的GPT-3,将它变成InstructGPT,以生成每个提示的现有响应。
下一步是训练一个模型,使其为更好的响应提供更高的奖励。对于第二组提示,经过优化的模型会生成多个响应。人工评分者会对每个回复进行评分。在给出一个提示和两个响应后,一个打分模型(另一个预先训练的GPT-3)学会了为评分高的响应计算更高的奖励,为评分低的回答计算更低的奖励。
开发人员利用第三组提示和近端策略优化(Proximal Policy Optimization,PPO)的强化学习方法进一步微调了语言模型。给出提示后,语言模型会生成响应,而打分模型会给予相应奖励。PPO使用奖励来更新语言模型(见图2-2)。
图2-2 ChatGPT的训练过程
ChatGPT相较于之前的InstructGPT,在训练过程方面略有不同。之前的InstructGPT模型是给一个输入,就给一个输出,然后与训练数据进行对比,对了有奖励,错了有惩罚;现在的ChatGPT只有一个输入,模型给出多个输出,然后“人”给这个输出结果排序,再让模型将这些结果从“善解人意”到“不知所以”排序,让模型学习人类排序的方式,这种策略叫作监督学习(Supervised Learning)。总结而言,ChatGPT与InstructGPT的不同之处就在于数据是如何设置并用于训练(及收集)的。
2023年初,OpenAI曾经提出,其会在不久的将来发布更为强大的GPT-4。据说,GPT-4会在2024年发布,它将能够通过图灵测试,并且能够先进到和人类比肩,除此之外,企业接入使用GPT-4的成本也将大规模下降。有专家猜测,GPT-4可能将在多模态上有所进展,也就是会引入视频、音频等。
