友谊使Google变得如此庞大

Jeff Dean和Sanjay Gemavat在同一台计算机上一起编程,从而改变了公司的发展方向以及整个互联网。 如图所示:最好的Google程序员有时似乎是同一大脑的两个半球。 大卫·普兰克特(David Plankert)绘制

2000年3月的一天,六位Google最好的工程师聚集在一个即席会议室。 发生紧急情况:自1999年10月起,履带便停了下来。 尽管仍为用户提供搜索结果,但它们已经过时五个月了。 所面临的风险比工程师预期的要多。 目前,拉里·佩奇(Larry Page)和谢尔盖·布林(Sergey Brin)正在就向最大的互联网门户网站雅虎(Yahoo)交付Google搜索进行谈判,并承诺将搜索索引增加十倍,以跟上互联网的规模,后者是上一年的两倍。 如果不对履带进行维修,google.com将被困在过去,与雅虎的交易可能会失败,并且该公司有可能烧毁其投资并被遗忘。

在楼梯旁的会议室中,工程师在门架上铺设了门,搭建了临时桌子,并安装了计算机。 在远处的墙上坐着一个悲伤的克雷格·西尔弗斯坦(Craig Silverstein):一个27岁的瘦弱青年,嗓音细腻。 克雷格(Craig)是Google的第一位员工:他的主要办公室位于布林(Brin)的客厅时,他加入了公司,他亲自重写了大多数创始人的代码。 经过四天四夜的工作,他们与罗马尼亚的系统工程师Bogdan Kokosel并没有取得任何成就:“所进行的测试均没有任何意义,” Silverstein回忆说。 “什么都没有,我们也不知道为什么。”

Silverstein几乎没有注意到Sanjay Gemavat,这位33岁的中等黑发女人,麻省理工学院的毕业生,眉毛浓密,眉毛白皙。 几个月前,即12月,Sanjaya被聘用。 他追随他的同事,那是细长而充满活力的三十岁的Digital Equipment Corporation的Jeff Dean。 杰夫(Jeff)在桑杰(Sanjay)前十个月离开DEC。 他们非常友好,喜欢一起编写代码。 在“作战室”,杰夫将椅子拉到桑杰的桌子上,空着。 桑杰(Sanjay)敲打键盘,杰夫(Jeff)坐在他旁边,纠正和命令,就像新闻播音员的耳机制作人一样。

Jeff和Sanjay开始研究停滞的指数。 他们发现其中缺少一些单词:他们输入了一个查询[邮箱],但未收到结果,而其他单词则被乱序列出。 几天来,他们一直在寻找错误,并陷入代码的逻辑中。 我们逐节检查了所有内容。 没有错误。

程序员有时会将他们的程序呈现为一个层结构,该层结构从用户界面延伸到更基础的层。 在此结构的底部,软件遇到了铁:从柏拉图式代码抽象到电和硅的物理性质的这种下降。 在工作的第五天,杰夫(Jeff)和桑杰(Sanjay)开始怀疑问题出在代码的逻辑上,而不是逻辑上的原因。 他们将索引文件转换为二进制文件。 他们想看看他们看到的汽车。

Sanjay的监视器上出现一列带有零和一的粗列,每一行代表一个索引词。 Sanjay指出:0代替1。当Jeff和Sanjay收集所有失真的单词时,他们看到了一个模式:每个单词都出现相同的故障。 损坏服务器上的内存芯片。

桑杰看着杰夫。 几个月来,Google经历了越来越多的硬件故障。 问题在于,随着Google的发展,计算基础架构也随之扩展。 除非您拥有大量计算机,否则计算机设备很少会崩溃-然后它们会不断崩溃。 电线磨损,硬盘破裂,主板过热。 许多汽车立即失效; 其他人开始工作得更慢。 奇怪的自然因素开始起作用。 在太空中的超新星爆炸中,爆炸波会产生向各个方向散射的高能粒子:科学家认为,宇宙射线的一个粒子进入地球上的计算机芯片并以0变为1的可能性不为零。在NASA上,金融公司等使用的专用设备可以防止位“翻转”。 但是Google仍然是一家初创公司,并购买了没有这种保护的廉价计算机。 公司已经到了拐点。 计算集群的规模已经扩大到甚至不可能发生的硬件故障也不可避免的程度。

Jeff和Sanjay一起编写了代码,以补偿损坏的系统上的故障。 很快建立了新的索引-紧急情况得到成功解决。 西尔弗斯坦感到困惑。 他真正地调试了代码,但是这里的答案隐藏在硬件级别。 杰夫和桑杰更深入了。

