第二部分:语言机器
语言的转机
谷歌大脑不像是一个巨大的公司机构中的一个部门,更像是一个俱乐部或是学会,或一个银河系酒家; 它目前一百左右的成员在整个谷歌组织中历年被看作是最自由和最受尊重的员工。他们现在安置在公司主山景园区茂密的西北边缘一个分层的两层蛋壳建筑里,大窗户染成危险的炭灰色。 他们的公共厨房有一个我从来没有见人用过的足球桌; 一个没人玩的摇滚乐队游戏装置; 和一副我看到使用了几次的围棋。 (我曾经看到一个年轻的谷歌大脑研究助理向他的同事推荐熟透的菠萝蜜,像切火鸡一样切开波罗蜜巨大的刺球。)
6月当我开始来到谷歌大脑的办公室时,还有一些空的桌子,但大多数都贴上了便条,比如说 “杰西,6/27”。 现在这些都全坐满了。 当我第一次访问时,停车还不是一个问题。 最近的空位是孕妇车位或为特斯拉保留的位子,但在停车场其余的地方还有足够的空间。 到10月份,如果我晚于9:30到,我就不得不在街对面找到一个地方。
谷歌大脑的成长使得Dean对公司如何处理需求感到有些担忧。 他希望避免在谷歌成为所谓的“成功灾难”,就是一个公司在理论上的能力超过了它将之转换为一个产品的能力。 某一天,他做了一些简单的计算,然后向公司高层做了一个两页的演示。
“如果将来每个人每天都对他们的安卓手机说三分钟的话,”他告诉他们,“这是我们需要的计算数量。”他们需要将其全球的计算量翻倍或翻三倍。
他戏剧性地咽了口口水和瞪大眼睛,“那听起来可怕。” 他犹豫地想象可能的后果说,“你必须建造新的建筑群”。
然而,还有另一个选择:就是设计,批量生产和在分散的数据中心安装一种新型的芯片,使一切运行得更快。这些芯片将被称为T.P.U.s或“张量处理单元”,与人们的直觉相反,它们的价值所在是它们故意比正常芯片更不精确。不是计算12.246乘以54.392,他们会给你12乘以54的敷衍答案。就数学而言,而不是隐喻,神经网络只是一系列的结构化的数百或数千或数万的矩阵乘法,并且这些运算的快速比精确更重要。Dean说,“通常专用硬件不是一个好主意。 它可以加速一件事。 但是由于神经网络的通用性,你可以利用这个专用硬件来处理很多其他事情。”
随着芯片设计过程接近完成,Le和两个同事终于证明了神经网络可能被设置来处理语言的结构。他受一个称为“字嵌入”的想法启发,这个想法已经存在了十多年。当你做图像摘要时,你可以猜出摘要的每个阶段的图片样子 --- 边缘,圆形等。当你以类似的方式总结语言时,你基本上可以根据一个单词的常见用法和它与语言中的其他每一个单独的单词之间的距离生成多维图。机器不是以我们可能的方式“分析”数据,比如用语言规则将其中一些标识为名词,而将其他标识为动词。相反,它移动,扭曲和折弯多维图上的字。在二维中,这个图没什么用处。,例如,你想要“猫”在“狗”的大致范围内,但你也想要“猫”靠近“尾巴”和“孤傲”和“头像”,因为你想尝试捕获单词“猫”和其他单词之间所有不同的强和弱的关系。它可以与所有其他词同时相关,但只是在不同的维度中相关。你不能轻易地制作一张16万维的图,但事实证明,你可以用一千多个维度很好地代表一种语言,换句话说,一个每个词由一千个数字的列表代表的宇宙,当我不断地企图从心理上来想象这些多维图时,Le好意地为难我,他会以巴乐比式的直率和固执说, “Gideon,我一般不喜欢尝试在三维空间中想象一千维向量。”
然而事实证明,空间中的某些维度似乎代表了清晰的人类分类,如性别或相对大小。 如果你把一千位数字代表的“国王”真的减去代表“女王”的一千个数字,你得到的数值结果会和你从代表“男人”的数字减去代表“女人”的数字结果相同。至少在理论上,如果你用整个英语的空间和整个法语的空间,你可以训练一个网络学习如何用一个空间中的句子在另一个空间里找到对应的句子。你只需要给它一端输入数百万英语句子和另一端输出他们想要的对应法语,随着时间的推移,它会认识到字之间的相关模式,就如图像分类器识别像素中的相关模式一样。 你可以给它一个英语句子,并要求它预测最好的法语对应句子。
然而,字和像素之间的主要区别在于,图像中的所有像素同时存在,而词随着时间的推移出现。 你需要一种方式让网络“牢记”时间序列的进展,从第一个词到最后一个词的完整路径。 在大约一个星期的时间里,2014年9月,有三篇论文出版了,一篇是Le,另外两篇是加拿大和德国的学者。它们最终提供了做这项工作所需的所有理论工具。这项研究允许做开放式的项目,如谷歌大脑的Magenta,一个关于机器如何能够产生艺术和音乐的研究。 它也为工具任务如机器翻译扫除了障碍。 Hinton告诉我,他当时认为这项后续工作至少需要五年多时间.
伏击
Le的论文表明,神经翻译似乎是可能的,但他只使用了一个相对较小的公共数据集。 (对谷歌来说是小,实际上它是世界上最大的公共数据集。旧的谷歌翻译十年来已经收集了大约一百倍到一千倍的生产数据。)更重要的是,Le的模型对长于约七个字 的句子并不是很有效。
Mike Schuster,一位当时谷歌大脑的研究科学家,接过了接力棒。 他知道如果谷歌没有找到一种方法来将这些理论洞察扩展到生产水平,别人一定会。 接下来的两年他都在做这个项目。Schuster说,“一般人以为翻译东西只是用数据来运行实验就行了,其实根本不是这回事。”
Schuster是一个挺直,专注,看不出年龄的人,有晒得黑黑的活塞形头,窄肩,穿着膝盖下面收口的长迷彩军短裤和霓虹绿色耐克鞋。他看起来好像从莲座上醒来,伸手去拿他的小而无边的椭圆形眼镜,他吃的卡路里只有干橡子那么多,上班路上还会顺便完成一个轻松的沙漠十项运行; 在现实中,他告诉我,这不过是单程骑18英里的自行车。Schuster在前西德的高炉区杜伊斯堡长大,他研究电气工程,后来前往京都从事早期的神经网络工作。在20世纪90年代,他用一个像会议室那样大的神经网络机器进行实验; 花费了数百万美元,花好几个星期来训练它做一些现在台式电脑可以在不到一个小时做的事情。在1997年他发表了一篇论文,十年多年来都很少有人引用,但今年它就被引用了大约150次。他不是没有幽默感,但他经常带有一种严厉的表情,我觉得这是他的德国克制和日本克制的标志性组合。
Schuster必须处理的问题是头绪繁杂的。 首先,Le的代码是定制的,并且它与谷歌当时开发的新的开源机器学习平台TensorFlow不兼容。 Dean在2015年秋季向Schuster分派了另外两名工程师Wu Yonghui和Zhifeng Chen。他们花了两个月的时间在新系统上复制Le的结果。Le也在旁边,但即使他也不总能搞清楚他们所做的。
正如Schuster所说,“有些东西不是完全有意识来做的。 他们自己也不知道是怎么做出来的。”
今年二月,公司的一个松散部门,有大约一千名员工,致力于前瞻性和不可分类的工作的谷歌研究机构 在旧金山联合广场的威斯汀酒店开退休会, 这个豪华酒店略略不如一英里以东谷歌自己的旧金山东分部。 上午是几轮“闪电谈”,快速通报研究前沿进展,下午是松散的跨部门“协调讨论”,目的是希望为不可预测的,倾斜的 ,贝尔实验室式的交流提供一个场合,从而保持一个成熟的公司多产。
在午餐时间,Corrado和Dean一起去找谷歌翻译的主管Macduff Hughes。Hughes正在独自吃饭,两个谷歌大脑的成员各坐在他一侧。 正如Corrado所说,“我们伏击了他。”
“O.K.,” Corrado屏住呼吸制造效果,对疑虑的Hughes说,“我们要跟你说件事。”
他们告诉Hughes,2016年似乎是一个考虑用神经网络来对谷歌翻译进行改造的好时机。 谷歌翻译有上百工程师超过10年的代码。 旧系统工作的方式和过去30年所有机器翻译的方式一样:它把每个连续的句子隔绝成片段,在一个大的用统计导出的词汇表上查找这些词,然后用一组后处理规则来附加适当的结尾和重新排列让句子通顺。 这种方法被称为“基于短语的统计机器翻译”,因为在系统处理下一个短语时,它不知道上一个短语是什么。 这就是为什么谷歌翻译的输出有时看起来像一包摇散的冰箱磁铁。谷歌大脑的更新如果成功的话,它可以一次性阅读和组合整个句子。 它会捕获上下文和一些接近于意义的东西。
这个方案的风险似乎很低:谷歌翻译产生的利润很有限,而且会一直如此。 对于大多数英语用户来说,即使是对服务性能的大幅升级,也只会被认为是预期的改进,不会受到欢呼喝彩。 但他们觉得有必要以此来证明,人性化的机器翻译不仅在短期是必要的,而且从长远来看也可以被证明是有转型的意义。 在不久的将来,它对公司的业务战略至关重要。 谷歌估计,50%的互联网使用英语,大约世界人口的20%人口说英语。 如果谷歌要在中国或印度竞争,中国搜索引擎流量的大部分市场份额属于其竞争对手百度,良好的机器翻译将是它基础设施不可或缺的一部分。 百度本身已经于2015年7月发表了一篇关神经机器翻译可能性的开创性文章。
在更遥远的,可预测的未来,机器翻译可能是朝向一个以人类语言作为通用计算功能的第一步。 这将代表一个重要的也许是最关键的拐点:一个感觉像真正的人工智能的开发。
硅谷的大多数人都知道机器学习是一个快速临近的地平线,所以Hughes已经预见到了这个伏击。 他仍然有些怀疑。他是 一个温和的,健壮的中年男人,棕红色头发的头顶已经变灰色,Hughes看上去像一个典型的输电线工程师,就是那种七十年代波音公司设计台上工作的工匠。 他的牛仔裤口袋看起来经常装着鼓鼓的奇怪尺寸的工具,好像他正在移动尺子或热电偶。不像许多为他工作的年轻人,他的衣着没有公司的标记。 他知道多年来在谷歌和其他地方人们一直尝试在实验室里或是规模化生产上使神经翻译,但是都不成功。
Hughes听了他们的建议,最后谨慎地说,听起来好像他们也许可以在三年内把这个项目搞出来。
Dean的想法则完全不同。 “如果我们下定决心,我们可以在年底之前完成。”人们如此喜欢和钦佩Dean的一个原因是他一旦决定做一件事就能成功完成的长串记录。 另一个原因是,他在说 “如果我们下定决心” 这类真诚的话时从不觉得尴尬。
Hughes肯定这个谈话不会那么快发生,但他自己并不介意。“让我们准备2016年,”他回来告诉他的团队。“我不会成为那个说Jeff Dean不能提交速度的人。”
一个月后,他们终于能够运行一个并行实验来比较Schuster的新系统和Hughes的旧系统。 Schuster想用它来做英语 - 法语的翻译,但Hughes建议他尝试别的东西。 “英语 - 法语,”他说,“已经很不错了,这样的改进不会很明显。”
这是Schuster无法抗拒这个挑战。 评估机器翻译的基准度量称为BLEU分数,其将机器翻译与许多可靠的人类翻译的平均值进行比较。 当时,英语 - 法语的最佳BLEU分数在20多。 一个点的改进就被认为非常好了; 两个点的改进就是超群了。
然而神经系统在英语 - 法语上显示出了对旧系统七个点的改进。
Hughes告诉Schuster的团队,在过去四年里,他们在自己的系统中都没有达到这样强劲的改进。
为了确保这不是一个侥幸的指标,他们让他们的合同工做了一个并行的比较。 用户观感评分中样本句子被按从0到6来评分,显示了平均改善0.4, 大致相当于旧系统在其整个生命周期的总增益。
3月中旬,Hughes给他的团队发了一封电子邮件。 旧系统上的所有项目都将立即停工。
理论成为产品
在那之前,神经翻译团队只有三个人,Schuster,Wu和Chen。 但随着Hughes的支持,更大的团队开始合并。 他们星期三下午2点在Schuster的带领下在谷歌大脑楼的一个名为Quartz Lake的角落房间开会。 会议一般有十几人轮流参加。 当Hughes或Corrado在那里时,他们通常是唯一的母语为英语的人。 工程师们讲中文,越南语,波兰语,俄语,阿拉伯语,德语和日语,但是他们大多用他们高效的术语和数学。 在谷歌通常不是特别清楚谁在主持会议,但Schuster在场的时候,就没有任何歧义。
即使是那时他们也不是完全清楚需要采取的步骤。“这个故事很多是关于不确定性的, 整个过程中的不确定性。”Schuster有一次告诉我。 “软件,数据,硬件,人。”他伸出他长而纤细的手臂,从他狭窄的肩膀轻轻弯曲在肘部 ,“这就像在一个大泥海里游泳,你只能看到这远。”他伸出手停在胸前8英寸的地方,“有目标,或许它就在那里。”
大多数谷歌的会议室都配有视频聊天显示器,当闲置时,会显示极高分辨率,色彩丰富的Google+公开照片,包括风景,北极光或德国国会大厦。Schuster指着其中的一个显示器,是华盛顿纪念碑水晶般平静的夜景。
“从外面看,每个人都有双筒望远镜,可以看到前方这么远。”
从理论研究到他们今天这个程度可以说是殚精竭力了,学院科学家可能觉得这不过是“纯粹的” 的工程部分,但试图把理论变成一个可行的产品其实也不容易。首先,他们需要确保他们在良好的数据上进行培训。 谷歌的数十亿字的训练“阅读”主要是由中等复杂性的完整句子组成,就像你可能在海明威书中看到的那样。其中一些是在公共领域:统计机器翻译项目Rosetta Stone有数百万页完整的的加拿大议会双语原始记录。然而其中的大部分是历时10年的数据收集,包括热心的人类众筹翻译中挑出来的。开发团队存储了大约9700万个独特的英语“单词”。但是一旦他们删除了表情符号,拼写错误和冗余,他们的工作词汇只有大约16万。
然后你不得不重新关注用户实际想要翻译的内容,这通常与它所使用的语言无关。谷歌发现很多人不需要翻译完全,复杂句子的服务; 他们翻译奇怪的语言小碎片。 如果您希望网络能够处理用户查询流,你必须确保它走这个方向。 网络对其训练的数据非常敏感。 正如Hughes有一次对我解释的:“神经翻译系统正在学习一切。 这就像一个孩子。‘哦,爸爸说那句话的时候很生气!’”他笑了,“你必须要小心。”
但最要紧的是他们需要确保整个改造快速而可靠,让他们的用户不会察觉到。 在2月时,翻译10个字的句子需要10秒钟。 他们永远不会引入这么慢的东西。 翻译团队开始对一小部分用户进行延迟实验,以假的延迟形式来发现用户的忍耐程度。 他们发现,需要两倍的时间,甚至五倍的时间的翻译都不会被用户注意到。 但是八倍的减速会引起注意。 他们不需要确认所有语言都是这样的。 在高流量语言(如法语或中文)的情况下,他们几乎注意不到速度的减慢。 对于更稀有的语言,他们知道如果用户获得更好的质量,他们不会害怕轻微的延迟。 他们只是想防止人们放弃和转换到竞争对手的服务。
对Schuster而言,他承认他不知道是否能够使谷歌翻译足够快。 他记得在公共厨房和陈的一次谈话,他转向陈说,“肯定有一些能使它足够快的办法,但我不知道它可能是什么。”
其实他知道,他们需要更多的计算机“G.P.U.s”图形处理器,重新配置在神经网络上来做数据训练。
Hughes去Schuster那里问他怎么想。“我们是不是应该要求一千个G.P.U.s?”
Schuster说,“为什么不要2,000?”
十天后,他们增加了2,000个处理器。
到4月份,原来的三人阵容已经超过了30人,其中一些人,如Le,来自谷歌大脑,许多人从谷歌翻译过来。 5月,Hughes为每对语言配置了一个临时主人,他们都将自己的结果放进一个大型共享的绩效评估表。 在任何给定的时间,至少有20个人正在进行他们自己独立的一周实验,并处理任何意外问题的出现。 有一天,一个模型没有明显的理由开始把句子里所有的数字都扔掉了。 有几个月它都只是点到即止。 “人们几乎大喊大叫了,”Schuster说。
到晚春,各个部分开始成形。 该团队引入了一个名为“词条模型”,一个“覆盖率惩罚”,“长度正常化”的东西。每个部分的结果都有可能几个百分点的改进,Schuster说,但总的来说效果是明显的。 一旦模型标准化,作为一个多语言模型将随着时间的推移而改进,而不是目前谷歌翻译使用的150种不同模型。一个通过学习机器为更大通用化而建立的工具。自动化的过程需要非凡的,统筹的人类聪明才智和努力,这个悖论没有失去意义。 他们做的很多只是直觉。 你在每层用多少神经元? 1,024或512? 设多少层? 每次运行用了多少句子? 你训练了多久了?
“我们做了数百次实验,”Schuster告诉我,“直到我们知道我们可以在一个星期后停止训练。你总是问自己:我们什么时候停下来?我怎么知道我完成了?你永远不知道你做完了。机器学习机制从来不是完美的。你需要训练,但在某些时候你必须停止。这是整个系统非常痛苦的本质。对一些人来说很难。有一点像艺术, 就像你用画笔让它更好看。这是从做的过程中来的。有些人会做的不错,有些会做的更糟。”
到5月份,谷歌大脑团队了解到,他们唯一能够使系统能够快速运作变成产品的唯一方法是在T.P.U.s上运行,这是Dean所要求的专用芯片。正如Chen所说:“我们甚至不知道代码是否能工作。但是我们知道没有T.P.U.s肯定不行。”他记得在和Dean面对面开会时请求,“请为我们保留一些处理器。” Dean保留了。然而T.P.U.s一开始不能正常工作。Wu花了两个月时间坐在硬件团队的人旁边,试图找出原因。他们不只是调试模型; 他们也在调试芯片。神经翻译项目将成为整个基础设施投资的概念项目。
6月的一个星期三,在Quartz Lake的一个会议开始时大家在悄悄谈论一篇百度的论文,最近刚出现在学科的首席在线论坛上。Schuster给房间带来了秩序。 “是的,百度出了一篇论文。感觉就像有人从肩膀后面看我们, 类似的架构,类似的结果。” 百度的BLEU分数基本上是谷歌在2月和3月的内部测试中取得的成绩。 Le似乎没有给搅扰到。他的结论是这似乎是证明谷歌走在正确轨道上的一个记号。 “这与我们的系统非常相似,”他安静地同意。
谷歌团队知道他们应该早点发布他们的结果,也许打败他们的竞争对手,但正如Schuster所说:“发布比发表更重要。人们说,‘哦,我第一个做成了一件事,’但最终谁会在意?”
然而,这确实使他们明确地认识到要更快更好地推出自己的服务。Hughes有一个幻想,他们甚至不会通知他们的用户切换的发生。他们只是等着看社交媒体是否会对这些巨大的改进产生怀疑而热闹起来。
“我们还不想说这是一个新的系统,”他在劳动节后两天下午5:36告诉我,这是他们没有告诉任何人,向10%的用户推出中英文前的一分钟。 “我们想确保它的运转。最理想是它在Twitter炸开锅了:“你注意到谷歌翻译现在有多棒了吗?”
庆功
在无四季的硅谷,两个唯一可靠的时间测量方法是公共厨房里季节性水果的轮换,从仲夏的李子到早秋的亚洲梨和柿子,以及曲折的技术进步。在9月下旬一个很热的星期一下午,谷歌团队的论文终于发表了。它有几近滑稽的31位作者。第二天,谷歌大脑和翻译部的成员聚集在一起,在翻译部的公共厨房为自己举行一个庆功会。 谷歌大脑大楼的房间,可能是为了纪念他们流离的漫长冬天,全以阿拉斯加的地名命名; 翻译部大楼的主题是夏威夷。
夏威夷公共厨房的一面墙上有一幅轻微颗粒状的海滩照片,一个小花环茅草服务柜台小屋,柜台中间有一只毛绒鹦鹉,天花板上挂着类似纸灯笼的装置。两排稀疏的竹筒排在两侧,像一个防守松弛的热带堡垒前哨。竹筒后面,玻璃墙和门通向两侧两排相同的灰色办公桌。那天早上,纪念谷歌翻译成立10年的新连帽运动衫来了,许多团队成员换上了衣服从他们的办公室来参加聚会。他们的庆祝一部分是为翻译十年来的团队合作在那一天走向了退休。在另一个机构,这些新的连帽衫可能成了丧服,但两个团队的工程师和计算机科学家都似乎很开心。
谷歌的神经翻译终于工作了。到聚会时,公司的汉英测试已经处理了1800万条查询。一个翻译团队的工程师正拿着手机跑来跑去,试图用百度把整个句子从中文翻译成英语。他兴高采烈地向任何愿意听他的人说, “如果你一次输入两个以上的字符,它会超时!”(百度说,这个问题从来没有被用户报告过。)
在接下来的几个星期里消息传开,谷歌已经引入神经翻译中文到英语,有些人推测,这是因为这是公司唯一的花了努力的语言。每个参加了聚会的人都知道他们的成就在11月将一目了然。然而到那时,他们中的许多人将进入其他项目。
Hughes清了清嗓子,走到了蒂基酒吧前。他穿着一件褪色的绿色马球衫,衣领皱巴巴的,中间是淡淡的图案和汗水干后的黑色条纹。他们最后一刻遇到了问题,然后最后一分钟又遇到了问题,包括在论文上一个非常大的测量误差和一个奇怪的标点符号系统中的错误。但一切都解决了,至少那一刻基本解决了。客人安静下来。Hughes主持了高效率和富有成效的会议,对于打岔或窃窃私语极少容忍,但这个场合的重要性让他停顿了片刻。他承认他可能夸大了一个比喻,但重要的是他要强调这个事实,神经翻译项目本身代表了一种“使用不同语言的团体之间的合作”。
他继续说,他们的神经翻译项目代表了一个“向前的阶跃函数”,即一个不连续的进步,一个垂直的飞跃,而不是一个光滑的曲线。相关的翻译不只是在两个团队之间,而是从理论到现实。他举起一个看起来很贵的塑料笛子的香槟。
他说,“为交流,为合作!”
工程师们聚集在一起互相看着,给自己一点小小的迟疑的欢呼和掌声。
Jeff Dean与Corrado和Schuster站在公共厨房的中心附近,他的手在他的口袋里,肩膀稍微向内弯。 Dean看到有一些人希望他为这个场合说几句,他以特有的低调做了一个轻快简洁的补充。
Dean说,他们所展示的是他们可以同时做两件大事:“做研究,然后把它推广到,我不知道,5亿人面前。”
每个人都笑了,不是因为它是一个夸张,而是因为它不是。