一把锤子的多大故事

因此,当孟也在饭桌上沉默了好一会,笑了笑,温吞地说出“我感觉,Griddy 确实没什么好讲的呀”的时候,我的心中跑过一匹草泥马:“我靠。”

第一次见到Griddy 的创始人兼开发者任孟也的时候, 我很惊讶。这个人与Griddy 的主题色,橙色,是如此不搭。

他很害羞。这是我对他的第一印象。似乎他说每句话都要认真想很久才会说出口,且语速很慢,声音很轻。在吵吵嚷嚷的cafe 里,即使我就坐在他身旁,也必须聚精会神地听才能听清他在说什么。但和我一同去的朋友汤姆说:“我一点也不觉得他是害羞,而是很谨慎。”

“He truly means what he says.”他补了一句。

把Griddy 和它的开发者写入开篇故事,起初是因为那时的我近乎固执地认为Griddy 是一个很伟大的产品。我觉得Griddy 和大部分多大学生自己做得很high、然而根本没人想用的手机App 或网站有着本质的区别。它很可能是多大历史上唯一一个,由一个学生做出来、整个多大的学生都在用的产品。至少我暂时还想不到第二个。

与我同去的汤姆善意地提醒我,即使我说的也不错, 但我看上去有些太着迷于Griddy 了。“其实很有可能就是这个人顺手做了一个工具,结果恰好很好用, 然后大家都在用罢了,可能没有那么玄乎。”但是我不甘心。我仍然认为这么一个在技术上并不难实现的选课工具,既然只有他做出来了,便是因为只有他能做出来。他一定有着常人所不具备的视野。

因此,当孟也在饭桌上沉默了好一会,笑了笑,温吞地说出“我感觉,Griddy 确实没什么好讲的呀”的时候,我的心中跑过一匹草泥马:“我靠。”

2011 年,任孟也在课业负担重得臭名昭著的工程科学(Engineering Science,简称EngSci)开启了他的多大故事。即便那时只想在软件和互联网方面有所造诣,他却有意选择了一个“什么都要学”的专业, 包括一大堆自己未来根本用不上的硬件和物理课。像许多EngSci 的大神一样,那时的孟也散发着无法掩盖的傲气,认为没有什么技术难题是他攻克不了的。不出意料地以很高的GPA 结束大一后,他顺利地进入了西雅图微软总部实习。

就是在这个暑假,有两件事促成了Griddy 的诞生。

在微软,代码量是庞大的。即使是很小的项目动辄也有数十万行的代码,更别说Windows 这种有上亿行代码的怪兽。于是,软件工程师们时常面临着这样的问题:我想要实现的功能,其他人是否已经实现过? 公司的其他项目里,是否已经有了现成的工具?”(在编程中,同一段代码或模块可以在不同地方被重复利用。)因此,微软做了一个仅供内部使用的搜索引擎。码农们使用这个引擎,即使是在搜索框里输入不完整的词条(比如对一个功能的简短描述),也可以轻易地搜出有相似功能的代码或现成的模块。在微软Visual Studio 团队工作的孟也有幸参与打造了这个工具,因此学到了一些在当时算是比较前沿的搜索引擎方面的技术。

8 月的某一天,看到用这个工具用得眉开眼笑的码农们,孟也想起了那操蛋的前一天晚上。

那晚,他要选一门选修课。在2016 年以前,多大的官方排课网站是极其难用的——先去Calendar 看每个专业下有哪些课,查明课程代码后,一门一门地把完整的课程代码复制到搜索框里,点击一下搜索键,等这门课的详细信息蹦出来,之后再打开自己的Timetable 开始排。在Calendar、搜课和Timetable 三个窗口之间来回切换的孟也,折腾了大半个小时也没找到一门自己既感兴趣、时间又能完美嵌入已有课表中的课。他觉得这整个过程极其繁琐、耗时,简直蠢呆了,于是便自己动手写了个小程序, 把搜课网站的网页结构拉出来,将里面的数据全部存到自己的电脑上,在本地进行搜索。花了两天把这个工具做出来后,他只花了数十分钟就找到了一门满足自己需求的课。