在三月惨败之前,谷歌系统使用了公司创始人在斯坦福大学研究生院编写的代码。 佩奇和布林不是专业程序员。 他们是进行搜索技术实验的科学家。 爬行器掉落时,除了短语“哇,马!”以外,他没有显示任何诊断信息。

由Page和Brin编写的BigFiles系统最初是由公司的第一批员工开玩笑地称为BugFiles。 极其重要的索引过程花了几天的时间,如果我遇到问题,则从头开始。 这是一个完全不可扩展的系统。

我们说我们是在Internet上搜索,但实际上并非如此:我们在搜索公司的服务器上使用搜索索引。 当Google在1996年仍称为BackRub时,整个索引都放在了Page宿舍房间中安装的计算机上。 在2000年3月,没有一台超级计算机可以处理它。 Google的唯一出路是购买普通计算机并将其添加到巨型群集中。 由于传统计算机的一半成本是Google认为的“垃圾”-磁盘驱动器,金属外壳-该公司仅订购裸露的主板和硬盘驱动器-并将它们连接起来。 到那时,谷歌已经将1500台这样的自制服务器连接到位于加州圣塔克拉拉的一座两米长的机架中。 由于硬件故障,在任何给定时间只能工作1200次,故障出乎意料地发生并且继续破坏系统。 为了生存,Google需要将计算机集成到一个可行的容错生物中。

Jeff和Sanjay夫妇接手了这项工作。 曾在Apple设计Macintosh的韦恩·罗辛(Wayne Rosing)于2000年11月加入Google,聚集了由一百名工程师组成的团队。 他们每周工作90个小时,因此编写了代码,这样就不会因单个HDD故障而中断系统。 他们在Web遍历过程中添加了断点,以便爬网从故障点而不是从一开始就重新开始。 通过开发新的编码和压缩方案,它们实际上使系统的功能增加了一倍。 它们是无可挑剔的优化器。 例如,Google将最常用的数据移到HDD板的外部,那里的磁盘旋转速度更高,因此信息的读写速度也更高,而板的内部区域则留空。 Jeff和Sanjay使用此空间来存储常规搜索查询的预处理数据。 在2001年的四天内,他们证明Google索引可以存储在快速RAM中,而不是慢速HDD中。 这一发现完全改变了公司的经济。 佩奇和布林知道人群会涌向立即响应的服务。 问题在于速度需要处理能力,而处理能力却要花钱。 Jeff和Sanjay使用软件优化设法挤进了人们的视线。

罗斯在2005年离开后,艾伦·尤斯塔斯(Alan Eustace)领导了工程团队。 “矛盾的是,要解决大规模任务,您需要知道最小的细节,”尤斯塔斯说。 Jeff和Sanjay从一点角度了解该系统。 杰夫分发了“每个程序员应该知道的延迟率”的清单。 实际上,这是一个几乎没有程序员考虑的数字列表,但是这些数字实际上是Jeff和Sanjay的大脑:例如,从L1缓存调用需要0.5 ns的时间,或者从内存中顺序读取一兆字节需要250μs的时间。 经过一系列关键的软件优化后,Google系统的功能按数量级扩展。 同时,技术人员开始按照软件生成的有关更换硬盘驱动器,电源和内存模块的说明,在庞大的数据中心中走弯路。 即使零件磨损并发生故障,系统也可以蓬勃发展。

如今,Google的工程师已经建立了一个统一的分类系统,该系统始于第1级,即技术支持。 2级-大学毕业生。 3级员工通常具有硕士学位。 达到第4级需要花费几年时间或需要博士学位。 大多数员工的职业生涯停在5级。6级工程师是员工中最好的10%,他们是如此有才华,项目的成功取决于他们。 具有良好记录的6级员工被授予7级。 第8层首席工程师负责特定产品或基础架构的某些部分。 杰出的9级工程师受到尊重。 Google院士(第10级)的头衔终身授予该领域中通常处于世界领先地位的专家。 Jeff和Sanjay是Google高级研究员,是第一位也是唯一的11级员工。

Google校园位于高速公路旁,距离山景城中心仅数分钟路程,是一排排矮矮的,吸引人的带有着色窗口的建筑物。 在2017年夏季的一个星期一早上,经过一个上午的配对会议之后,杰夫和桑杰(Jeff和Sanjay)在校园自助餐厅Big Table吃午餐,该餐厅以他们在2005年帮助开发的将无数台计算机组合成一个虚拟设备的系统命名。 高高而瘦弱的Sanjay穿着一件古老的勃艮第Henley衬衫,灰色的裤子和小铁丝眼镜,在露台上寻找桌子并迅速将其占用,打开了一把雨伞,蹲在阴凉处。 在太阳附近,他为杰夫(Jeff)摆放了另一把椅子,他在一分钟后到达,他是一个穿着短袖衬衫和时尚运动鞋的宽肩运动男子。

