1.2 ChatGPT是如何炼成的
ChatGPT看起来既强大又聪明,会创作,还会写代码。它在多个方面的能力都远远超过了人们的预期。那么,ChatGPT的能力到底从何而来?
1.2.1 出色的NLP模型
强悍的功能背后,技术并不神秘。本质上,ChatGPT是一个出色的NLP新模型。说到NLP,大多数人先想到的是Alexa和Siri这样的语音助手,因为NLP的基础功能就是让机器理解人类的输入,但这只是技术的冰山一角。NLP是人工智能(AI)和机器学习(ML)的子集,专注于让计算机处理和理解人类语言。虽然语音是语言处理的一部分,但NLP最重要的进步在于它对书面文本的分析能力。
ChatGPT是一种基于Transformer模型的预训练语言模型。它通过庞大的文本语料库进行训练,学习自然语言的知识和语法规则。在被人们询问时,它通过对询问的分析和理解,生成回答。Transformer模型提供了一种并行计算的方法,使得ChatGPT能够快速生成回答。
Transformer模型又是什么呢?这就需要从NLP的技术发展历程来看,在Transformer模型出现以前,NLP领域的主流模型是循环神经网络(RNN),再加入注意力机制(Attention)。循环神经网络模型的优点是,能更好地处理有先后顺序的数据,如语言;而注意力机制就是让AI拥有理解上下文的能力。但是,“RNN+Attention”模型会让整个模型的处理速度变得非常慢,因为RNN是一个词接一个词进行处理的,并且,在处理较长序列,如长文章、书籍时,存在模型不稳定或者模型过早停止有效训练的问题。
2017年,谷歌大脑团队在神经信息处理系统大会上发表了一篇名为Attention is All You Need(《自我注意力是你所需要的全部》)的论文,该论文首次提出了基于自我注意力机制(Self-attention)的变换器(Transformer)模型,并首次将其用于NLP。相较于此前的RNN模型,2017年提出的Transformer模型能够同时进行数据计算和模型训练,训练时长更短,并且训练得出的模型可用语法解释,也就是模型具有可解释性。
这个最初的Transformer模型,一共有6500万个可调参数。谷歌大脑团队使用了多种公开的语言数据集来训练这个最初的Transformer模型。这些语言数据集包括2014年英语—德语机器翻译研讨班(WMT)数据集(有450万组英德对应句组),2014年英语—法语机器翻译研讨班数据集(有3600万组英法对应句组),以及宾夕法尼亚大学树库语言数据集中的部分句组(分别取了库中来自《华尔街日报》的4万个句子,以及另外的1700万个句子)。而且,谷歌大脑团队在文中提供了模型的架构,任何人都可以用其搭建类似架构的模型,并结合自己手上的数据进行训练。
经过训练后,这个最初的Transformer模型在翻译准确度、英语句子成分分析等各项评分上都达到了业内第一,成为当时最先进的大语言模型。ChatGPT使用了Transformer模型的技术和思想,并在其基础上进行扩展和改进,以更好地适用于语言生成任务。正是基于Transformer模型,ChatGPT才有了今天的成功。
1.2.2 庞大的数据训练
当然,单有语言模型没有数据,是“巧妇难为无米之炊”。因此,基于Transformer模型,ChatGPT的开发者们开展了大量的数据训练。
在ChatGPT出现以前,OpenAI已经推出了GPT-1、GPT-2、GPT-3。虽然前几代声量不大,但模型都是极大的。
GPT-1具有1.17亿个参数,OpenAI使用了经典的大型书籍文本数据集进行模型预训练。该数据集包含超过7000本从未出版的书稿,涵盖冒险、奇幻等类别。在预训练之后,OpenAI针对问答、文本相似性评估、语义蕴含判定及文本分类这四种语言场景、使用不同的特定数据集对模型进一步训练。最终形成的模型在这四种语言场景下都取得了比基础Transformer模型更优的结果,成为新的业内第一。
2019年,OpenAI公布了一个具有15亿个参数的模型:GPT-2。该模型架构与GPT-1原理相同,主要区别是GPT-2的规模更大。不出意料,GPT-2模型刷新了大语言模型在多项语言场景下的评分纪录。
而GPT-3的整个神经网络更是达到了惊人的1750亿个参数。除规模大了整整两个数量级外,GPT-3与GPT-2的模型架构没有本质区别。不过,就是在如此庞大的数据训练下,GPT-3模型已经可以根据简单的提示自动生成完整的文从字顺的长文章,让人几乎不敢相信这是机器的作品。GPT-3还会写程序代码、创作菜谱等几乎所有的文本创作类任务。
从GPT-1到GPT-2,再到GPT-3,尽管ChatGPT的相关数据并未被公开,但可以想象,ChatGPT的训练数据只会更多。
1.2.3 集优势之大成
特别值得一提的是,ChatGPT与GPT-3是有所不同的。2022年3月,ChatGPT的开发公司OpenAI发表了论文Raining Language Models to Follow Instructions with Human Feedback(《结合人类反馈信息来训练语言模型使其能理解指令》),并推出了ChatGPT所使用的——基于GPT-3模型并进行了微调的InstructGPT模型。在InstructGPT的模型训练中,加入了人类的评价和反馈数据,而不仅仅是事先准备好的数据集。也就是说,区别于GPT-3通过海量学习数据进行训练,在ChatGPT中,人类对结果的反馈成了AI学习过程中的一部分。
在GPT-3公测期间,用户提供了大量的对话和提示语数据;而OpenAI公司内部的数据标记团队也生成了不少的人工标记数据集。这些标注过的数据,可以帮助模型在直接学习数据的同时学习人类对这些数据的标记。于是,OpenAI就利用了这些数据对GPT-3所采用的监督式训练进行了微调。
随后,OpenAI收集了微调过的模型生成的答案样本。一般来说,对于每一条提示语,模型都可以给出无数个答案,而人们一般只想看到一个答案,模型需要对这些答案进行排序,并选出最优的。所以,数据标记团队在这一步对所有可能的答案进行人工打分排序,并选出最符合人类习惯的答案。这些人工打分的结果可以进一步建立奖励模型——自动给语言模型奖励反馈,达到鼓励语言模型给出好的答案、抑制给出不好的答案的目的,帮助模型自动寻出最优答案。
最后,该团队使用奖励模型和更多的标注过的数据继续优化微调过的语言模型,并且进行迭代,最终得到的模型就是InstructGPT。
简单来说,OpenAI于2020年发布的GPT-3,让计算机第一次拥有了惟妙惟肖地模仿人类“说话”的能力。但是,当时的GPT-3的观点和逻辑常常出现错误和混乱,OpenAI因此引入了人类监督员,专门“教”AI如何更好地回答人类提出的问题。当AI的回答符合人类评价标准时,就打高分,否则就打低分。这使得AI能够按照人类价值观优化数据和参数。
集合了优势之大成,ChatGPT果然展示出了前所未有的功能,一举成为AI领域的现象级应用。