2022年是AIGC(AIGenerateContent)的元年,OpenAI的大型预研生成模型ChatGPT自去年底推出以来迅速火遍全球,敲代码、写文章、高情商对话,ChatGPT流利的语言能力让人惊叹。
有人说ChatGPT颠覆了人们对聊天机器人的认知,人工智障终于出人工智能的雏形。作为一个伟大的产品,ChatGPT到底有怎样的突破创新呢?
Meta首席人工智能科学家LeCun认为“就底层技术而言,ChatGPT 并没有什么特别的创新,与其说 ChatGPT 是一个科学突破,不如说它是一个像样的工程实例。” ChatGPT的底层技术依赖于两个划时代的技术Word2Vec和Transformer。
Word2Vec
“Word2Vec是一种基于神经网络的技术,可以将文本中给的每一个单词转换成N维向量。它通过学习文本语料库中不同单词出现的上下文,把距离尽可能相近的单词映射到一起,实现对文本的数字化表示”(此段文字来源于ChatGPT查询)。ChatGPT使用Word2Vec词向量技术来做embedding,将文字转换成数字向量。
图中是一个Word2Vec embedding模块,将文本转换成768维向量(ChatGPT沿用GPT3,向量长度为12288),然后相同维度的位置embedding(Position Embedding是为了位置的时序特点进行建模)相加,输出向量序列。
上图是GPT针对不同单词产生的数字向量,将文本向量化后,词与词之间就可以定量地去度量他们之间的关系,挖掘词之间的联系。
Transformer
“Transformer是一种用于自然语言处理(NLP)的深度学习技术。它基于注意力机制,主要通过将原始的输入信息映射到另一个空间,来给出预测结果。
在自然语言处理中,Transformer模型可以帮助我们了解文本之间的关系,用来处理语言模型,做机器翻译,文本分类等”(此段文字来源于ChatGPT查询)。
ChatGPT将Word2Vec产生的向量序列输入到Transformer网络中,基于注意力机制查询生成结果。ChatGPT采用Transformer的Decoder结构。
上图是Transformer整体架构图,Transformer模型中有几个关键算子,第一个就是向量输入后产生Q、K、V时经过的权重矩阵WQ,WK,WV,权重矩阵的维度为向量长度x向量长度(GPT1向量长度为768,ChatGPT向量长度为12888)。
通常,矩阵与向量相乘完成的是一个空间到另外一个空间的转换,例如,在3D坐标系中,一个4x4矩阵可以对一个向量进行XYZ三维空间变换。那么在Transformer中大型的权重矩阵(例如768x768矩阵)可以将输入的文字向量(n x 768)在高维空间中做变换,使得在这个空间中,更容易找到文字之间的相关性。下图是权重矩阵的一个示例。
第二个重要的算子就是Attention(注意力机制),注意力机制可以捕捉到长距离向量之间的相关性(相隔较远的词),注意力包括了两个部分,一个是Masked Self-Attention,一个是Cross-Attention。
Masked是因为在做self-attention的时候decoder只会attend到它已经产生出来的信息,self-attention的输入和输出个数一样。Cross-attention将两个相同维度的嵌入序列不对称地组合在一起,而其中一个序列用作查询Q输入,而另一个序列用作键K和值V输入,因此Cross-attention可以生成任意长度文字的输出(输入输出向量长度相同,向量的个数不同)。
在Attention机制中还有一个multi-head的attention,即把向量长度裁剪成若干个向量(例如把向量长度为768的文字向量分成8个head去做attention,那么每个head的向量长度就是96),形成多个子空间,可以让模型去关注不同方面的信息。
对ChatGPT底层技术有了初步了解后,我们可以一起看看涉及到的工程问题。AI最主要的工程问题就是数据和算力。
ChatGPT数据
OpenAI在开发ChatGPT时使用了超过800万个标注数据,模型数据集分成六类,分别是维基百科、书籍、期刊、Reddit链接、Common Craw以及专门为任务设计的数据集。
ChatGPT数据集按照训练步骤来分可以分为SFT数据集(训练有监督模型)、RM数据集(训练奖励模型)和PPO数据集(强化学习训练)。
ChatGPT 的模型参数量和训练数据量还没有公开,但ChatGPT是基于GPT-3.5架构开发的,可以看到GPT-3的预训练数据有45TB,有人推测ChatGPT数据集规模在百T级别。
ChatGPT算力
不同于Bert采用Transformer编码器(Encoder)结构,GPT采用Transformer解码器(Decoder),其模型结构如上图右所示(其中Trm是一个Transformer结构)。
GPT系列模型包括GPT-1、GPT-2和GPT-3,模型层数、头数和词向量长度越来越大,其中GPT-3是ChatGPT的前一代模型,模型结构为96层、96注意头、12888向量长度的模型,可以完成1800种以上的任务,参数量达到1750亿。
GPT-3的训练使用了上万块Nvidia V100 GPU和28.5万个CPU,总算力为3.14E+23FLOPS,仅训练成本就超过了1200万美元,训练时长14.8天,训练的二氧化碳排放量约552吨。
ChatGPT基于GPT3.5架构的模型参数,训练成本和GPT-3同一数量级甚至更高。此外,ChatGPT的运营成本高,查询成本远高于Google传统搜索,Open AI的CEO山姆指出,调用运行ChatGPT进行聊天,每次回答问题的成本约为几美分。
ChatGPT距离商业落地还有很长的路要走,有科学家对GPT-3.5进行了心智理论测试,它的正确率逼近了人类九岁孩子的成绩,这已经是一个史无前例的成绩。
在某种程度上ChatGPT的成长历程和人类的大脑发育有一定的相似性,在幼儿阶段增加神经元数量(网络)并灌输大量数据去训练,到了一定的知识积累就可以采取强化学习的方式去增强认知。
不同的是在人类的教育过程中我们会有一些规则去约束(14岁时神经突触的数量减少,但是认知得到了大幅提升),而ChatGPT目前的神经网络结构不可控,且有不确定性。
加州大学伯克利分校的Russell教授认为,“我们目前不清楚ChatGPT的工作原理,也很可能无法弄清楚它们,这需要一些概念上的突破,而这样的突破很难预测”,他认为“构建真正智能的系统,我们应当更加关注数理逻辑和知识推理,我们需要将系统建立在我们了解的方法之上,这样才能确保AI不会失控,扩大规模不是通往智能的答案”。
作者简介
Jane.Zhong是复睿微电子算法科学家,毕业于中科院高能物理所,曾就职于清华大学联合研究所,先后担任资深算法专家、系统架构专家,长期从事图像算法和人工智能领域科学研究工作。
参考文献
"Training language models to follow instructions with human feedback." *arXiv preprint arXiv:2203.02155* (2022). https://arxiv.org/pdf/2203.02155.pdf,Ouyang, Long, et al.
Patterson D, Gonzalez J, Le Q, et al. Carbon emissions and large neural network trainingJ. arXiv preprint arXiv:2104.10350, 2021