编者按:正如AI绘画快速席卷游戏行业一样,前段时间突然爆火的 ChatGPT ,也成了不少游戏人夜不能寐的「技术心魔」。
没办法,据葡萄君和身边的朋友分享,ChatGPT已经能熟练地帮助他们写游戏营销、策划、运营方案等拥有一定范式的文案;
偷懒摸鱼生成一些日报周报和预案也不在话下;
还有人让它跟AI绘画联动,快速生成一些适合出图的关键词。
吃货国家问题,有点刁钻了:
另外,可以直接问 ChatGPT 怎么写代码,比如写一个俄罗斯方块:
如上图所示,若将训练好的网络每层神经元学习到的特征可视化,会发现,最底层的神经元学习到的是线段等特征,第二层学到的是人脸各个五官的特征,第三层学到的是人脸轮廓的特征,这三层构成了人脸特征的逻辑层级结构。神经网络越底层的特征越基础抽象,比如什么边角弧线等,而越往上层,就具体和任务相关。是不是很神奇?
一个训练好的深度学习网络的内部参数,在底层体现了通用和基础的特征,而越到高层,越和特定任务相关。这是深度学习神经网络一个特别棒的特性。
人们开始动脑筋了,既然是这样,那么是不是可以先用标准的大数据集比如ImageNet来做深度学习网络的「预训练」呢?反正那么多层的神经网络里,大多数的层级都和特定任务关系不大,我们只需要把通用大数据预训练得到的网络模型结果,再结合任务相关的那点可怜的标注数据去微调(Fine-tuning)高层的网络参数,使得高层参数输出更匹配当前领域的任务,不就 OK 了吗?
这样一来,原本因为数据不足而无法训练的特定任务也能解决了。即便任务的训练数据不缺,先通过预训练过程也能极大的加快特定任务训练的完成速度。预训练这种通吃的解决方案人见人爱,很快在图像处理领域广泛流行开来。
既然在图像处理领域的深度学习里预训练这么管用,搞自然语言处理 AI 的同学们自然也会在心里想,为什么不在自然语言处理领域里做预训练这么香的事情呢?
06 自然语言 AI 的深度进化
首先呢,自然语言处理的研究里,有个基本概念叫做「语言模型」,大致理解起来也简单,就是想办法打造一个核心函数 P,这个函数通过一个句子里前面的所有单词来计算下一个单词的概率大小。一句话里的单词总是顺序出现的,每个单词都可以通过前面所有单词计算出这么一个概率,把所有这些单词的概率乘起来,总概率数值越大,说明这越像是人说出的话。
怎么构造这个神奇的函数 P 是 AI 科学家的事情,但读者们一定可以明白,有了这个牛逼的「语言模型」函数 P,计算机就会说人话了。
而从神经网络学派的同学看来,是不是可以用神经网络来打造这样一个语言模型呢?就是说用很多的现成语料,来训练出一个神经网络,然后给这个神经网络模型输入一句话的前面几个词,这个模型就能计算出这句话的下一个单词。
这就是大名鼎鼎的「神经网络语言模型 NNLM」。
NNLM 神经网络语言模型的想法并不是最近冒出来的, 它的历史要追溯到 20 年前。NNLM 的论文在 2003 年就被发表出来了,而当时,深度学习的概念还只存在于杰弗里·辛顿(Geoffrey Hinton)的脑袋里。
所以,不幸的是,NNLM 当时没有引起学界多少反响,被埋没了近 10 年。事实上,在深度学习大火之前,用神经网络做自然语言处理甚至会被笑话,之前自然语言处理的主流研究方式还是基于统计学的机器学习方法。神经网络语言模型 NNLM 这个概念太超前时代了。
一直到了 2013 年,在深度学习概念提出来 7 年之后,深度学习神经网络模型先是在图像和语音领域大显神威,自然语言 AI 的同学终于想起了这篇十年前的论文。NNLM 重出江湖,为世人所知:
在 2013 年,AI 研究人员倒腾了一个自然语言处理的处理模型 Word2Vec。顾名思义,「Word2Vec」就是「word to vector,从词到向量」。研究人员的目标是把一个单词变成一个数学向量,这个数学量在 NLP 里有个专门的名词,叫做Word Embedding(词嵌入)。
为啥要变成一个向量,出发点也很简单,如果能将每个单词都能表示为数学空间里的一个向量,那么是不是理论上,在这个向量空间里比较接近的词,就是意义接近的单词呢?这样计算机不就可以方便的理解单词之间的联系了吗?
Word2Vec 翻出了十年前的 NNLM。NNLM 的初衷只是想构建一个神经网络语言模型,根据前面的词,来预测后一个是什么词。NNLM 网络内部构造了一个随机初始化的矩阵,通过不断的训练,来达成 NNLM 模型预测单词的目的。
特别凑巧的是,研究人员发现这个训练出来的内部矩阵的每一行,正好可以作为每个词的嵌入向量 Word Embedding,这真是得来全不费功夫啊。
NNLM 和 Word2Vec 使用了类似的神经网络结构,不过因为目的不同,其训练方法理念是截然不同的。NNLM 作为语言模型,是要看到上文预测下文,所以训练时输入的是句子上文单词;而 Word2Vec 呢?因为它的目标是要找出所有单词之间意义远近的数学关系,所以训练时都使用句子上文和下文作为输入。
不知道读者意识到没,这两种训练方式在更高的意义上有着一些本质区别,就好比我们人类说话,都是顺序说出来一个个单词的,说不定呢,人的潜意识或许也是一个类似 NNLM 的 P 函数,自觉不自觉地的决定人说话里的下一个词是什么。因此只从上文预测下文的训练方式,貌似天然更契合「生成式」的逻辑。
而 Word2Vec 这种通过上文和下文输入来训练的方式,可以比喻成机器来做阅读理解,就像是我们做语文或英语的阅读理解,一定是通读全文,然后根据上下文来理解和判断问题的答案。这样的人工智能,就是所谓分析式的 AI。
两种模型训练的思路,在后续发展里变成了自然语言模型的两种路线。本文开头提到的 OpenAI 生成式模型 GPT 系列,坚定的只用上文进行训练,用以追求「纯粹」的生成;而 Google 公司的大语言模型 Bert,则采用了上文和下文一起训练的模式,此乃后话。
前面提到,图像处理领域里使用大规模通用数据进行「预训练」所取得的效率和成果实在让人羡慕,而在自然语言处理领域里,其实也有一点点「预训练」概念的,这个预训练就是,每个单词的 WordEmbedding 可以反过来初始化神经网络的内部参数。
不去探究数学细节,读者只要知道,这种「预训练方式」和前面图像处理领域的低层级网络预训练方式有点类似,但问题是利用 WordEmbedding 只能初始化第一层网络参数,和图像处理领域的预训练能有效初始化大多数网络层级不可同日而语,只能说是一种比较原始初级的「预训练」了。
但直到 2018 年前,这就是 NLP 领域里能采用的预训练典型做法了。
采用 WordEmbedding 来初始化 NLP 神经网络有那么点效果,但没有期待的那么好。这里面还有一个逻辑上的原因:一个单词有多义词问题。所以企图在一个数学空间里用一个固定的数学向量来表征一个单词的意义,还要求含义相近的单词都聚在一起。在面对多义词的时候,这在逻辑上显然就是矛盾的。
当然了,聪明的 A 研究人员肯定还是有办法。既然一个单词存在多义性,固定的 WordEmbedding 向量无法表达单词的多个含义,那么是不是可以先训练好一个单词的 WordEmbedding,然后在实际使用中,根据句子里的上下文语义去动态调整这个 WordEmbedding 数值,这样经过调整后的「动态 WordEmbedding」更能准确表达单词在上下文的具体含义,同时自然的,解决了多义词的问题。
这个根据当前上下文来动态调整 WordEmbedding 的想法就是顶级学术会议 NAACL 2018 年的最佳论文《Deep contextualized word representation》,这个 NLP 模型命名为 ELMO (Embedding from Language Models, 基于语言模型的词嵌入)。
ELMO 引入上下文动态调整单词 WordEmbedding 后,多义词问题就被彻底解决了,而且比预期的解决得还好:利用 ELMO 改进过的多种不同 NLP 任务,性能上都有幅度不同的提升,最高达到了 25%,不愧是最佳论文。
此外,ELMO 还有一个贡献,研究人员发现 ELMO 所使用的深度神经网络模型里,不同层次提取到的特征是有差异的。看到这里,读者想起了什么没有?是不是和图像预训练的模型层级特征有点像了?
让我们复习一下,前面讲过,图像处理领域进行大规模预训练后,把深度学习网络每层参数做可视化后可以看到,深度学习网络每一层都对应着不同抽象层级的「特征」,在图像领域里,就是从底层的线段,到中间层的具体五官细节,再到高层的脸型,等等。
再说一次,「预训练」为什么是一个特别重要的概念?这是因为好的「预训练」可以直接利用大量标准通用的的训练数据(图像领域就是图片,NLP 领域就是语料),把深度学习模型调整到了 90% 甚至更高程度的可用状态,预训练好的模型最后通过任务相关的少量训练数据,就能微调至完全胜任各种特定任务,这真是一个很美妙的事情。
那么,ELMO 出现后, 自然语言处理领域的「预训练」有可能赶上图像领域了吗?
遗憾的是,还差一口气。
因为技术原因,ELMO 模型在抽取文字特征方面还比较弱,这是一个技术上的缺陷,意味着这个模型就无法很好完成 NLP 的「预训练」梦想:特征都抽取不好,怎么让网络里每一层具体表达不同逻辑层级的特征呢...而从技术细节上对比,也会发现 ELMO 这种「预训练」方法和图像领域的预训练方法,两者在模式上还有很大差异。
自然语 AI 研究人员还需要继续找到一个方法,希望这个方法能很好的提取出文字的特征,就类似图像处理领域的神经网络模型,能很好的提取图像不同逻辑层面的特征。
恰就在时间刚好的 2017 年底,Google 研究人员发表了一篇里程碑式的论文,这一篇论文提出的「自我注意力」机制让自然语言处理揭开了崭新的篇章。
07 注意力机制和 Transformer
2017 年 12 月,Google 在顶级机器学习会议 NIPS 上发表了论文《Attention is all you need》,提出在机器翻译上大量使用自注意力(Self Attention)机制来学习文本表示,并把这种机制模型起了个霸气的名字:Transformer。
这篇论文一经出世就横扫了整个自然语言处理学术界,Transformer 迅速的取代了深度学习里传统的循环神经网络(RNN)成为了之后的大语言模型的标准配置。
Transformer 是目前 NLP 领域里最强的特征提取器,本质上 Transformer 是一个叠加的'「自注意力机制」构成的深度网络。
包括我们现在所知道的 OpenAI GPT 系列模型,以及 Google BERT 系列模型,都受到了这篇文章的启发采用了部分 Transformer 的架构,从而取得了突破性的效果。
先说个题外话,笔者感慨,论文是否牛逼,一看题目就知道,这篇论文连题目都如此特别和霸气。
话说回来,什么是注意力机制?深度学习里的注意力机制其实是一种思想,参考借鉴了人类的注意力思维方式。
视觉注意力机制是人类视觉所特有的大脑信号处理机制,我们的眼睛会快速扫描全局图像,得到需要重点关注的区域,就是所谓的注意力焦点后,再进一步对相关区域投入更多的关注。这是人类在长期进化中获得的一种生存机制,极大提高了人类信息处理的效率和准确性。
深度学习的注意力机制在概念上参照了人类的视觉注意力机制,核心目标就是从众多信息里选择出对当前任务更重要和关键的信息。
具体到 NLP 自然语言处理领域里,在之前,注意力机制一般是指输出句子里某个词和输入句子每个词之间的相似度。这也很好理解,就是去寻求问题(输入)和答案(输出)之间的关系么。
但 Google 这篇的特别之处,是明确指出了,我们其实不需要先考虑输入和输出的关系啊,为什么不参考人类理解语言的方式,首先「学习」一句话内部单词之间的关系呢?这就是所谓的「Self Attention 自注意力机制」:指的是输入元素之间,或者输出元素之间的内在联系机制。
如上图所示,Self Attention 自注意力机制寻找到了一个句子里单词之间的语义特征, 「it」指代的是「the animal」。
稍微想一下,Self Attention 自注意力机制在逻辑意义上非常清晰,它让机器去理解人类语言每句话里单词之间的语义关系。
除了逻辑上看起来更有道理,Self Attention 自注意力机制还附带了一个很大的好处:因为网络层面抛弃了传统的 RNN(循环神经网络)模型,彻底规避了 RNN 不能很好并行计算的困扰,极大提高了模型并行训练计算的效率。更不用说,Self Attention 自注意力机制只关注部分信息,参数较少,容易训练。
有趣的是,谷歌研究人员在这篇重要论文里差点使用了「注意力网络」这样的命名,只是他们觉得这个名字听起来实在不够响亮,后来团队里一位工程师给起了个名字 Transformer,这看起来就高大上很多了:)
基于自我注意力机制的 Transformer 模型的出现是革命性的,最最重要的一点,它能实现自我监督学习。所谓自我监督,就是不需要标注的样本,使用标准的语料或者图像,模型就能学习了。
在 Tranformer 出现之前,我们要训练一个深度学习模型,必须使用大规模的标记好的数据集合来训练神经网络。对数据进行标注只能人工进行,金钱和时间成本都相当高。
读者如果还有印象,在笔者上一篇关于 AI 绘画的文章里有讲到,对于 AI 绘画至关重要的跨模态模型 CLIP 之所以成功,是因为它使用了互联网已经带文字标记的图片作为训练数据,巧妙规避了超大规模数据标记的难题。
而回过头来,Transformer 的核心是在数学上计算输入元素之间的关联(Attention),通过这种模式,Tranformer 成功的消除了训练数据集的标注需求。
这简直是感天动地,我们可以想象一下,从今以后,互联网上或者企业数据库里海量的文本数据都能直接成为大模型的训练数据源了。
NVIDIA创始人兼CEO黄仁勋在2022NVIDIAGTC大会上说,Transformer 使自我监督学习成为可能,并无需人类标记数据,AI 领域出现了「惊人的进展」。
因此,Transformer 正在越来越多的领域中发挥作用。比如用于语言理解的 Google BERT,用于药物发现的 NVIDIA Mega Mol BART 以及 Deep Mind 的 Alpha Fold 2 都要追溯到 Transformer 的突破。
上面又提到了 Google BERT 语言模型。这里要插一句,Google 引以为傲的语言大模型 BERT 的架构和 OpenAI GPT 其实非常像,但有一个简单而本质的区别,在训练阶段,Google BERT 输入上文和下文来训练,OpenAI GPT 系列一直坚持只输入上文训练,而结果就是,Google BERT 在体现 AI 分析能力的各种阅读理解等问题上,都表现上佳;而 OpenAI GPT 术业有专攻,在生成式 AI(比如回答各种问题、创造各种文字内容)一骑绝尘。
不夸张的说,Transformer 是迄今为止发明的最强大的模型之一。斯坦福研究人员在 2021 年 8 月的一篇论文把 tranformer 称之为「基础模型」(Foundation model),认为它推动了 AI 整个范式的转变。
08 GPT3,神功初成
受 Google 论文启发,基于 Transformer 模式的 GPT 系列模型作为 OpenAI 的当红炸子鸡,风头当下无两。
GPT 全称是「Generative Pre-Training」,直译过来就是「生成式的预训练」,有意思吧。
如前文所说,OpenAI 对 GPT 的生成式 AI 有坚定的信念,因此在训练模型的时候,只选用「上文」来训练模型,也就是说,GPT 本质上是一个极致的概率模型,它根据上文提示,来猜测下一个单词应该是什么。
这个坚持虽然在一开始 GPT1 和 GPT2 时代让其输出效果稍逊于同期 Google 的语言大模型 BERT,但到了 GPT3 时期,在超级规模网络参数的加持下,GPT 这个 100% 纯粹的生成式 AI 终于迸发出耀眼的光芒,模型输出效果甚至大幅超越了研究人员的预期。
尽管没有实证,但笔者很倾向认为 GPT3 的极大成功和 OpenAI 坚定不移的只用上文来训练模型有着某种必然的关系,人的语言沟通也从来都是按顺序表达的,没有谁先把一句话的最后一个词说完才回头考虑上一个词。从这点来看,GPT 系列模型顺应了人类思考的逻辑,最终由量变推动了质变。
终于,借助了 Transformer,GPT 这样的超大规模语言模型(GPT-3 有 1750 亿个参数)在不需要标记数据的情况下,可以借助现成的海量标准数据以及超级算力,得到通用的「预训练」版本模型。
可能有读者会继续问,有了预训练好的模型版本后,GPT 怎么能以适应各种各样的特定任务(或者专业一点,「下游任务」)呢?GPT 论文里给出了简单的改造施工图,附在这里读者们有点直观感性感知即可。总之通过简单的改造操作,GPT 就能很好适应不同的任务。只需要在输入部分调整一下就可以了,非常方便。
补充一句,或许正是因为改造特别方便,OpenAI 的研究人员才能在 GPT3.5 版之上改造出一个问答专用的 ChatGPT。虽然还不是基于大杀器 GPT4.0,但 ChatGPT 所展现出的超强内容生成能力,在这几天已经在大众用户群体里刮起了超级旋风。
09 从 GPT3 到 ChatGPT,进化继续
在历史长河里走了过来,终于回到了本文开头的主角 ChatGPT。
如果读者已经理解了前面关于深度学习神经网络的变迁和发展之路,再来看 ChatGPT的技术升级,就是特别简单的事情了。
ChatGPT 是基于 GPT-3.5 模型的魔改。GPT-3.5和3.0的区别,首先是和微软合作,在微软的 AzureAI 云服务器上完成了训练;另一个重要的区别是其训练数据集里除了文字,还加入了代码,因此 ChatGPT 现在已经可以写程序,甚至给现成的代码找 bug 了。
为什么试用过 ChatGPT 的同学都感觉提升很明显?一个重要的原因是 ChatGPT 引入了一个新的训练方法 RLH(论文《Training language models to follow instructions with human feedback》,发表于22年3月),简单的说,就是用人类反馈的方式加强训练。
看这个简单的描述显然不能感受到技术的提升,不过我们只需要理解,这其实就是在 GPT3 的大数据预训练之下,再次加强了人类的反馈。
有趣的是,前面基于 Transformer 的通用大数据无监督训练模式把自然语言的自动学习做到了某种极致,而这个 RLHF 又重新捡起了「手动档」人类反馈机制,貌似有一点返璞归真的感觉。仿佛是武功高手练至化境之后,又重新拿起了最早的野球拳,一招使出了无与伦比的超越功力:)
ChatGPT 还有一个很重要的特点,就是针对输出有效性上做了非常好的调整。使用过 ChatGPT 的同学一定能感觉到,ChatGPT 并非每一个问题都能回答详尽,但它绝对没有胡说八道,ChatGPT 的回答和真实世界的情况是相当一致的。做到这点很不容易,也是 ChatGPT 和之前容易乱说一气的问答 AI 模型前辈最大的不同。
另一个和确保回答有效性同样值得关注的改进是,ChatGPT 在道德约束上做得很出色。如果我们去询问一些逾越了道德边界的问题,或者一些特别敏感的问题,ChatGPT 基本都能察觉和回避。
这让我们想起了 AI 绘画大模型最让人诟病的地方,那就是通过 AI 生成 18 图片,尽管这不是一个技术问题,但对于一个智能内容生成平台,我们显然要有方法管理好内容的质量,以及内容的道德边界。在这一点上,ChatGPT 带了一个好头。
ChatGPT 的试用版在 OpenAI 的 RLHF 论文发出半年之后刚刚推出,根据 OpenAI 研究人员自己的说法,内部经过了大量调优,而且即使当下,ChatGPT 还是有很多需要改进的地方。
但无论如何,ChatGPT 已经展示给我们所有人,自然语言生成式 AI 所能达到的全新高度。
笔者特别憧憬 GPT4.0 的 ChatGPT 改版.如果如传说那般,GPT4.0 已然突破了图灵测试,笔者对基于 4.0 版本的 ChatGPT 抱有无限的期待。说不定,上一篇文章里预言的,AI 大模型来写长篇玄幻小说的时代,马上就要来临了。
10
后记
如果能耐着性子读到这里,读者应该自然语言的生成式 AI 的前世今生有了一点概念。
回过头来再问一次,对于「预训练」这个深度模型里的重要概念。读者有没有想过,预训练到底是什么?
对,具体而言,预训练就是在几千亿参数的支持下,类似 GPT 这样的超级模型灌入了难以计量的文本训练数据(说不定已经把全世界可以搜刮到的文本都拿来用了)来训练得到了一个通用大语言模型。
不过,在更高的一个角度去畅想,当我们把全世界的文字信息直接灌进拥有数千亿参数的 AI 模型里,模型在网络的各个层级上抽取和记忆这些文字里的特征信息。
那么,GPT 这样的超级模型实际上就在通过所谓预训练方式,学习到了人类所有文字信息的全部特征,直接把人类的语言智慧记在了自己几千亿量级的神经网络大脑里。
做到了这种程度,真的就像是我们用人类的全部知识体系来培养出了一个超级强大的机器大脑,这个大脑通过它超大规模的人工神经网络规模接纳学习了人类创造的所有内容。
进而,针对人类的任意问,AI 可以做出连图灵测试都无法区分的真正智能回答。
人类已经马上无法分辨,在小黑屋后面,那究竟是一个人还是一个 AI 了。
这一天来得比想象更快。
一个能容纳和理解人类全部文字知识,并做出真正智能回答的 AI,我们是不是可以简单认为:今天,真正的机器智能,已然诞生。
游戏葡萄招聘内容编辑,
点击「阅读原文」可了解详情
米哈游人设 | 看懂拳头 | 心动这一年
2022求职难 | 专访战争2061 | AI作画
绝区零 | 燕云十六声 | 原神3.0
相关文章
猜你喜欢