像恋人一样,杰夫(Jeff)和桑杰(Sanjay)一起讲故事,对大场面进行补充。 他们开始回忆他们的第一个项目。

“我们都是用手写的东西,”桑杰伊说。 他的眼镜在阳光下变黑了。 “有必要重写代码,然后突然之间:“哦,看起来就像我们上个月写的一样。”

杰夫补充说:“或者我们索引数据中的段落略有不同。”

“还是有些不同,”桑杰说。 “所以我们发现了……”

杰夫说:“这就是重点。”

“ ...这是一种普遍的模式,”桑杰伊总结了他的想法。

杰夫咬了一口比萨饼。 他有水手的手指,顽皮而僵硬。 与他相比,桑杰看上去很温柔。 他想知道他们如何开始练习结对编程:“我什至不知道我们如何决定会更好。”

“我们是在Google之前做到这一点的,”杰夫说。

“但是我不知道为什么我们决定最好有一台计算机而不是两台计算机,”桑杰说。

杰夫说:“我的DEC离他的实验室只有两个街区。” -他们之间是冰淇淋店。

-这是冰淇淋店! -桑杰很高兴。

Single Sanjay与Jeff,两个女儿和妻子Heidi一起度假。 杰夫的女儿叫他桑杰叔叔,其中五个经常在星期五吃晚饭。 杰夫的长女桑杰(Sanjay)和维多利亚(Victoria)开始烘烤。 “我看到它们在成长,”桑杰自豪地说道。 在2004年Google首次公开募股之后,他们搬到了相距六公里的新家。 桑杰(Sanjay)住在老山景城(Old Mountain View)的一栋三居室小房子里,而杰夫(Jeff)则在帕洛阿尔托(Palo Alto)中心附近设计了自己的房子,并在地下室设置了蹦床。 在房子上工作时,他发现自己喜欢设计空间,但是对耐心的建筑细节感到耐心,因为这些细节被称为“桑杰风格”,例如横梁细节,固定装置,负载平衡,这些都妨碍了出色的设计崩溃。

“我不知道为什么其他人不能那样工作,”桑杰伊谈到结对编程时说道。

杰夫说:“我们需要找到一种与您兼容的合作伙伴,以使您彼此互补。”

他们从桌子上站起来,去寻找软冰淇淋,沿着大桌子在热闹的Google员工中漫步。 当他们走路时,杰夫概述了他的软冰淇淋策略:“我在旋转它。 我认为这种方法增加了稳定性,”他说。 Sanjay满意且有目的,将巧克力-香草混合物倒入他的玻璃杯中。

在2001年出版的《合作的圈子:友谊与创造力的动态》一书中,社会学家迈克尔·法雷尔(Michael P. Farrell)探索了近距离的创作群体:法国印象派画家西格蒙德·弗洛伊德(Sigmund Freud)和他的同时代人。 他写道:“为整个新愿景奠定基础的大多数脆弱想法不会出现在整个团队在一起时,不是每个人单独工作时,而是当他们成对合作并互动时。” 莫奈和雷诺阿在1869年夏天并肩工作。 他们创造了一种风格,成为印象派。 经过长达六年的合作,立体派诞生了,毕加索(Pablo Picasso)和布拉克斯(Georges Braque)经常只在画布的背面签名,以使工作完成的事实相互掩饰(“直到双方都觉得这件工作才完成,”毕加索后来回忆道)。 在《双重力量:在创意夫妻中寻求创新的本质》一书中作家约书亚·沃尔夫·申克(Joshua Wolf Schenck)引用了1971年的一次采访,约翰·列侬说他或保罗·麦卡尼(Paul McCartney)写下了一些简短的注释,例如“我今天读新闻”或这样的事情。 列侬说:“我们中的一个人被困住了,直到另一个人来了,我会唱歌一半,他受到启发写了另一部分,反之亦然。” 任何人都可以陷入创造性的僵局,但几乎不能同时两个人。

在新科学或艺术的“理论构建”阶段,重要的是要扩大视野,而不会陷入僵局。 弗朗索瓦·雅各布(Francois Jacob)与雅克·莫诺(Jacques Monod)一起在基因调节功能的研究方面取得了突破,他指出,到20世纪中叶,分子生物学领域中的大多数研究都是成对进行的:``总的来说,发明理论和建立模型比一个容易。 -当两个人解决一个问题时,想法出现的频率更高且更快。 他们从一个伙伴跳到另一个伙伴。 他们像树上的树枝一样扭曲在一起。 错误的幻想被扼杀在萌芽状态。” 在过去的35年中,大约有一半的诺贝尔生理学和医学奖授予了成对的科学家。