当时的他想到,如果从一开始就有这个工具,那自己就可以少费些时间排课了。然而每年要选八门十门课的Arts & Sci 学生们,要在这上面耗费的时间肯定是自己的好几倍。“如果我选一门课要浪费三四个小时,整个多大几万个学生……”他在大脑中快速地做着算术题。投入几百个小时把这个工具完整地开发出来,让几万人有更高的productivity,这是他在大一时看到的,利用自己掌握的技术能给社会带来的巨大影响。

在利用人人网和通过朋友简单宣传之后,Griddy 很快就获得了成功,变成了家喻户晓的多大生存必备利器。在2016 年多大推出官方新工具之前,Griddy 几乎是多大学生唯一能用的高效排课工具。

然而接下来Griddy 的故事,却让人有一丝费解。

往后的几年里,Griddy 再也没有任何主要的变化—— 没有新的功能、新的界面,没有增加其他学校的课, 更没有能让它赚很多很多钱的广告(唯一一个广告是赞助商主动找上门来的)。除了平均每年花三十到四十个小时改一改代码、抓取新的数据,孟也没有在这上面花更多的时间。他觉得Griddy 他可以做,别人也可以做。

在此期间,孟也又去过谷歌和推特实习。2015 年, 他以cGPA 3.9 的成绩从工程科学毕业后, 开始了PhD 的学业。我见到他时, 他刚入职Uber 一周。现在的他一半时间在Uber 多伦多研究院跟随著名的Raquel Urtasun 教授为Uber 做着机器学习(Machine Learning)和自动驾驶(Self-driving) 方面的研究,另一半时间在多大进行着PhD 的学业。

孟也很喜欢机器学习。他相信机器能够像人一样, “capture 这个世界的complexity”。

他在Uber 研究的就是如何在人把汇集起来的知识教给机器后,让机器去自学新的东西、总结新的规律。车上的摄像头会实时把前方的路况拍下来。在获得了这个路况图像后,是先去识别其中的车,还是路人? 如何判断眼前的情况是否紧急?如果是,程度如何? 在这个紧急情况下,是摆方向盘还是刹车有更大的概率能同时保全车里和车外的人?这些都不是由人预设好,而是由机器自己去学习并决定的。他说机器学习可能会是一场新的工业革命。甚至对于许多非技术行业的公司而言,如果不大力发展和利用人工智能,在未来的二十年里一定会面临着淘汰。

孟也说他觉得多大的PhD Program 非常灵活。不像在别的大学,他在这儿可以中途变换研究的选题方向,不断有机会去寻找兴趣所在,迅速投入并更快地得到研究成果。这对孟也很重要,因为他认为如果现在定一个五年的研究计划,五年之后研究出来的方法可能就已经过时了。他想时刻关注着行业里面用的最先进的方法是什么,然后快速跟进。

时间回到五年前,孟也大一的那个暑假。

在开发Griddy 那段时期前后,早已对人工智能和机器学习有着浓厚兴趣的他开始编写自己的第一个神经网络(笔者注:神经网络是机器学习的一种重要方法,通过互相连接的“神经元”组成的复杂网络, 试图在一定程度上模拟人脑神经网络的运行)。那是在机器学习远不如现在热门的2012 年,整个领域还处于蛮荒时代,自然也没有像样的工具可以用。希望实现机器学习算法的编程者需要从底层开始一点一点开始去编写最基本的功能。孟也用了一种现在被他自己称为“非常naive”的方法——试图用Java 的线程来模拟单个神经元,多线程来模拟网络,并因此开发了一整套神经元之间互相传递信息的通信系统。这套系统运行得非常慢,以至于训练这个机器理解一些在人类看来极其基本的逻辑都需要数十分钟。采用这种方法,我打个比方,就像没有数控机床或任何先进的制造设备,有的只是一把锤子,却试图去造一台飞机发动机。

