12年前,杨懋还没有从北京大学毕业,他与陈华(唱吧创始人)等同学共同开发的P2P文件共享系统Maze在国内高校中非常流行,该系统曾一度占据了北大、清华等高校出口带宽的很大一部分,并用两年时间创造了最高10万大学生用户同时在线的记录。
这款P2P工具不仅可以帮助大学生上传、下载他们感兴趣的一切内容,系统还很早地引入了社交网络的概念,大学生可以查询同一个网络上的所有人,可以添加好友,以及好友的好友…。为了解决Maze系统发展过程中遇到的很多问题,杨懋通过在微软亚洲研究院实习的机会,与系统研究组的研究员积极合作,共同完成了多个在分布式P2P系统中信誉和激励机制方面的研究工作。
主攻计算机系统领域的杨懋在当时最大的乐趣之一就是写代码。因为动手能力强,在微软亚洲研究院实习期间,他给导师们留下了深刻的印象。临近毕业时,在导师张峥(现任上海纽约大学计算机科学教授)和周礼栋(现任微软亚洲研究院副院长)的推荐下,杨懋于2006年毅然加入了他心目中的“研究圣地”,开始了与计算机“大牛”们并肩作战的日子。如今,杨懋已经成为微软亚洲研究院首席研究员,带领自己的系统研究团队继续探索着“做研究”的乐趣。
一战成名,12年了还是“初恋”的感觉
上学时,杨懋就被微软亚洲研究院深深吸引,真正加入之后,他发现在这里做研究不仅非常自由,而且从研究到应用的连接也非常紧密。在微软,系统相关的研究几乎覆盖全线产品,可以说一直走在全球系统研究的最前沿。杨懋说,“微软本身就是家系统公司,从操作系统Windows到数据库系统SQL Server,从搜索引擎系统必应(Bing)到Azure云平台,再到大数据、AI,微软所做的系统不仅全面而且挑战很大。”
自从加入研究院,杨懋就一直从事系统相关的研究。2006年到2010年,他跟随周礼栋研发了Kirin Store系统,这是通用搜索引擎必备的大规模分布式存储系统。理论上互联网有多大,就要存储多少网页,规模之巨大令人生畏。“系统同时对性能,可靠性和效率要求之高,也是以前没有经历过的。”从最开始的研究调查,到新的分布式一致性协议的设计和证明,再到原型系统的实现和选择,以及最后的实施、落地,前前后后研究员和产品组工程师一共用了三年多时间。
Kirin Store系统的成功无疑为杨懋今后的系统研究工作打下了坚实的基础,不仅实战经验得到了积累,与微软全球及其他部门的协作也越发顺畅。如今,这个庞大的存储系统仍运转良好,为整个必应提供网页存储和分析支持,且只需数人进行日常的管理和维护。好的系统就是这样,理论和实现都需要非常扎实,同时对业务的发展也必须有足够的前瞻性。这样的系统会越用越好用,越用越省心。“能跟着周礼栋、Leslie Lamport(2013年图灵奖获得者)等分布式系统理论的先驱者学习让我收获匪浅,”杨懋表示。
2011年,大容量固态硬盘开始兴起,存储和IO变得相对便宜,各种新的网页排序算法也在那时开始出现,用户对搜索引擎系统也有了不一样的要求。借此契机,杨懋与组内同事启动了代号为“Tiger”的内部项目,他们从零开始,重新思考现代化的搜索引擎系统的设计方案。“利用新的硬件让我们有可能在可负担的开销下为用户提供更好的搜索结果,但是这需要系统设计上的创新,”杨懋说到。杨懋带领新的团队帮助必应(Bing)设计了新的网页索引的数据结构,并引入了一系列基于大规模语义信息的排序算法,并重新构造和实现了相对应的后台系统。新的系统设计让必应从延迟、可扩展性、相关性等方面都得到了突破性的提升。这又是四年的时间,整个项目也从最初的数人发展到了如今超过百人的团队。
项目期间,杨懋思考得最多的一个问题就是:对于用户来说,搜索引擎系统最需要改进的部分是什么?“搜索引擎其实是一个非常复杂的系统,由很多模块组成。系统的好坏并非取决于其中某一点做得特别好,而是取决于最短的那块‘木板’。”因此他极力从中寻找问题、解决问题,使系统更高效。杨懋说:“必应仍然在诸多方面存在进一步改进的空间,但是只有更加系统化的思维,才能帮助大家更好地找到改进方向和合理的解决方案。”
“Tiger”项目让杨懋以及中国必应研发团队在微软一战成名。一般说来,大公司内部如此核心的系统技术研发都是在总部完成,而“Tiger”则是完全由中国研发团队实现的核心系统。与此同时,杨懋与同事还为必应产品组培养了一支强大的团队,以进行后续的相关工作。杨懋本人则“回归”研究院,继续其他研究。
“做系统最有成就感的时候就是系统做成了,很多人能用到,而且不再需要初创人一直盯在后面。而这也是最让人落寞的时刻,团队一点点做大,但最后自己却需要离开,”杨懋说到。即便如此,杨懋仍然继续在系统研究领域探索。他朴素地希望,通过微软亚洲研究院以及业界同仁们的努力,可以不断地壮大系统科研的队伍,在国内甚至全球,把系统研究做到最好。
曾爱单打独斗,如今更享受协作与碰撞
杨懋第一次感受到自己跟别人不太一样,是到了北大以后。之前的自己其实一直是“别人家的孩子”但并不自知。大学读书期间,他发现自己对所有有挑战性的游戏都有着强烈的兴趣,而且无论是扑克、下棋还是电子游戏,他都是同学中的佼佼者。专注、善于观察,拥有极强的逻辑思维能力——这些优势在杨懋身上体现的淋漓尽致且一发不可收拾。如文章开篇所述,在学生时代他就已经开始 “创业”了。
自信的他也曾认为自己一个人就可以做好所有的事情。不过,进入微软亚洲研究院后他发现,很多研究员都和自己一样曾是“别人家的孩子”,自己并没有那么特别。而在工作中和不同部门、不同领域的同仁一起合作、经历了酸甜苦辣之后,他开始体会到协作与碰撞所带来的另一种快乐。
“与志同道合、拥有共同理想的队友一起迈向同一个目标,这种感觉只可意会不可言传。在每个项目的设立之初,多多少少都会面临一些来自外界的质疑,但看到一个、两个……越来越多的有志之士被自己的项目吸引并加入,心里便很欣慰。团队一起通过几千个日夜的不断探索和实践,最终将丰硕的成果展现在大家面前的这整个过程,每次都让我觉得弥足珍贵,”杨懋说。
每做完一个项目,杨懋感觉自己也在发生变化,实现着自己的成长与蜕变。小到如何做好PPT和演示,以及不同思维方式之间的碰撞,大到产品方向的探讨,乃至系统架构的争论,都让人受益匪浅。虽然每每成功完成一个系统之后,大家就要分道扬镳,朝着新的方向各自努力,但在杨懋看来,其中的相濡以沫和互助互长,都幻化成为了美好的记忆长存彼此心间。
为系统研究打Call
在生活中,杨懋是一个非常谦逊、放松的人。北大读博期间,他渐渐找到了自己思维方式上的长板——系统化,擅长从不同角度思考问题。在他看来,在IT领域有所特长同时具备系统思维能力、善于融会贯通的人,会很适合做系统研究。因为用系统化的思维去看待和剖析最新的应用场景,正是系统研究人员的主要工作。
对于想要加入微软亚洲研究院的年轻人,杨懋诚恳建议大家可以尝试加入系统研究组,虽然系统研究很辛苦,但却是IT发展的重要基石。AI时代,系统的重要性更是不言而喻。现在杨懋正带领着系统研究组为此努力,为微软内部和外部的AI开发者提供全方位支持。新的工作主要可以分为三个层次:一,AI计算能力,从硬件到基础设施再到管理系统全覆盖;二,AI平台中间层,包括编程语言、各种工具包等,供开发AI算法的人使用;三,AI算法。提供成熟的高效分布式AI算法以满足更多应用开发者使用。
“在深度学习从研究走向实际应用的今天,能够与志同道合的队友共建AI生态的地基,无疑是件令人兴奋和荣耀之事!”杨懋说。