经过多年的合作,伴侣有时会像双胞胎一样发展自己的语言。 他们在习惯和衣着上互相模仿,具有共同的幽默感。 评估每个协作的具体贡献变得不可能。 但是在软件开发中很少发现这种紧密的伙伴关系。 尽管开发人员有时会谈论“成对编程”,但是当两个程序员共享一台计算机,一个在“轮子后面”而另一个在“导航器”上时,它们通常只代表一种工作关系,就像飞机上的飞行员一样。 相反,Jeff和Sanjay有时似乎是同一大脑的两个半球。 在他们最著名的科学论文中,最多列出了十二个合作者。 然而,他们的经理之一比尔·科克伦回忆说:“他们是如此多产,如此高效,以至于我们经常围绕他们建立团队。”

1966年,来自系统开发公司的研究人员发现,最好的程序员的效率比最差的程序员高十倍以上。 从那以后,关于所谓的“ 10倍程序员”的存在引起了争议。 这个想法强调个性,而大型软件项目是由团队创建的。 在编程中,孤立地取得的成就很少。 具有讽刺意味的是,许多程序员将Jeff和Sanjay合作的结果视为存在10倍程序员的证明。

杰夫(1968年)生于夏威夷。 他的父亲安迪(Andy)是热带病的探险家。 弗吉尼亚·李(Virginia Lee)的母亲是一位医学人类学家,使用六种语言。 为了好玩,父亲和儿子从IMSAI 8080套件中组装了一台计算机,他们焊接零件,研究每个零件。

杰夫和他的父母经常搬家。 13岁那年,他错过了八年级的最后三个月来帮助他们在索马里西部的一个难民营中。 在高中时,他开始为流行病学家编写名为Epi Info的数据收集程序。它已成为研究人员的标准工具,已翻译成数十种语言并售出了数十万本(在疾病控制与预防中心的网站上发布了Jeff毕业时的照片)。杰夫(Jeff)在明尼苏达大学学院(University of Minnesota College)遇见的海蒂(Heidi)仅在几年后就了解了该计划的重要性。她说:“他没有吹牛那样的东西。” “一切都必须从他身上撤出。”他们的第一次约会是在女子篮球比赛中,杰夫穿着地鼠的服装招待了观众。

Jeff的博士学位论文着重于编译器。 “编译器本身非常无聊,” Alan Eustace说,但另一方面,“这是一个非常低的级别,与硬件接近。”在描述Jeff时,Sanjay在他的太阳穴上旋转了一根手指:“在编写代码时,脑袋中会形成某种模型。该代码的性能如何?他几乎自动计算出所有边界情况。”

Sanjay十七岁进入康奈尔大学时首先坐在一台计算机上。他于1966年出生于印第安纳州的西拉斐特,但在印度北部的工业城市科塔长大。他的父亲Mahipal是植物学教授; Shant的母亲照顾了Sanjay及其两个哥哥和姐姐。一家人喜欢看书:他的叔叔Ashok Meta记得他是如何孩子们购买“杰克节”的。弗雷德里克·福赛斯(Frederick Forsyth)的书本被撕破了,孩子们一起读了一本破烂的书,做完这些书后就互相传了一页。桑杰(Sanjay)的兄弟潘卡(Pankaj)成为有史以来最年轻的老师,在哈佛商学院获得职位(他现在是纽约大学的教授)。潘卡(Pankaj)和桑杰(Sanjay)在同一所学校学习,并被称为文艺复兴时期的人物:“我有点活在我哥哥的阴影下,”桑杰说。成年后,他保持了这种谦虚。 2016年,当他被介绍给美国艺术与科学研究院时,他甚至没有告诉父母。他们从邻居那里得知消息。