所幸的是,后来去到谷歌实习的孟也惊喜地发现他很快就可以把这把锤子扔了。

在谷歌实习期间,就在孟也身旁的Google Brain 团队已经开始着手开发TensorFlow 机器学习框架。TensorFlow 就像一台先进的机床,工人(编程者) 只需要直接在这台机床上操作,便能高效且精确地打造出发动机的各种零件。今天的TensorFlow 已经成为了世界上最流行的机器学习框架。此刻再没有人会去打造各种奇形怪状的锤子,而是直接站在TensorFlow 的肩膀上,专心地去造“发动机”。受到包括此在内的一些事情的启发,孟也从那个暑假开始便更多地想在科研上有所发展,而不再仅仅把自己定位为软件工程师。他回到了学校,开始了新一轮疯狂学习,并着手和教授开始了人工智能的一些科研项目。

做了一段时间的科研后,孟也发现了一个很大的问题。在实验室里,经常出现“你写的代码我看不懂, 我写的代码你看不懂的情况”。因为有微软和谷歌的经历,孟也写的代码算得上是比较标准化的,接近行业规范且易读。于是他领头召集起了实验室里的人,一起制定标准,来使代码保持maintainable 和extendable。孟也说,如果没有之前的实习经历, 他不会想到要有意地去定制标准。一旦先制定好整套的标准,效率就会成倍提高。除此之外,孟也还建立了好几个代码repository,让其他人可以方便地用他已经写好的工具。

有了这种铺垫,孟也说,他可以更高效地去研究他感兴趣的问题了。现在的机器学习领域有不少瓶颈, 他希望实现一些突破。

他正在寻找新的锤子。

汤姆跟我说, 随着多大推出官方选课工具, 用Griddy 人在渐渐变少。我打开了手机,在一个水聊群里面打下一句“是Griddy 好用还是学校官方的好用?” ——人们开始七嘴八舌地议论。不难看出,许多人已经用上了新工具。

我向孟也提起了这件事。他还是用原来的表情看着我,似乎不知道有什么好说的。他没有显露出一丝紧张或担忧,让我不得不推测他可能根本没有仔细想过这件事。也对,为什么要去担忧呢?如果真的有更好用的工具出现,那就让人们去用它吧。他已经在努力打造一个全新的,能在更大的规模上提升社会生产效率的工具了。

孟也给我们看了Griddy 后台的统计数据。让我最惊讶的是,用户停留在网页上的平均时间比我想的要少许多。这大概就是微信创始人张小龙所说的“好的工具,让人用完即走”的理念——用最高效的方法去解决最重要的问题,解决完就不要停留,马不停蹄地去寻找并解决更重要的问题。

虽然最终未能成功证明或证伪我那“只有他能做出Griddy”的固执猜想,但我却很是心满意足。孟也对自己所学专业的发自内心的热爱和深耕,对如何将行业中的先进经验带入自己在学校中做的事的深入思考,对打造工具的理念和对效率的追求,对我自己而言都是更有价值的答案。

我有时知道,有时不知道,我来到多大是在寻找什么问题的答案。如果认真主动地去与形形色色的学生、教授和行业里的校友们深入交谈,我会被答案所带来的丰富启发所淹没,乃至于觉得原先的问题已不再那么重要。孟也和他锤子们的多大故事会悄无声息却迅猛地继续向前展开,但在文字中会先告一段落。接下来是你的,我的,以及更多人的多大故事。

这时候我脑海中才终于浮现起两个半小时前刚见到孟也时的那个场景。他说出那句“我感觉,Griddy 确实没什么好讲的呀”时的语气之中,竟带有一种好汉不提当年勇,但又不得不与我详聊的一丝无奈。