第 6 章
论断:BERT的诞生是Google对OpenAI
2018年10月11日,周四,下午4点22分。雅各布·德夫林坐在Google山景城园区Bldg 1965三层的一间小型会议室里,面前是一台ThinkPad笔记本电脑,屏幕上打开着arXiv提交页面的最终确认框。会议室里没有其他人。窗外的加州日光正在软化,透过百叶窗在他面前的桌上投下条状阴影。德夫林的手放在触控板上,光标悬停在“Submit”按钮上方。这个动作他已经做过几十次——他此前发表的论文足够多,arXiv提交流程对他来说早已是肌肉记忆。但这一次,停顿的时间明显更长。论文标题显示在页面上方:《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding》。作者列表:Jacob Devlin, Ming-Wei Chang, Kenton Lee, Kristina Toutanova。
四个名字,全部来自Google AI Language团队。德夫林的停顿并非出于对论文质量的不确定。过去四个月中,这个项目以Google罕见的节奏推进:从最初的概念验证到完整实验,再到论文撰写和内部评审,每个环节都被压缩到了接近极限的时间窗口。团队在Cloud TPU集群上运行的最后一轮预训练,直到上周才完成。结果文件在周五深夜传到他的邮箱,周一早上他读完最后一组评估数字,做出了提交决定。
现在,周四下午,他面对的是最后一个步骤。他点击提交。页面刷新,显示“Submission received”。德夫林合上笔记本,拿起桌上的咖啡杯走出会议室。
走廊里没有人注意到他。在这一刻,全球自然语言处理领域的正常研究节奏,被这个安静的周四下午永久地改变了。把时间拨回到2017年6月。
OpenAI发布GPT-1的论文《Improving Language Understanding by Generative Pre-Training》时,Google AI Language团队的几位研究员正在准备自己的Transformer相关实验。GPT-1的架构选择让他们感到意外:这篇论文将Transformer原架构中的解码器独立出来,训练一个从左到右的单向语言模型,然后在下游任务上微调。这个方法简洁有力,但它也意味着一种明确的取舍——放弃双向上下文信息,换取生成能力的纯粹性。Google的研究员们读完了GPT-1论文及其所附的代码。他们尊重新架构的大胆,但同时也看到一个清晰的技术空白:GPT-1的单向设计决定了,当它处理一个句子时,每个词只能关注到它前面的词。
这意味着在需要理解整个句子结构的任务上——比如判断“银行”这个词在“他到银行存钱”和“他坐在河边的长椅上,身旁是一棵柳树”这两个句子中是否指同一件事——GPT-1的架构存在理论上的信息瓶颈。这不是参数规模能解决的问题,而是架构设计本身的约束。从2017年下半年到2018年初,这个技术空白始终悬在Google AI Language团队的讨论上空。2018年2月,艾伦人工智能研究所发布了ELMo,用双向LSTM证明了上下文相关词表征的巨大价值。2018年5月,fast.ai的Jeremy Howard和Sebastian Ruder发布了ULMFiT,证明了预训练语言模型在下游任务上微调的高效性。这两项工作与Transformer之间产生了明显的张力:ELMo和ULMFiT都基于LSTM,其双向建模能力天然强于单向Transformer,但Transformer的并行训练效率和在长距离依赖上的建模能力又远优于LSTM。
如果有人能将Transformer的编码器与双向预训练结合起来,会发生什么?这个问题的答案,在2018年6月变得更加紧迫。同月,OpenAI发布了GPT-1的正式版本,论文在学术圈引发广泛讨论。GPT-1在多项基准测试上表现出色,其单向生成路线开始被一些研究者视为Transformer的最优用法。Google AI Language团队意识到,如果他们不尽快行动,整个领域可能会过早地收敛到单向路线——不是因为这条路线最优,而是因为它最先被证明可行。
正是在这个背景下,德夫林和他的同事们开始了BERT的设计工作。团队做出的第一个也是最重要的技术决策,是彻底放弃Transformer的解码器部分,只保留编码器。
这不是一个显而易见的决定。2017年Transformer原论文设计的编码器-解码器架构,其编码器负责“读取”输入序列并建立双向表征,解码器则基于这些表征“生成”输出序列。GPT-1选择了解码器路线,因为它最终关心的是语言生成。
而Google的团队选择了编码器路线,因为他们关心的核心问题是语言理解——而这恰好是Google搜索帝国的立身之本。这个决策背后的商业逻辑与技术逻辑同样清晰。Google的核心产品是搜索,搜索的本质是理解用户查询的意图,并从数十亿网页中提取最相关的信息。这个过程需要的是理解,而非生成。一个能够精准判断“最快的鸟类是什么”这个查询与某篇关于游隼的文章之间语义相关性的模型,对Google的价值远大于一个能够写出一段关于游隼的文字的模型。事实上,后者对搜索引擎来说可能是一个负资产——用户来Google是为了获取既存信息,而不是阅读AI的即兴发挥。
因此,当德夫林的团队坐下来设计BERT的预训练任务时,他们问的问题不是“如何让模型变得最通用”,而是“如何让模型最擅长理解”。答案很快就浮现了:掩码语言模型。这个想法的核心逻辑极其简单——从输入句子中随机遮掉一些词,让模型根据剩余的所有词来预测被遮掉的词。
具体来说,输入句子的15%的词语被随机选中,在这15%中,80%被替换为特殊标记[MASK],10%被替换为随机词,10%保持不变。模型不能“看到”被遮掉的词是什么,它必须利用整个句子的上下文——左边和右边的所有词语——来进行推断。
这个任务在概念上简单到几乎朴素,但它的后果是革命性的。与GPT-1的“预测下一个词”任务相比,掩码语言模型迫使模型在每个位置都建立对全局上下文的深度理解。当模型看到“The [MASK] was flying over the lake”这个句子时,它必须同时利用“The”“was flying”“over the lake”以及句法结构的信息,才能推断出[MASK]很可能是一种鸟类。GPT-1在看到同样的句子时,只能利用“The”这个词来预测下一个词——在单向架构下,它无法利用后面的信息。两者的信息利用效率存在数量级的差异。除了掩码语言模型,BERT还设计了第二个预训练任务:下一句预测。
这个任务要求模型判断两个句子是否在原文中相邻,目的是训练模型理解句子之间的关系——这对于问答、自然语言推理等任务至关重要。两个任务加在一起,构成了BERT的预训练目标:既理解词语在句子内的上下文关系,也理解句子之间的逻辑关系。
论文提交后的几天内,arXiv上开始出现对BERT的讨论。起初的节奏并不特别——每天有数十篇甚至上百篇新论文上线,大多数都会收到一些关注然后淡出。
但BERT不同。11月初,Google在GitHub仓库google-research/bert上开源了完整代码,并同时发布了两个预训练模型:BERT-Base,包含1.1亿参数,在4块Cloud TPU上训练了4天;BERT-Large,包含3.4亿参数,在16块Cloud TPU上训练了4天。这一动作将讨论转化为冲击。
要理解这个时刻的战略意义,必须理解2018年底AI研究的基础设施格局。预训练大型语言模型是极其昂贵的。
BERT-Large在16块TPU上训练4天的算力成本,按当时的云服务价格估算,约为数千美元。对于Google来说,这是一笔可以忽略的开销。但对于一所普通大学的研究组、一家中小型创业公司、或者一个在美国之外独立工作的研究者来说,从零开始训练BERT-Large既不经济也不现实。他们拥有的计算资源——通常是一块或多块消费级GPU,如NVIDIA GTX 1080 Ti或RTX 2080 Ti——足以微调一个已有模型,但远不足以预训练一个同等规模的模型。
Google的战术就在这里展现了杀伤力。通过开源预训练权重,Google将所有拥有GPU的研究者都变成了BERT的用户,而不仅仅是旁观者。一个在伦敦读博士的学生,可以在一小时内下载BERT-Base的权重文件,然后在自己的任务数据上微调一个下午,到晚餐时拿到一个在几个月前还属于世界顶尖水平的NLP模型。
一个在班加罗尔的创业公司,可以将BERT-Large微调到自己的客服对话系统上,在三天的工程时间内部署一个准确率远超此前任何系统的意图分类器。这种“即插即用”的体验,在NLP领域是前所未有的。
到2018年12月,BERT的性能数字开始从各种渠道涌出。在SQuAD v1.1问答数据集上,BERT-Large的单模型F1分数达到93.2,比此前的最优系统高出超过5个百分点。在GLUE多任务语言理解基准测试上,BERT-Large得分80.5,将此前的最好成绩从70分档直接推入80分档。在命名实体识别任务CoNLL-2003上,F1分数达到92.8。在SWAG常识推理数据集上,准确率提升到86.3。在所有11项被测试的基准任务上,BERT都刷新了最高纪录。不是微小的提升,而是系统性的、大幅度的超越。
这些数字的意义,需要放到NLP系统的实际使用场景中才能被充分理解。一个问答系统的F1分数从88提升到93,听起来只是5个百分点的差距。
但在实际使用中,88分意味着系统在每10个问题中给出超过1个错误答案;93分意味着错误率下降到了不到每15个问题1个。前者在用户测试中会产生明显的挫败感——用户连续问几个问题,就会撞到一个明显错误的答案,从而对整个系统失去信任。后者则接近“大多数时候正确”的临界点,用户开始愿意接受系统的回答,而不再频繁验证。这不是量变,是质变。
同样的逻辑适用于文本分类、命名实体识别、语义相似度判断——当准确率从“勉强可用”跨越到“可靠可部署”,整个产品逻辑就变了。在此之前,大多数NLP系统在面向消费者的产品中扮演的是辅助角色——提供建议,而非给出最终答案。BERT之后,NLP系统开始被允许进入核心决策流程。Google搜索团队在2019年底宣布将BERT部署到英文搜索中,影响约10%的查询结果,这一决策的技术前提,就是BERT在问答和语义匹配任务上的准确率已经跨越了可用于生产系统的门槛。
但BERT闪电战最深刻的影响,不在任何一个具体的数字上,而在它重塑了整个NLP领域的研究方法论。在BERT出现之前,一个典型的NLP研究项目的流程是这样的:研究者针对特定任务设计一个定制的神经网络架构,在标注数据上从零开始训练,反复调参直到性能收敛。每个任务都有自己独特的架构设计哲学,人才的核心能力是“设计好的网络结构”。
BERT之后,这个流程被压缩成了:选择一个预训练模型,在目标任务的标注数据上微调,调整少数几个超参数。研究者的创造力从“设计架构”转向了“设计微调策略”和“改进预训练目标”。2020年的一项调查统计发现,在BERT发布后的一年多里,分析和改进BERT的研究论文超过150篇,BERT已经成了NLP实验中“无处不在的基线”。
这个转变的产业后果是深远的。它大幅降低了部署NLP系统的技术门槛。此前,只有少数拥有足够研究人才和标注数据的大公司,才能为每个特定任务从零训练高性能模型。
BERT之后,任何拥有基本机器学习工程能力和少量标注数据的团队,都可以通过微调获得接近甚至达到此前最先进水平的性能。语言理解技术开始从少数科技巨头的实验室,扩散到银行、医院、律所、制造企业和政府机构。BERT无意中完成了一场产业民主化——它并没有让预训练变得便宜(Google承担了那笔成本),但它让预训练的收益可以被几乎零成本地共享。
然而,每一场胜利都有其代价。BERT在NLP领域建立的霸权,同时征收了一种特定的“范式税”——这个概念在后来回顾这段历史时才被清晰命名。一种技术范式在确立主导地位后,因其固有的局限性,会向整个产业生态征收隐性成本,表现为创新路径的收窄和替代方案的抑制。BERT的掩码语言模型范式在NLP领域征税的方式是具体的:它将“理解”范式推向了绝对主导,使得生成式任务——文本生成、对话系统、创意写作——在相当长一段时间内被视为次要方向。在2019年初的学术会议和产业论坛上,这个信号的传递是明确无误的。
“我们现在关注的是理解,”一位来自西雅图某大型科技公司的NLP团队负责人在一次闭门讨论中说道,“生成的质量还没有达到可以产品化的程度。BERT已经证明了理解可以产品化。”
这不是一个孤立的判断。在同一时期,多家科技公司在内部项目评审中将生成式NLP项目的优先级下调,将资源转向基于BERT的微调系统。理由很充分:BERT在理解基准上的数字是确凿的、可复现的、可部署的,而GPT系列的生成能力虽然有趣,但在基准测试上缺少同样量级的比较数据——生成质量的评估本身就是个未解决的问题。
这就是范式税的运作方式:它不通过强制或禁令,而是通过机会成本来塑造整个领域的走向。最聪明的年轻研究者选择博士论文课题时,知道做BERT变体能更快地发表、更容易找到业界工作;风险投资机构评估NLP创业项目时,倾向于投资那些建立在已验证范式上的公司;大公司的研发预算分配时,资源流向能更快产生可测量结果的方向。
所有这些微观决策叠加在一起,产生的宏观效应就是:BERT的成功,使得生成路线在一段时间内被系统性地低估了。Google内部并非没有人看到这个风险。2019年4月,一位未参与BERT项目的Google工程师在一份内部技术备忘录中,专门分析了GPT-2论文(2019年2月发布)中的一个被忽视的发现:OpenAI的研究者观察到,GPT-2在多个任务上的零样本性能——即不经过任何微调、直接让模型执行任务的性能——与模型规模之间存在对数线性关系。换句话说,模型越大,它的零样本能力越强,且这种增强是平滑的、可预测的。这位工程师在备忘录中写道,如果这个趋势在更大规模上持续成立,生成路线的能力范围将不断扩大,最终可能覆盖一部分目前由微调范式统治的理解任务。
这份备忘录在Google内部引发了一些讨论,但并未改变BERT主导的资源分配格局。理由很简单:BERT当下交付的价值是确凿的、可量化的、可以写进季度产品路线图的。
GPT-2所暗示的“也许未来生成模型可以绕过理解模型”的图景,虽然逻辑上成立,但在2019年的时间点上缺少可验证的证明。Google作为一家以搜索为核心业务、以理解用户查询为立身之本的公司,押注“理解路线”不仅是技术判断,也是商业本能。这种判断的短期正确性,反而为长期竞争制造了盲区。
当Google在2019年全力推进BERT的多语言版本、轻量化版本和领域适配版本时,OpenAI正在完成一个更激进的预训练实验:GPT-3。这个实验的参数规模将达到1750亿,是BERT-Large的500倍以上,其核心假设恰恰来自那份备忘录所提及的对数线性关系。OpenAI的赌注是:如果零样本能力与规模的对数线性关系持续成立,那么在这个规模的台阶上,GPT-3可能展示出一种新型的能力——不需要微调就可以执行各种任务,只需要用自然语言给出指令。这个能力如果被验证,将直接侵蚀BERT微调范式的存在合理性。
在2019年中期,没有人确切知道这个赌注是否会成功。但竞争态势的结构已经成型:Google通过BERT闪电战夺取了“理解”高地,暂时将生成路线压制在产业关注的边缘;OpenAI则继续沿着规模法则孤军深入,押注生成能力会在更大规模上发生质变。
两条路线的背后,是两种截然不同的公司基因和商业模式。Google的基因是组织全世界的信息,让用户通过搜索找到答案。OpenAI的基因——在2019年这个时间点上——是构建通用人工智能,而“生成一切”比“理解一切”更接近通用智能的终极想象。
这两条路线的对峙,在2019年秋天的一个产业事件中被暂时定格。9月,Google搜索团队正式宣布BERT已经部署到美国市场的英文搜索中,影响约十分之一的查询。
这是一次经过精心计算的公开声明:它向产业界传递的信号是“BERT不只是论文,它是产品”,同时也向华尔街传递的信号是“Google在AI搜索上保持领先”。
但这次部署也暴露了BERT范式的一个结构性成本:推理算力。BERT-Large处理一个搜索查询需要消耗可观的TPU计算时间。对于每秒钟处理数万次查询的Google搜索而言,为每次查询都跑一遍BERT-Large的前向传播,其总算力开销是一个令财务部门皱眉的数字。
Google不得不投入大量工程资源来压缩模型:知识蒸馏——用大模型训练小模型的技术——被系统性地应用到BERT上;8位整数量化将模型从32位浮点精度压缩到更低的比特宽度;专用推理芯片TPU v3被优化以加速Transformer矩阵运算。所有这些工程努力的最终目标,是让BERT的推理成本降到可以在搜索引擎的延迟预算和算力预算内运行。
即便如此,在2019年底,BERT仍然只能覆盖Google搜索查询的一个子集——那些被判定为“语义理解收益最大的查询”。其余的查询,要么继续使用传统的信息检索模型,要么使用BERT的更轻量变体。
这种“分层部署”策略在工程上是合理的,但它也揭示了一个尴尬的事实:BERT的强大能力是有代价的,这个代价在实验室的基准测试中看不到,但在生产系统的算力账单上清晰可见。
相比之下,GPT路线在推理效率上有一个常被忽视的优势。一个训练好的GPT模型可以用于多个任务,不需要为每个任务单独微调和部署一个模型副本。在搜索引擎场景中,这意味着同样的参数集可以同时处理查询理解、问答、摘要生成等多种功能。当然,2019年的GPT-2在准确性上还远不足以承担搜索系统的核心角色,但这条技术路线的长期总持有成本理论上有优势——如果你相信它的能力最终能够达到生产标准的话。
2019年12月,Google AI Language团队在苏黎世召开了一次年度规划会议。德夫林和几位核心成员回顾了BERT发布一年来的影响。
从任何常规指标来看,BERT都是一个巨大成功:论文引用量在计算机科学领域名列前茅,GitHub仓库的Star数已经突破两万,预训练权重被下载了数百万次,基于BERT的微调系统遍布从医疗到金融的几十个行业。
但会议的气氛并非全然庆祝。一个被反复提起的问题是:BERT之后,下一步是什么?
团队面前摆着几个方向。一是继续优化BERT架构——更轻、更快、更便宜。二是扩展BERT到更多语言和更多模态。三是尝试统一NLP领域碎片化的任务格式——当时的NLP研究被几十种不同格式的基准测试割据,每次微调都需要针对特定格式设计输入输出模式。四是探索更大规模的预训练。这些方向并非互斥,但资源分配需要在它们之间做出选择。
会议在苏黎世的湖景会议室里持续了一整天。最终确立的优先方向,在几个月后以一篇新论文的形式公之于众。这篇论文将试图回答一个比BERT更宏大的问题:如果NLP的所有任务都可以被重新表述为文本到文本的格式——输入是文本,输出也是文本——会怎样?
如果预训练不再是单一的语言建模或掩码语言建模,而是一个统一框架下的多任务学习,会怎样?这个方向最终会演变成T5,一篇试图为NLP领域建立统一技术标准的宣言式论文。
但在那之前,BERT留下的遗产已经足够清晰。它证明了双向理解范式在2018年底的算力条件下是最优的。它用一种“全栈式发布”——论文、代码、预训练权重同步公开——的策略,建立了NLP产业化的新标准。它迫使整个领域接受了预训练加微调的工作流程,将架构设计的权力从单个研究者转移到了拥有大规模算力的少数机构。最重要的是,它用压倒性的基准测试成绩,暂时赢得了“理解”对“生成”的胜利。
可这个胜利的暂时性,在2019年底已经若隐若现。OpenAI的GPT-3实验正在运行中,它在数千块GPU上消耗的电力和算力,将在2020年中催生出一个令整个产业重新思考语言模型能力的怪物。
当那一天到来,BERT建立的“理解优先”范式将面临一次根本性的压力测试:当生成模型足够大时,理解和生成之间的界限是否还存在?
在苏黎世会议结束后的第二天,德夫林登上了返回山景城的航班。他的随身笔记本里夹着一张打印纸,上面是GPT-2论文中的一个表格——那个显示零样本性能与模型规模对数线性关系的表格。他将这张纸折好放进背包,拉上拉链。飞机开始滑行。窗外是苏黎世湖冬季灰白的水面。他没有再打开背包。
BERT闪电战的胜利是完整的,但它没有结束战争——它只是重新定义了战争的术语。理解与生成、微调与零样本、开源与闭源、防御与进攻,所有这些对峙都在2018年那个十月的下午被注入了新的能量。当德夫林的航向指向加州时,整个AI产业的智力引擎仍在加速运转,而下一场战役的弹药正在美国另一端的GPU集群上被悄然锻造。