在MIT研究生院,Sanjay交了朋友。但是,他从未在那里见过女孩,现在他“非常,很少见”。他说,他并没有拒绝成立家庭,只是那件事发生了。他的密友学会了不要为此而打扰,他的父母很早就意识到他的儿子将继续保持单身汉的身份。也许是因为它是如此封闭,围绕Sanjay的Google逐渐形成了保密的光环。他被认为是一位安静而又扎实的工程师-一位思想深刻,头脑清晰的工程师。在桌子上,他拥有一堆整齐的Mead笔记本,将近二十年,里面充斥着整洁的列表和图表。他仍然用手做笔记:他说这有助于思考。在麻省理工学院,他的主管是有影响力的计算机科学家Barbara Liskov,研究了包括复杂代码库的管理。在她看来,最好的代码就像好的文学作品。它应该具有经过深思熟虑的结构,每个词都应该起作用。这种编程需要读者的同情。并且代码不仅被认为是达到目的的手段,而且本身也被视为有价值的工件。 “我认为他设计的系统最好,”克雷格·西尔弗斯坦(Craig Silverstein)说。 “只看它的代码:它就像艺术品一样美丽,就像比例完美的雕塑。”“我认为他设计的系统最好,”克雷格·西尔弗斯坦(Craig Silverstein)说。 “只看它的代码:它就像艺术品一样美丽,就像比例完美的雕塑。”“我认为他设计的系统最好,”克雷格·西尔弗斯坦(Craig Silverstein)说。 “只看它的代码:它就像艺术品一样美丽,就像比例完美的雕塑。”

在Google,杰夫更出名了。他们像查克·诺里斯(Chuck Norris)一样为他创造模因。(“查克·诺里斯(Chuck Norris)数了两次广告无限次数;”“杰夫·迪恩(Jeff Dean)的简历总结了他没有做的事情:太短了”)。

“ Jeff Dean开发程序时,他首先创建一个二进制文件,然后将源代码编写为文档。”

“杰夫·迪恩(Jeff Dean)一次未能通过图灵测试,因为他在不到一秒钟的时间内正确设置了第203个斐波那契数。”

“从2002年开始,当搜索后端断开连接时,Jeff Dean手动回答了两个小时的用户问题。在此期间,搜索结果的质量得到了显着提高。.


“ Google的Jeff Dean-这就是我们时代的Chuck Norris”一文开始 -大约 反式

但是对于同时认识这两个人的人来说,桑杰的才能与他相等。 他们的长期同事威尔逊·西(Wilson Sie)说:“杰夫擅长提出荒诞的新想法和原型。” “桑杰以他的良心为基础。” 在生活中,杰夫更善于交际,桑杰更内向。 代码是相反的。 Jeff的编程令人眼花:乱:他可以快速提供令人震惊的想法,但是随着他如此迅速地取得灵感,他可以将读者抛在后面。 Sanjaya代码更容易理解。

Silverstein解释说:“有些人写的代码太稀疏了。” 一个屏幕上的信息很少。 我必须来回滚动才能理解。” 还有一些人写的代码太密集:“你看着它,然后想:”哇。 我不想理解这一点。” Sanjay设法找到了平衡点。 您看一下它的代码并认为:“好吧,我能理解它”,但一页上仍然有很多信息。” Silverstein继续说道:“每当我想为Sanjay的代码添加新功能时,他似乎都可以预见。 我感觉像Salieri。 我看到了伟大,但是我不明白这是怎么可能的。”

今年春天的星期一早上,杰夫(Jeff)和桑杰(Sanjay)站在40号楼的小厨房里,那里是Google大多数AI部门的所在地。 它们的后面是一块充满矩阵代数公式的黑板;桌子上有一篇关于没有老师的竞争网络的文章。 穿着褪色T恤和牛仔裤的杰夫(Jeff)看起来像是流浪汉,他已经采取了纠正措施。 Sanjay穿着毛衣和灰色长裤。 明亮的窗户后面是高大的松树,在它们后面是一片田野。 Jeff在Google到处工作的所有地方,他们总是会放上浓缩咖啡机。 厨房桌子上的La Marzocco米级蜂鸣器。 “我们快迟到了,”桑杰(Sanjay)看着咖啡研磨机。 上午8:32

一杯卡布奇诺咖啡后,他们去了电脑。 杰夫从肮脏的桌子上滚下椅子,到桑杰的一尘不染的桌子上。 他把脚放在床头柜上,向后倾斜,桑杰(Sanjay)研究银幕时。 打开四个窗口:左侧-浏览器和用于启动分析工具的终端; 右侧是Emacs文本编辑器中的两个文档:一个在记事本中有一个待办事项列表,另一个则用彩色代码填充。 Sanjay的一个笔记本电脑位于计算机旁边。

-好的,我们在做什么? -问桑杰。

杰夫说:“我认为我们已经分析了TensorFlow Lite代码的大小。”

这是一个新的大型机器学习项目:Jeff和Sanjay担心代码库过大。 像文学编辑一样,他们正在寻找减少音量的方法。 为此,他们创建了一个新工具,该工具本身需要进行优化。

“我试图弄清楚它有多慢,”桑杰说。

“非常慢,”杰夫俯身,仍然放松。

