PDF 物理页索引 340
文件中的第 341 页 · 印刷页码:325
2003 年,刚考入多伦多大学的苏茨克维来到了辛顿的办公室,他并没有提前预约,却理直气壮地直接提出希望加入辛顿的实验室<sup>○一</sup>。大概习惯了老派英式严谨作风的辛顿很久都没有遇到过这样的愣头青了,一时也不知该如何打发苏茨克维。后来辛顿从抽屉中拿出两篇论文让苏茨克维阅读,叫他读懂后再来谈加入实验室的事情。苏茨克维当然没有知难而退,一周后,辛顿看完他交回的解读报告,既惊讶又惊喜,评价道:“苏茨克维对抓住文章关键结论有一种异常敏锐的能力,这是即使有经验的研究人员也需要花费数年时间才可能找到的能力<sup>○二</sup>。”不过,苏茨克维接着向辛顿补充道,尽管他能够完全理解这两篇论文,但对论文的结论并不认可:“训练神经网络只能用来解决特定问题,当人们想解决不同问题时,就得用另外的神经网络重新开始训练。我认为应该有一个能够解决所有问题的神经网络存在。”相信辛顿肯定知道这种今天被称为“通用人工智能”(Artificial General Intelligence,AGI)的想法在当时只是异想天开,但辛顿也如同他自己的老师希金斯那样,虽然并不认可神经网络却尽最大力量支持弟子研究神经网络那般,欣然接受了苏茨克维。就这样,未满 18 岁的苏茨克维如愿收到了辛顿实验室的邀请,跟随在辛顿身边学习人工智能。
十年光阴转瞬即逝,2012 年,刚刚从辛顿手上获得博士学位的苏茨克维随DNNResearch 收购案进入谷歌人工智能团队。在分配出售 DNNResearch 的收益时,苏茨克维和亚历克斯都认为他们的老师辛顿理所应当占大头,但辛顿断然拒绝,坚持认为 5000 万美元的收益应该由三人平分。所以苏茨克维虽然才刚刚毕业,但已经是身价千万美元的富翁了。经济上的宽裕并没有让苏茨克维选择“躺平”,只是给予了他不用为研究经费奔波、自由选择研究方向的权利。
苏茨克维决定将他的主要研究方向从原本的计算机图形学调整到自然语言处理(Natural Language Processing,NLP)。几年后苏茨克维本人在采访中解释过更换研究方向的原因,他认为:“图像是人类知识的源头,而语言是人类知识的压缩。”想办法让计算机理解人类自然语言也许是机器通往智能的一条捷径,因为对比视觉和声音,语言的信息压缩比例要高得多。我们不妨想象一下,人工智能像是一位初到陌生城市的旅者,最开始,这位旅者可能只懂得几个最基本的词汇和短语,类似于旅游手册里的内容。随着时间的推移,他开始学习当地的语言,在过程中也会了解当地的历史、文化和习俗,以便能更深入地理解这座城市,甚至能够与当地人进行深层次的交流。最后,这位旅者不仅学会了如何使用语言,也理解了当地人的想法、情感和行为方式。语言就像是一座桥梁,帮助一个陌生人逐渐融入新的城市,人工智能通过学习语言,也许会逐渐理解并参与到人类的世界中来。
第 8 章 从学习到创造
325
○一 这段苏茨克维与辛顿初次相见的故事,以及后面他们分配 DNNResearch 被收购的收益的故事都记载在 Journey Matters 上:https://journeymatters.ai/ilya-the-brain-behind-chatgpt/。
○二 原 话 为:Sutskever’s unique ability to arrive at conclusions that even experienced researchers took years to find。
PDF 物理页索引 341
文件中的第 342 页 · 印刷页码:326
苏茨克维最开始的研究是用神经网络处理不同类型的序列数据(如字符、单词、句子、声音等都是典型的序列数据)之间的转换。自然语言处理的应用几乎都是围绕着序列展开的,譬如:从一种语言的序列转换成另外一种语言的序列,这是机器翻译的场景;从一种含义的序列内容转换成有内容顺承关系的序列,这是自然语言对话的场景;等等。
以机器翻译为例,2012年以前的主流方法是统计机器翻译(Statistical MachineTranslation,SMT),希望能从大量相互对照的语料数据中学习,得到一个从源语言映射到目标语言的统计概率模型。进行翻译时,只要找到概率最大的目标语言映射结果便认为是对源语言的最佳翻译结果了。这种思想模仿了人类对语言学的研究方法论,譬如人类语言学家通过研究罗塞塔石碑(Rosetta Stone,见图 8-8)上三种不同语言铭刻的古埃及法老托勒密五世诏书,利用映射关系成功解读出已经失传千余年的埃及象形文字,成为研究古埃及历史的重要里程碑。
但是统计机器翻译依靠映射概率的方法存在十分明显的局限性,且不说两种或两种以上语言描述同一内容可以相互映射的语料十分难得,只占所有语料数据很少的一部分,仅说建立两种语言之间相同含义的序列映射就很困难,这样的映射有可能是一对一、一对多、多对一或者多对多的,有一些词汇甚至找不到映射关系。譬如笔者曾数次提到了“江湖”这个词,读者不妨想想它应该如何翻译为英文。类似的困难还有许多,这些困难大多并非无法解决,但问题是解决方案往往只能针对特定的源和目标语言来处理,不可避免地涉及大量的特征工程以及语言学专家知识,需要庞大的人力才能维护,这就导致了在很长时间内,只有几种主流语言之间的机器翻译能够给出差强人意的结果,其他小语种的机器翻译结果几乎无法被实际使用。
326
第三部分 第三波高潮
PDF 物理页索引 342
文件中的第 343 页 · 印刷页码:327
引用上一节的生成式对抗网络作为对比,我们可以评价统计机器翻译是一种“深度依赖人工参与、深受人类能力限制的模型”。针对统计机器翻译的缺陷,2014 年,苏茨克维在发表的论文“ Sequence to Sequence Learning withNeural Networks ” 中 提 出 了“神 经 机 器 翻 译”(Neural Machine Translation,NMT)的概念。神经机器翻译的基本结构由一套名为“序列到序列”(Sequenceto Sequence,一般简写为 Seq2Seq)的两层循环神经网络构成,这两层循环神经网络分别称为“编码器”(Encoder)和“解码器”(Decoder),如图 8-9 所示。
在编码器一侧的任务是对输入序列的上下文语义进行向量化,这个任务的通俗解释就是把含义相近的语言序列转换为向量空间(本书 6.5.2 节中有关于向量表示与向量空间的介绍)中距离相近的向量,含义差距较大的序列对应的向量距离较远。进行“词向量化”(Word Vector)的过程被称为“词嵌入”(Word Embedding),该技术一揽子地解决了不同语言、语法中诸多充满不确定性的歧义问题。以中文为例,单独来看“胜”和“败”的向量距离很远,但“中国队大胜美国队”和“中国队大败美国队”的向量距离却很近;“ How areyou ?”和“吃了没?”,虽然直译的结果看起来完全不相干,但它们的向量距离在大多数上下文中都是十分接近的。早在 2000 年,本吉奥在论文“ NeuralProbabilistic Language Models ”中就提到了使用词嵌入技术产生词向量来表示语义远近关系的思想。在神经机器翻译提出的前一年(2013 年),苏茨克维当时的同事、谷歌研究员托马斯·米科洛夫(Tomas Mikolov,1982—)发表了两篇论文<sup>○一</sup>,又提出了“ Word2Vec”技术,使得词向量的训练过程的效率和效果显著提升,让词向量这项技术变得更加实用化。
第 8 章 从学习到创造
327
PDF 物理页索引 343
文件中的第 344 页 · 印刷页码:328
在解码器一侧的任务是对输出序列中下一个词的最大概率进行预测,这个任务同时接收两个输入,一个是编码器给出的上下文向量(Context Vector),另一个是上一轮解码器刚刚输出的结果(否则就谈不上是“下一个”词了)。刚刚开始时,首个输入词固定为起始标志“ <Start>”。笔者举个例子来说明解码器是如何工作的:假设当前进行的是机器翻译任务,上一阶段编码器已经对输入序列“好好学习”产生了上下文向量,这个上下文向量在论文中被称为“隐藏状态”(Hidden Status,HS)。当解码器接到隐藏状态 HS1 和第一个词“ <Start>”后,产生的输出是“ good”,每轮产生输出词的同时也会修正隐藏状态的内容,如将隐藏状态 HS1 修正成 HS2。接下来,把上一轮输出的词“ good”和 HS2 作为输入,本轮产生的输出同样是“ good”并修改隐藏状态为 HS3,然后第三轮根据第二个“ good”产生了“ study”,最后产生结束标记“ <End>”,由此就生成了完整的翻译结果“ <Start>”“ good”
328
第三部分 第三波高潮
○一 “ Eficient Estimation of Word Representations in Vector Space ” 和“ Distributed Representationsof Words and Phrases and their Compositionality ”,苏茨克维本人参与了相关工作,是论文的第二作者。
PDF 物理页索引 344
文件中的第 345 页 · 印刷页码:329
“good”“ study”“ <End>”。训练不同的解码器,便能够满足不同的应用需要,假设当前的应用场景是自然语言对话,那各轮次产生的输出序列可能依次是“<Start>”“天”“天”“向”“上”“<End>”。
序列到序列模型的强大之处有两点,其一在于它彻底跳出了传统统计方法“从一种语言映射到另一种语言”的藩篱,可以使用单一语言的语料来训练出该语言的编码器和解码器,而不需要刻意地寻找两种语言相互对照的数据来训练出专门针对这两种语言的翻译任务的模型。其二是它完全摆脱了序列受映射关系对齐约束而导致的长度受限问题,序列到序列模型的输入和输出长度没有强制的关联关系,完全取决于编码器和解码器(主要是解码器)是如何设计的,因此输出序列长度可以做到与输入序列差异极大,即使用户只输入了一个十分简短的问题,解码器也可以生成洋洋洒洒上千字的回答。以上两个特点为使用序列到序列模型解决自然语言处理领域的众多经典问题带来了全新的可能性,无论是机器翻译、对话还是摘要等任务,均可胜任。
序列到序列模型的发明完全可视为语言爆发的奇点,自此以后,机器对人类语言的理解和处理能力,再延伸到机器对语言背后的知识汲取速度,都一改此前几十年平缓演进的曲线,以普通人难以想象的速度快速提升。
8.5.2 注意力机制与 Transformer 架构
序列到序列模型的发明,就像生成式对抗网络给图像处理领域带来的震动一样,在自然语言里开辟了一条崭新大道,吸引了几乎该领域所有的研究者竞相参与。尽管如此,对序列到序列模型最重要的两项改进依然还是由谷歌人工智能团队做出的,这两项改进奠定了后续的主流大语言模型研究路线的共同基础。
第一项改进现在被称作“注意力机制”(Attention Mechanism),是由谷歌研究员德米特里·巴赫达瑙(Dzmitry Bahdanau)在 2014 年提出的。苏茨克维的序列到序列模型最初采用传统的长短期记忆网络(就是施密德胡伯的 LSTM)来处理序列中的长距离信息依赖,尽管长短期记忆网络本来就是为了这个目的而设计的,但它毕竟仍是一种循环神经网络,随着序列长度的增加,长短期记忆网络依然面临梯度消失或梯度爆炸的问题,这使它在捕捉长距离信息依赖时变得愈发困难,尤其是要处理的序列长度达到整个文档甚至成套的书籍时,传统的长短期记忆网络几乎就变得完全无法使用了。
第 8 章 从学习到创造
329
PDF 物理页索引 345
文件中的第 346 页 · 印刷页码:330
巴赫达瑙发明的注意力机制的核心思想是:在处理长序列数据时,并不是所有输入的信息都同等重要,模型应该根据本轮任务,自动和动态地决定在处理每个输出序列时应当重点关注哪部分输入。模型如何知道输入的哪些部分与任务的相关性更高呢?解决这个问题的不同方法就形成了不同的注意力机制。譬如巴赫达瑙给出的方法是首先将输入序列中的每一项元素都赋予一个注意力权重,用来表示当前任务中模型对输入序列中每个元素的关注程度,然后训练一个小型的前馈神经网络(通常只有一个隐层)来预测这个权重值 ,这种方法被称为“巴赫达瑙注意力”(Bahdanau Attention)或者“加性注意力”(Additive Attention)。
当下更为流行的是在 Transformer 架构中广泛使用的“点积注意力”(Dot-Product Attention),它将注意力机制的工作过程分解为“ Query”“ Key”和“Value”三部分,通过点积计算得到权重值。要从数学角度严谨地理解 Query、Key 和 Value 进行点积计算的含义非常烦琐枯燥,笔者举个生活中的例子来加以说明:请想象一位女士去婚介所购买相亲服务的场景,婚介所中有成千上万份候选档案,当然不可能让顾客逐一阅读每份材料来找出要相亲的对象,通常是先让女士描述一下她心中理想丈夫的特征,譬如身高、体重、工作、收入、房车状况、教育、家庭等,这些条件就是 Query。接着婚介所拿着理想条件(Query)去和所有候选人的现实条件(Key)进行匹配,匹配程度越高,女士应投入的注意力权重就越大,然后根据注意力大小来决定要花多大精力去阅读候选人的档案材料(Value)。
依靠计算输入序列中每个元素的注意力权重,后续的神经网络层次得以直接访问和利用输入序列中最有价值的信息,因此注意力机制下的记忆访问是无视距离长短的,如此便能绕过处理长序列时的梯度消失或梯度爆炸问题。现在注意力机制的应用已经不限于序列到序列模型了,它已成为现代深度学习模型中的一个重要技巧,显著提高了各种自然语言处理任务的性能。
第二项改进是 2017 年谷歌著名论文“ Attention is All You Need ”里首次提出的 Transformer 架构,如图 8-10 所示。从这篇文章直白的标题“你只需要注意力”就能一窥究竟:既然已经使用注意力机制来解决长期记忆和输入序列利用效率这些问题了,那何不索性直接将序列到序列模型中的循环神经网络完全替换掉,用更加简单的前馈神经网络<sup>○一</sup>(Feed-forward Neural Network,FFN)配合注意力机制来实现序列到序列模型呢?
330
第三部分 第三波高潮
○一 巴赫达瑙在论文中先设定了一个注意力分数,用神经网络预测分数值,然后将分数转换为概率分布得到权重值。由于本书的目的主要是科普,因此这里对论文的逻辑进行了简化。
PDF 物理页索引 346
文件中的第 347 页 · 印刷页码:331
第 8 章 从学习到创造
331
○一 在绝大多数语境中,FFN 就等同于多层感知机(MLP),在第 4 章讲解感知机时笔者已介绍过这种最基础的神经网络结构。
PDF 物理页索引 347
文件中的第 348 页 · 印刷页码:332
为何循环神经网络会如此不受欢迎呢?这是因为循环神经网络的原生设计就是依靠循环把前一次的输出作为下一次的输入来体现序列中的顺序关系,它天生就只能串行训练,在顺序的特性约束下它无法成批次地并行计算。因此,尽管在自然语言处理任务中序列到序列模型比传统统计学习的效果要好得多,只需要无标注的单一语言语料即可完成训练,也不会过分依赖专家知识,解除了模型训练中数据样本的限制和专家人力的限制,但是算力的限制仍没有解除,串行训练无法有效地利用现代计算机多核并行系统的优势,且训练时间的局限约束了语言模型的规模上限,直接影响了应用的最终效果。
为了解决这个问题,Transformer 架构引入了“位置编码”(Positional Encoding)的概念。位置编码是一种添加到输入序列词嵌入过程中的位置信息,将元素在序列中出现的不同位置视为词语语义之外的一项扩展信息。这些编码随着元素在序列中位置的变化而变化,使得不同位置具有唯一的表示。位置编码与输入的词向量叠加后,模型就能在理解语义的同时,感知序列中元素的相对位置,这样,所有输入序列中的元素都可以被同时处理。
Transformer 架构的设计革新终于突破了经典序列到序列模型的并行度限制,只要拥有足够的算力,就有可能在短时间内处理大批量的语料,通过投入大量语料和算力资源便可以训练出参数规模极大的语言模型。
从此刻起,“大语言模型”(Large Language Model,LLM)出现所需的最后一项前置技术宣告完备,自然语言处理马上就要引领一场人工智能历史上最壮阔的高潮了。也是从此刻起,原来调侃人工智能“有多少人工就有多少智能”的话语变成了“有多少算力就有多少智能”。规模定律(Scaling Law)成为赢得人工智能竞争的一项核心因素,所有巨头都将被卷入一场史无前例的“算力军备竞赛”当中。
8.6 OpenAI 与 GPT 模型
2015 年底,苏茨克维宣布离开谷歌人工智能团队开始创业。说“创业”或许未必准确,因为他要创立的不是一家以盈利为目的的企业(至少创立之初的目的不是盈利)。深度学习出现后,人工智能在多个领域展现了巨大的潜力,同时也引起社会精英对人工智能在伦理和安全方面可能出现的威胁的担忧。大家意识到需要建立一家致力于人工智能公共开发和担负安全责任的技术机构,以确保人工智能的潜力能被高效利用,且是用来造福全人类而不是带来风险的。
332
第三部分 第三波高潮
PDF 物理页索引 348
文件中的第 349 页 · 印刷页码:333
在这个背景下,2015 年 12 月,一家募集到高达 10 亿美元<sup>○一</sup>的捐款作为启动资金的名为“ OpenAI”的人工智能技术组织在美国加利福尼亚州旧金山成立。成立之时该组织有如下六名联合创始人(除了马斯克外,其余均是 85 后年轻人):
● 埃隆·马斯克(Elon Musk,1971—):特斯拉、SpaceX 等多家知名企业的 CEO,五年后的世界首富(2021 年成为首富)。马斯克和萨姆·奥特曼是 OpenAI 在 2019 年接受微软百亿美元投资计划之前的两位重要的初始投资人。
● 萨姆·奥特曼(Sam Altman,1985—):著名企业家、投资人,YCombinator 的总裁。2019 年之后,奥特曼在 OpenAI 出任 CEO。
● 格雷格·布罗克曼(Greg Brockman,1987—):著名企业家、投资人,同时也是一名软件研发专家和 Stripe 公司的 CTO。布罗克曼在 2019 年后出任 OpenAI 的 CTO,后又改任总裁,主要负责算法和模型的工程化工作。
● 伊尔亚·苏茨克维:本节故事的主角,出任 OpenAI 的首席科学家,是OpenAI 算法和模型的领导者以及核心贡献者。
● 沃伊切赫·扎伦巴(Wojciech Zaremba,1988—)和约翰·舒尔曼(JohnSchulman):在 OpenAI 担任研究员。
Transformer 架构出现以前,OpenAI 是完全按照组织创立时的愿景来运作的,专注于人工智能公共平台技术的研发与安全研究。仅用了两年时间,它就发布了用于强化学习算法开发的工具包 OpenAI Gym 和拥有多种高质量的强化学习算法实现的算法库 OpenAI Baselines,并且做了一个使用这些工具包开发的样例项目 OpenAI Five。
第 8 章 从学习到创造
333
○一 实际到账金额约为 1 亿 3500 万美元,其中 4500 万美元来自埃隆·马斯克,其余来自其他捐献者,OpenAI 曾发文公开这些数据。
PDF 物理页索引 349
文件中的第 350 页 · 印刷页码:334
OpenAI Five 是一个 Dota2 游戏<sup>○一</sup>的对战机器人程序,在 Dota2 比赛中成功击败了一众职业和半职业选手,展示了强化学习在复杂策略游戏中的应用。不过相比 Transformer 架构出现后所取得的突破性成绩,前两年的 OpenAI 击败几位职业选手的成绩充其量只能算牛刀小试。
作为序列到序列模型的创始人,苏茨克维看到 Transformer 架构的论文后,果断终止了 OpenAI Five 的后续研发,把 OpenAI 能够调动的资源都投向了基于 Transformer 架构的语言模型上。2018 年,OpenAI 发布了第一款命名为“生成式预训练 Transformer ”(Generative Pre-trained Transformer,GPT-1)的语言模型。
2018 年其实同时诞生了两个基于 Transformer 架构的优秀语言模型,一个 是 OpenAI 的 GPT-1, 另 一 个 是 谷 歌 的“双 向 Transformer 编 码 器 表 示”(Bidirectional Encoder Representations from Transformers,BERT),GPT-1 要比BERT 早发布几个月。这两个模型在基础理论(都是对 Transformer 架构的衍生)和主创人员的渊源(苏茨克维就是从谷歌人工智能团队出来的)上有着一定的联系,不过并不构成直接的竞争关系。BERT 是 Encoder-Only 架构,专注于 Transformer 的编码器部分,擅长理解和分析输入数据的内容,而 GPT-1 是Decoder-Only 架构,专注于 Transformer 的解码器部分,擅长预测语言模式,生成输出内容。限于本章叙事脉络的连续性,也考虑到几年后基于 GPT 的产品 ChatGPT 在公众认可度上占据了绝对优势,后续笔者就只讨论 GPT 模型的演进。
GPT-1 模型诞生之前,几乎所有的自然语言处理模型都是针对特定任务进行训练的,需要一个模型既能翻译又能对话,还能做总结摘要和编写代码,这种想法在当年就是不切实际地好高骛远,绝大多数语言模型训练者都坚信针对特定任务进行监督学习是毋庸置疑的铁律。如果读者还记得前文中提到的那个名字有些滑稽的“没有免费的午餐定理”(No Free Lunch Theorem,NFLT)的话,其实也应该赞同模型要“术业有专攻”的观点。那 GPT-1 真的是一个突破了 NFLT,“既能翻译又能对话,还能做总结摘要和编写代码”的模型吗?先别受以后 ChatGPT“无所不能”的影响,真实答案其实并非如此。
334
第三部分 第三波高潮
○一 Dota2 是一款 5 人对 5 人的著名竞技 MOBA 游戏,每年都有高达上亿美元奖金的国际挑战赛(TI 挑战赛)。