编者按:本文来自“腾讯科技”,编译 乐学。36氪经授权转载。
据外媒报道,在谷歌,除了联合创始人拉里-佩奇(Larry Page)和谢尔盖-布林(Sergey Brin)这对众人皆知的好搭档之外,只有一对亲密无间的黄金搭档。他们就是谷歌最顶尖的工程师杰夫-迪恩(Jeff Dean)和桑杰-格玛瓦特(Sanjay Ghemawat)。杰夫和桑杰在同一台计算机上一起编写代码,一起改变了谷歌和互联网的发展方向。
2000年3月的一天,6位谷歌最优秀的工程师聚集在一间临时的紧急备战室里。这家公司遇到了前所未有的紧急情况:它的核心搜索系统停止了正常工作。尽管用户仍然可以在谷歌搜索引擎上输入查询信息的关键词,但是他们得到的结果却是5个月前的信息。这个问题远比工程师们意识到的要严重得多。因为谷歌的联合创始人佩奇和布林当时正在与雅虎谈判,准备为雅虎的搜索引擎提供支持。
他们承诺提供一个比他们当时的索引大10倍的索引——也就是打造一个能够跟上万维网发展速度的新索引,万维网的规模在上一年翻了一番。如果他们失败了,谷歌与雅虎的合作很可能会破裂,谷歌可能白白花光了所有资金,甚至可能会破产。
在楼梯旁的一个会议室里,工程师们把门搁在锯木架上,然后摆上了他们的电脑。27岁的克雷格-西尔弗斯坦(Craig Silverstein) 谷歌的第一位员工,他身材矮小,嗓音高亢。
在他加入谷歌时,谷歌的办公室还在布林的起居室里。四天四夜的奋战之后,他和罗马尼亚系统工程师博格丹-科考塞尔(Bogdan Cocosel)的工作仍然毫无进展。“我们所做的所有分析都没有任何意义。”西尔弗斯坦回忆说,“一切都坏了,我们不知道是什么原因。”
西尔弗斯坦几乎没有注意到桑杰的存在。他是一位安静的麻省理工学院的毕业生,33岁,眉毛浓密,一头乌黑的头发。就在几个月前,也就是去年12月,桑杰加入了谷歌。他是跟随他在数字设备公司的同事杰夫一起来的。31岁的杰夫是一个精力充沛的人。杰夫早在桑杰10个月前就离开了数字设备公司。他们的关系非常亲密,喜欢在一起编写代码。
杰夫和桑杰开始研究索引方面的问题。经过一段时间的努力,他们终于解决了问题,建立了新的索引。而紧急备战室也随之解散。
今天,谷歌的工程师们分为很多层级。最底部的第一级是IT支持人员。第二级是刚从大学毕业的学生;第三级则通常是有硕士学位的人。达到第四级需要几年的时间,或者拥有博士学位。大多数人止步于第五级。第六级工程师,已属于谷歌前10%的顶尖工程师,非常能干,可以说他们是一个项目成功的关键。
第六级工程师工作很多年后才有机会升级为第七级工程师。首席工程师(级别为第八级)负责公司主要产品或基础架构。“杰出工程师”,也就是第九级工程师,往往很受人尊敬。如果成为“谷歌研究员”,也就是第十级,你就获得了一份终身荣誉。谷歌研究员在其研究的领域通常是世界顶级的专家。杰夫和桑杰是谷歌的高级研究员——该公司绝无仅有的第11级工程师。
谷歌园区坐落在距离山景城市中心几分钟车程的地方。去年夏天的一个星期一,杰夫和桑杰一起参加了一个上午的编程活动,然后在一家名为Big Table的园区自助餐厅吃了午饭。该餐厅是以他们在2005年帮助开发的一个系统BigTable命名的,该系统的作用是将无数台计算机当成是一个数据库来进行处理。
杰夫咬了一口他买的比萨饼。他的手指粗粗的,像水手的手指。而桑杰的手指看起来更纤细。
“我到现在都不太清楚我们是如何决定做搭档的。”桑杰说。
“在谷歌之前,我们就一直在这么做。”杰夫说。
“但是,我不知道为什么我们要在一台电脑上,而不是在两台电脑上编程。”桑杰说。
“在数字设备公司工作的时候,我经常从我的研究实验室走两个街区到他的研究实验室。中间有一家冰淇淋店。”杰夫说。
“原来是冰淇淋店促成我们的!”桑杰高兴地说。
桑杰一直未婚,他和杰夫及其妻子海蒂和两个女儿一起度假。杰夫的女儿们叫他桑杰叔叔,她们五个经常在星期五聚餐。
“我不知道为什么没有更多的人像我们这样合作。”桑杰在谈到与杰夫合作编程的事情时说。
“你需要找到一个与你的思维方式一致的人,这样你们两个在一起才能成为一种互补的力量。”杰夫说。
一个有意思的现象是,在过去的35年中,大约有一半的诺贝尔生理学或医学奖被授予了科学上的合作伙伴。
尽管开发人员有时会谈论“配对编程”——两个程序员共用一台电脑,但是他们通常认为这样的合作关系显得很多余,就好像同一架飞机上安排了两个副驾驶员。但是,杰夫和桑杰有时似乎是同一个脑袋的两个部分。他们的经理比尔-库格兰(Bill Coughran)回忆称:“他们在一起工作的效率非常高,以至于我们经常围绕他们来组建团队。”
1966年,系统开发公司(System Development Corporation)的研究人员发现,最优秀的程序员的效率是最差的程序员的10倍以上。从那时起,所谓的“10倍程序员”的说法就一直备受争议。当很多人参与从事一个庞大的软件项目的时候,强调“10倍程序员”或许是在搞个人崇敬。在编程方面,单兵作战取得的成往往很小。尽管如此,许多程序员将杰夫和桑杰一起完成的工作看作是“10倍程序员”存在的证据。
杰夫在1968年7月出生于夏威夷。他的父亲安迪是一名热带疾病研究员;他的母亲弗吉尼亚-李是一名医学人类学家,会说6种语言。为了好玩,父子俩设计了一台IMSAI 8080工具包电脑。
杰夫和他的父母经常搬家。在高中时,他开始为流行病学家编写一个名为Epi Info的数据收集程序;它最终成了流行病学家野外工作的标配,而且以10多种语言发行了数十万份。杰夫在明尼苏达大学时认识了现在的妻子海蒂。
杰夫博士的研究重点是编译软件,它可以将人们编写的代码转换成针对计算机的机器语言。
桑杰直到17岁去念康奈尔大学时才第一次接触电脑。他于1966年在印第安纳州西拉斐特出生,但是他在印度北部的工业城市科塔长大。他的父亲马希帕尔是一名植物学教授,他的母亲沙恩塔则在家照顾桑杰和他的两个兄妹。他们一家人都喜欢看书。桑杰的弟弟潘卡吉(Pankaj)成为了哈佛商学院有史以来最年轻的教职员工,现在则是纽约大学斯特恩分校的教授。
在麻省理工学院的研究生院,桑杰找到了一群亲密的朋友。尽管如此,他当时从来没有约会过,现在也很少约会。他说他并没有决定要不要组建一个家庭。他的那些朋友们已经学会了不去打扰他,他的父母很久以前就接受了他们的儿子将成为单身汉的事实。在谷歌工作时,他深居简出,因此总有一种神秘的气息围绕着他。他沉默寡言,但是思想深邃,思路非常清晰。
“我认为他最擅长的是设计系统。”克雷格说,“如果你看桑杰写的一段代码,你就会发现它很漂亮,就像一个匀称的雕塑。”
在谷歌,杰夫的知名度要高得多。但是,了解这两个人的人知道,桑杰是一个与杰夫一样杰出的人才。“杰夫非常擅长提出新的想法。”与他们共事很久的同事威尔逊-谢(Wilson Hsieh)说,“而桑杰打造的东西往往经久耐用。”在生活中,杰夫更外向,桑杰更内向。在编写代码的时候,情况正好相反。杰夫编写的代码令人眼花缭乱——他可以很快地勾勒出令人震惊的想法,但是他却完全没有理会阅读这些代码的人的感受。桑杰的代码则让人很好读懂。
在2003年的四个月中,杰夫和桑杰给谷歌带来了最大的一次升级。他们用一个叫MapReduce的软件做到了这一点。当他们第三次重新编写谷歌爬虫和索引代码时,他们想到了创建这个软件。
次年,杰夫和桑杰又用MapReduce重写了谷歌爬虫和索引。很快,其他工程师也意识到这个软件有多么强大。于是,这些工程师们开始使用MapReduce来处理视频和其他任务。
谷歌表面上是一个搜索引擎,实际上是一个人工智能公司。当一些有进取心的程序员使用MapReduce软件来研究分析谷歌的数据时,他们让多种新的功能变成了现实:将用户的语音邮件变成文字,回答他们的提问,自动完成他们的搜索请求,并在100多种语言之间进行翻译。这些功能是使用相对简单的机器学习算法开发出来的。
杰夫说:“当你有大量数据的时候,简单的技术往往更有效。”随着谷歌工程师越来越多地使用BigTable和MapReduce以及后来的升级软件来存储和处理数据,谷歌遍布全球的基础架构变得更加灵活,衔接更加顺畅。像“云计算”和“大数据”这样的概念早在谷歌兴起之前就已经存在了。
但是,杰夫和桑杰让谷歌对这些技术的运用达到了一个全新的水平。用户们可能已经感觉到了某些变化:谷歌的云服务变得越来越聪明了。
在2004年,由于杰夫和桑杰认为MapReduce可能对天文学家、遗传学家和其他有大量数据要处理的科学家有用,因此他们撰写了一篇论文《MapReduce:简化对庞大数据的处理过程》,并公开发表。这篇论文产生了很大的轰动,给了人们很大的启发。
工程师迈克-卡法雷拉(Mike Cafarella)和道格-卡特(DougCutting)深信MapReduce的重要性,于是决定从头开始免费克隆该系统。他们最终将他们的项目命名为Hadoop。随着Hadoop的成熟,它被财富50强企业中的一半企业采用。它甚至成了“大数据”的同义词。
后来的社交网络Facebook、职业社交网站LinkedIn和在线电影租赁服务Netflix均采用了Hadoop MapReduce技术。美国国家安全局前技术总监兰迪-加勒特(Randy Garrett)还曾向国家安全局局长基思-亚历山大(KeithAlexander)演示过这项技术。Hadoop执行分析任务的速度比以前的系统快1.8万倍。它成为了一种新的情报收集方法的基石。
杰夫的性格中总有一种不安于现状的东西。2011年,随着世界拥抱云服务,他开始与斯坦福大学计算机科学教授吴恩达(Andrew Ng)合作——他领导着谷歌的一个秘密项目,研究虚拟神经网络,即由虚拟“神经元”组成的软件程序。
杰夫在大学期间接触过神经网络;那时,神经网络还不能解决现实世界中的问题。吴恩达告诉杰夫这种情况正在改变。吴恩达认为,有了谷歌的规模,神经网络不仅会变得有用,而且会变得非常强大。
“我真不敢相信我竟然白白吃了这么多沙拉。”杰夫感叹地说。由于杰夫的神经网络知识从大学毕业后就没有多大进步,因此他开始恶补相关知识。他的妻子海蒂看着他们的浴室里塞满了书。杰夫开始一周花一天的时间在这个项目上,这个项目被称为“谷歌大脑”(Google Brain)。
谷歌的许多人对这项技术持怀疑态度。“这样做太浪费人才了。”当时的经理艾伦-尤斯塔斯(Alan Eustace)说。桑杰也不能理解杰夫的举动。“你是搞基础架构研究的。”他说,“你跑到那边做什么?”
在接下来的七年里,谷歌大脑团队开发的神经网络超越了机器翻译、语音和图像识别领域的技术水平。最终,他们取代了谷歌最重要的搜索结果排名和目标广告算法。谷歌大脑部门成为该公司发展最快的团队之一。谷歌工程师克莱尔-崔(Claire Cui)称,杰夫的参与标志着人工智能在谷歌的发展出现了一个新的转折点:“有人相信人工智能,也有人不相信它。但是,杰夫证明了这是可行的。”
作为人工智能工作的一部分,杰夫领导了一个名为TensorFlow的程序开发工作。这是一种新的尝试,他希望打造出人工智能领域的MapReduce。在2015年,当TensorFlow公开发布的时候,它成为了人工智能的通用语言。最近,谷歌首席执行官桑达尔-皮查伊(Sundar Pichai)宣布该公司是“人工智能优先的”公司,并任命杰夫为人工智能计划的负责人。
杰夫现在每周花四天时间管理谷歌大脑部门。他要指挥3000人的工作。而且,他还外出演讲,每周召开一次会议,研究一种新的计算机芯片(专门为神经网络设计的张量处理芯片)。而且,他还在帮助开发AutoML,这是一个使用神经网络设计其他神经网络的系统。他每周只有一次机会与桑杰合作编程。
“我想他们很想念对方。”杰夫的妻子海蒂说。当他们不是很忙的时候,他们开始在周五共进晚餐。
在3月的一个星期天,杰夫和桑杰结伴在库比蒂诺的郊外开始了徒步旅行。在徒步的过程中,他们感叹谷歌的发展速度真快。桑杰回忆说,有一次,一名水管工在公司男厕所的一个隔间里安装了两个马桶。“我现在还记得杰夫的评论。”他说,“他说,‘两个脑袋总比一个好!’。”