桑杰说:“这是一百二十字节,大约需要八秒钟。”

“十二万个堆栈调用,而不是千字节。”

“好吧,大约数千字节的文本……。”

-哦,对不起。

“我不知道要为单位的大小选择哪个阈值,”桑杰说。 -半兆?

“似乎还可以,”杰夫同意。 Sanjay开始敲键盘,Jeff紧贴屏幕。 “因此,您写道,如果超出指定范围,我们会选择...”他停了下来; Sanjay用代码回答了这个问题。

Sanjay开车时,他把手放在10​​和2上,仔细地向前看。 键盘背后的相同纪律。 双腿与肩同宽,笔直向后,好像他在做姿势。 细细的手指在琴键周围轻轻滑动。 第一批程序员开始到达办公室。

很快,他们达到了一个小里程碑,桑杰(Sanjay)招募了一个团队进行测试。 他看上去精疲力尽,检查了邮件。 测试已完成。 他没有注意到。

-嘿! -杰夫ped了指头,指着屏幕。 尽管在交谈中他被开玩笑和双关,但在与Sanjay一起使用计算机时,他可以变得自信,粗鲁和不赞成。 Sanjay认为这是理所当然的。 当杰夫看起来动作太快时,他从键盘上举起手并张开手指,好像在说:“停下来。” 这是一次最相似的争端:二十年来,他们不记得何时发表自己的声音。

Sanjay滚动页面,屏幕上出现了新的代码段。

“你可以以此为例,对吗?” 杰夫问。

-嗯...

杰夫ed开了指关节。

-好像有可能。 会吗?

桑杰被围栏了:

-不,我...

“那么,忽略这个问题吗?” -杰夫愤慨地问。

“不,我是说,我们只是想弄清楚发生了什么。” 为此做笔记吧?

“很好。” Jeff显然心情很好。 他们一起开了纸条。

午餐快到了。 他们工作了两个小时,休息了十分钟,大部分时间都在说话(初级的看着他们的人印象深刻的是他们从未停止过并且没有被困住)。 标准的工程实践是提交审阅代码,但是Jeff和Sanjay通过标记lgtm跳过了这一步(对我来说看起来不错)。 从某种意义上说,他们忙于小事。 但是,它们的代码在Google规模上运行。 他们关心的千字节和微秒数遍及全球的数据中心中数十亿次—巨大,嘈杂的数据中心中,无数的服务器机架被水箱冷却。 众所周知,在这样的日子里,杰夫回到家并告诉他的女儿们:“今天,桑杰和我已经将Google的搜索速度提高了10%。”

2003年,四个月内,杰夫(Jeff)和桑杰(Sanjay)进行了Google历史上最大的一次更新。 他们使用MapReduce软件做到了这一点。 当他们第三次重写爬虫程序和索引器Google时,这个想法就出现了。 他们意识到,每次解决一个重要问题时:分别在大量地理位置分散且不可靠的计算机中协调工作。 如果概括解决方案,那么问题将永远得到解决。 这将带来一种工具,Google上的任何程序员都可以使用该工具来控制数据中心中的机器,就像它们都是一台行星般大小的计算机一样。

杰夫(Jeff)和桑杰(Sanjay)在一个俯瞰鸭塘的角落办公室里画了MapReduce。 这个工具永远简化了一个惊人的复杂过程。 以前,每个程序员都必须独立思考如何共享和分发数据,分配工作并考虑硬件故障。 MapReduce提供了解决这些问题的结构化方法。 当厨师在开始烹饪之前准备好食材时,MapReduce会将任务分为两个阶段。 首先,程序员为每台机器提供任务的“映射”(例如,计算页面上某个单词的引用数量); 然后他编写指令以“减少”所有计算机的结果(例如,通过求和)。 MapReduce处理分发详细信息,从而将其隐藏。

次年,Jeff和Sanjay就MapReduce任务改写了Google的抓取和索引系统。 不久,其他工程师意识到了该系统的强大功能-并开始使用MapReduce处理视频并在Google Maps上渲染图块。 MapReduce是如此简单,以至于新任务会自己出现。 Google每天都有负载周期:白天的流量比晚上多,并且MapReduce任务开始吸收空闲容量。 在梦中,人脑处理日常经验。 现在,谷歌开始在夜间处理其数据。

长期以来一直有证据表明,谷歌实际上是一家伪装成搜索引擎的人工智能公司。 2001年,与Jeff和Sanjay共享办公室的Noam Shazir决定重新制作Google从另一家公司许可的拼写检查系统。 该系统继续犯尴尬的错误。 例如,她建议用Turbot ax(北大西洋的比目鱼)代替TurboTax。

拼写检查器的质量取决于字典。 Shazir意识到,在Internet上,Google可以访问人类历史上最大的词典。 他编写了一个程序,该程序使用Internet上文本的统计属性来确定可能键入错误的单词。 该计划的理解是,“植物长矛”和“布林斯利长矛”的意思是“小甜甜布兰妮”。 当Shazir在每周一次的会议上展示该程序时,许多员工一再试图欺骗该程序,但大多没有成功。 Shazir与Jeff Dean和一位名叫Georges Harik的工程师合作,开发了一种类似的针对网页内容进行广告定位的系统。 此目标带来了该公司向其计算基础设施发送的大量资金。 这标志着反馈循环的开始:不断增长的基础架构改善了Google的计算能力和智能; 计算技能成为利润的来源,而利润使您可以构建基础架构。 这种反馈循环为公司带来了前所未有的市场支配地位。

机智的程序员使用MapReduce从Google数据中获得各种见解:转录用户语音消息,回答他们的问题,自动完成查询以及将文本翻译成一百多种语言成为可能。 这些系统是使用相对简单的机器学习算法开发的。 杰夫说:“但是,当您拥有大量数据时,非常简单的方法将非常有效。” 由于使用BigTable,MapReduce及其后继产品存储和处理的“数据,数据,数据”是公司的主要资产,因此Google的全球基础架构变得更加灵活和可扩展。 分布式计算的想法是很久以前出现的。 “云计算”和“大数据”的概念在Google出现之前就已经存在。 但是,通过使普通程序员可以智能地管理分布式程序的基础架构,Jeff和Sanjay将Google带入了一个新的高度。 用户感到:事情已经改变-Google云变得越来越智能。

2004年,Jeff和Sanjay认为该系统对于天文学家,遗传学家和其他需要处理大量数据的科学家非常有用。 然后,他们发表了文章“ MapReduce:大型集群中的简化数据处理” 。 该文件从车上以上帝的身份出现。 廉价的设备,Web服务和连接的设备的增长导致了数据流,但是只有少数公司拥有处理此类信息数组的软件。 努力扩展一个名为Nutch的小型搜索引擎的两名工程师Mike Cafarella和Doug Cutting非常确信MapReduce的重要性,因此决定从零开始创建该系统的免费克隆。 最后,他们以切割大象的儿子喜欢的玩具大象的名字命名了他们的项目Hadoop。

渐渐地,《财富》 50强公司中有一半接管了Hadoop,这已成为大数据的代名词。 Facebook使用Hadoop MapReduce来存储和处理用户元数据—有关点击,喜欢和广告视图的信息。 一方面,Facebook拥有世界上最大的Hadoop集群。 Hadoop MapReduce为LinkedIn和Netflix的成功做出了贡献。

NSA前技术总监Randy Garrett记得向NSA总监Keith Alexander展示了该技术。 Hadoop完成分析任务的速度比以前的系统快18,000倍。 这成为了一种新的情报收集方法的基础,一些观察者将其称为“所有事物的全部收集”。

杰夫有一个躁动不安的性格:对他而言,当他看到解决方案时,问题就失去了兴趣。 2011年,云技术席卷全球,杰夫·迪恩(Jeff Dean)开始与斯坦福大学计算机科学教授安德鲁·恩(Andrew Eun)合作,他领导了谷歌关于神经网络研究的秘密项目。 Jeff在他的学生时代遇到了神经网络,但后来他们无法解决实际的问题。 恩告诉杰夫,情况已经变了。 在斯坦福大学,研究人员通过允许神经网络访问大量数据而取得了令人印象深刻的结果。 Eun建议,神经网络不仅可以变得有用,而且功能强大。

神经网络与传统计算机程序有很大的不同。 它们的行为不是由普通命令决定的;而是使用输入和反馈对网络进行“训练”。 杰夫(Jeff)对神经网络的了解并没有随他的学生时代而发展,海蒂(Heidi)看着教室里满是课本。 杰夫开始每周大约一天致力于一个名为Google Brain的项目。 Google的许多人对此技术表示怀疑。 杰夫当时的经理艾伦·尤斯塔斯(Alan Eustace)回忆道:“浪费人才。” Sanjay也无法理解朋友的决定:“您在基础设施上工作,在那里忘记了什么?”

在接下来的七年中,Google Brain团队开发了神经网络,该网络在机器翻译,语音和图像识别方面显示了世界上最好的结果。 最终,这些神经网络取代了Google用于排名搜索结果和广告定位的最重要算法,而Google Brain成为公司发展最快的团队之一。 克莱尔·崔(Claire Tsui)自2001年以来一直是Google工程师,他说杰夫(Jeff)的决定是谷歌AI发展的转折点:“有人相信,有人没有。 杰夫证明了它可以工作。”

事实证明,AI迫切需要规模,而系统工程师Jeff Dean提供了规模。 作为该项目的一部分,他领导了一个名为TensorFlow的程序的开发-试图创建仅适用于AI的MapReduce之类的东西。 TensorFlow简化了神经网络在计算机集群中的分布,使它们变成一个大脑。 在2015年TensorFlow公开发布时,它已成为与AI合作的事实上的标准。 首席执行官Sundar Pichai最近宣布,Google的核心业务是人工智能,并任命Jeff领导所有AI计划。

现在,杰夫每周花四天时间来管理Google Brain。 他领导着3,000人的工作。 他参加谈判,举行每周会议以研究新的计算机芯片(专门为神经网络设计的张量处理器),并帮助开发AutoML(一种使用神经网络设计其他神经网络的系统)。 他每周只有一次与Sanjay一起编程的时间。

历史抹去了工程壮举。 我们记得18世纪的伟大探险家-詹姆斯·库克(James Cook),乔治·温哥华(George Vancouver)-但约翰·哈里森(John Harrison),他不是约克郡的木匠,经过数十年的努力,他使手表的可靠性足以测量海上经度。

Jeff和Sanjay最近在他们最喜欢的墨西哥餐厅Palo Alto Sol中享用了玛格丽塔酒和辣酱玉米饼馅。 杰夫拿出手机,问:“ Gmail何时发布?” 电话回答:“ 2004年4月1日。” 餐桌旁的礼节桑杰(Sanjay)似乎不欣赏朋友的冲动,但杰夫很高兴。 现在,Google可以使用易于集成且在很大程度上不可见的程序堆栈来交谈,收听和回答问题,这些程序从其电话扩展到了世界各地的数据中心。

今天,他们的角色有所不同。 Google上的Sanjay被称为“个人参与者”,它是一种单独工作且无法控制任何人的编码器。 他对此表示感谢。 他承认:“我不想像杰夫那样工作。” 他目前正在开发一种软​​件,可使工程师更轻松地集成和管理数十种程序(新闻,照片,价格),这些程序只要用户在Google搜索字段中输入即可开始工作。 每周一次,他与Google的Jedi工程委员会的技术主管小组会面,以制定影响整个公司的技术决策。 如果Google在家里,那么Jeff将建立一个扩展,而Sanjay将加强基础,加强梁并拧紧螺栓。

同时,在他们的周一配对编程会议上,他们开始了新的尝试。 这是一个AI项目:正如Jeff所说,尝试训练“巨型” ML模型来执行成千上万个不同的任务。 杰夫多年来一直在思考这个想法。 他最近认为这是可能的。 他和桑杰(Sanjay)计划建立一个原型,使团队可以成长。 在软件世界中,管理团队的最佳方法是基于程序代码。

“我认为他们彼此想念,”杰夫的妻子海蒂说。 当他们的合作放慢时,周五的家庭晚餐就出现了。

在三月的周日,杰夫和桑杰举行了一次乡村旅行。 天气晴朗,尽管在阳光下很热。 杰夫带着2016年的伯尼保险杠贴纸到达蓝色特斯拉跑车上的远足径。桑杰很快跟随他穿着红色的S型。桑杰在早上读了这本书,杰夫踢了足球(手腕上的设备显示他已经跑了11公里。二十年后修复该索引后,Jeff类似于退休的晒黑强壮运动员,而Sanjay似乎根本没有年龄。

路径是穿过茂密森林的10公里环路。 杰夫先走了。 在森林中,他们回忆起Google的成长速度。桑杰回忆说,公司首次扩建后,水管工如何在男厕所的同一间浴室中安装两个马桶。 “我记得杰夫的评论,”他说。 “两个头比一个头好!”他笑了。

他们从森林降落到干燥的空旷地区。一只秃鹰在天上飞。

“山比我想象的凉爽,”杰夫承认。

-有人说这是一次固定的竞选活动。

“我认为这就是为什么没有自行车道的原因。”

他们爬回森林。杰夫(Jeff)爬上山,看见树木之间有缝隙:“在某个时候,视野很好,”他说。

这条小径走到山顶,高而宽,没有森林,可以欣赏到全景。地平线上的薄雾没有覆盖南部的圣克鲁斯山和东部的米申峰。“桑杰,这是您的办公室!” -杰夫说。他们站在一起,望着山谷。

Source: https://habr.com/ru/post/zh-CN432324/


All Articles