研究与工程的融合:打造人工智能的系统“护城河”

2018-06-27 | 作者:微软亚洲研究院

编者按:在计算机研究领域中,系统研究是相当抽象的一个领域,它默默隐藏在各类应用的背后,不为大众所熟知;但它也是最基础、核心的研究领域,一切上层的应用都离不开系统的强力支撑。想要在AI时代立于不败之地,就要在AI系统层面有所突破。因此,在微软研究院系统研究领域有超过15年科研经验的周礼栋博士带领他的系统团队,筹建了微软亚洲研究院-微软(亚洲)互联网工程院人工智能系统联合中心,为微软的AI生态搭建最核心、最基础的系统平台。


何为“系统”?系统就是把零散、复杂的个体组织成有序的整体。在计算机领域,我们不妨将这个抽象又简单的名词理解为平台。一直以来,微软都是一个平台公司,从早期的操作系统、数据库,到云平台、分布式系统,其实都可以被称为“系统”。微软的光辉验证了“得系统者得天下”,而微软也比任何一家企业都理解系统和平台的重要之所在。在AI时代,系统再次成为兵家必争之地。为此,微软定位北京,成立了微软亚洲研究院-微软(亚洲)互联网工程院人工智能系统联合中心(AI System Joint Center)。

AI的到来,让IT行业迎来了有史以来最好的时代。IT从业者拥有着史无前例的巨大机会,但对于IT厂商来说却可能意味着危机丛生,要在AI领域立于不败之地,要在AI系统层面占据优势,是微软思考再三的问题。在微软研究院系统研究领域有着超过15年科研经验的周礼栋博士临“危”受命,筹建了人工智能系统联合中心,为微软的AI生态搭建最核心、最基础的系统平台。

微软研究院:梦想开始的地方

人是企业最重要的资源,企业和人一直都是双向选择,适合的环境才能让匹配的人有最好的发展。

20年前,在复旦大学完成学业后,周礼栋去美国康奈尔大学继续攻读博士,2002年博士毕业后他便加入美国的微软研究院开始工作。“微软研究院对于很多计算机专业的毕业生来说充满向往,因为在这里你不仅可以接触到最前沿的先进技术,还可以与全球计算机领域的顶尖学者共事。在这里,图灵奖获得者、美国科学院和工程院院士、计算机多个领域的奠基人和领袖人物都可能是与你朝夕相处的同事。”周礼栋表示非常幸运,可以在这里开始自己的职业生涯。

微软亚洲研究院副院长,人工智能系统联合中心负责人周礼栋

加入微软研究院不久,周礼栋便有幸与计算机领域特别是分布式系统领域进行了开创性、奠基性工作的先驱们一起工作。而分布式系统可以说是最近十年引领技术革命的互联网、搜索引擎、云计算以及人工智能背后的主要支撑技术。“我曾经和2013年图灵奖得主Leslie Lamport博士共同合作,设计新的分布式协议。Leslie治学严谨,在他的要求和指导下,我为新协议撰写了长达52页的机器可验证的正确性证明,并且期间还发现了一个不易察觉的小错误。这些经历对我的职业生涯来说非常宝贵。”回忆起最初的研究工作,周礼栋觉得自己学到最重要的一点就是这些前辈的工作态度——有激情地做研究,同时讲求合作和严谨性。而这样的态度后来也贯穿了周礼栋整个职业生涯,无论是在美国的微软硅谷研究院、微软雷德蒙研究院进行系统研究,还是后来回国在微软亚洲研究院带领团队开拓国内的系统研究领域,周礼栋都将这点做到了极致并不断影响着周围的同事。

系统研究是最基础的计算机研究领域,抽象且隐藏在各种应用的背后,不为大众所知。即便同是发表论文,系统研究的论文发布相对更难——该领域的世界顶级学术会议只有两年一次的SOSP、OSDI等非常少量的几个,每年能够被大会选中的顶级论文只有二三十篇,可想而知想要进入这个圈子的难度。在微软研究环境的熏陶下,周礼栋成为了少数能够打入系统研究核心圈子的华人,他不仅担任过SOSP、OSDI、NSDI、Eurosys等多个国际计算机系统会议的程序委员会成员,还以第一届程序委员会联合主席的身份启动了ACM亚太地区系统研讨会(APSys),并在中国参与成立了首个系统研究领域学会ChinaSys。在2017,他还将领域内的顶级会议SOSP(操作系统原理大会)带到了中国,这是该大会举办50多年以来首次在亚太地区举行。随着硬件和网络的飞速发展,以及搜索引擎、大数据以及云计算等大规模系统的兴起,系统的复杂度越来越高,对于系统研究的需求也更甚,周礼栋表示,积极地推进国内外系统领域的学术交流,将加速系统研究的进展。

人工智能系统联合中心的使命:推动AI稳步前行

随着AI技术的演变,系统的发展也在与时俱进,全新的体系架构和基础设施需求、全新的编程语言和工具包、全新的AI算法……然而每个部分的发展却很不均衡,若AI从业者想要做点事情,经常需要自己去搭建底层系统,或是东拼西凑一个平台,这使得效率和品质都大打折扣。事实上,现阶段大家对于偏上层的AI算法、应用的关注度远远高于整个AI系统的基础搭建,这对于AI的发展并非利好。

“这十年来,从移动、云计算、大数据,再到如今的人工智能,大家更聚焦于这些热点本身,即便是IT从业人员,很多也都没有注意到这些变化背后最主要的推力还是因为底层计算机系统能力的不断增强,才让这些热点成为了可能。”周礼栋表示,如果没有存储技术和网络技术的突破,搜索引擎、云计算就好比空中楼阁,如果没有GPU、搜索技术、分布式系统的突破,人工智能也还是会驻足不前。

在周礼栋看来,计算机系统与应用、算法的完美结合,才是推动整个计算机行业的源动力,但是由于业界对热点的狂热追逐,使得系统研究在其中的重要性被大大低估了。而微软人工智能系统联合中心的成立,可谓恰逢其时,“我们希望能够从系统层面大力推动AI的快速发展,并逐渐形成健康、可持续发展的AI生态”。

“系统思维,就是站在全局的角度去考虑问题。从事系统研究多年,我对系统的体会是:第一,系统是一个跨学科的领域,比如做大数据,就必须要了解数据库、存储系统、数据处理方式、分析算法等等,如今要做人工智能系统也是如此;第二,从云计算、移动计算、大数据到人工智能,应用的热点一个接一个,但系统并不是追热点的领域,它永远是最底层的基本保障,当然系统也需要与新的应用场景相结合,才能做得更好;第三,系统方面的工作人员越来越重要,因为产品开发过程中遇到的难题通常并不是功能问题,多调试几次未必就能解决问题,所以很多时候是大规模系统的问题,一个节点没做好,就会牵一发而动全身,所以在微软,产品开发部门与系统研究组的合作越来越紧密。”对于系统研究,周礼栋一直有着深刻的思考,这也让他对AI系统平台的搭建充满信心。

微软亚洲研究院首席研究员杨懋看来,系统本身很复杂,并且还在变得越来越复杂,系统的好坏并非取决于其中某一点做得特别好,而是取决于最短的那块“木板”。他表示,这么多年在微软亚洲研究院系统组学到最多的就是系统思维,甚至延展至对任何问题的系统化思考,可扩展性、效率、延迟、机器学习、AI等,每件事能否做好都与系统化思维密切相关。

为了更好地为上层技术提供坚实的基础,周礼栋希望不同领域的研究者能合力推进开创性的、有深度和广度的系统研究,因此系统组的研究员中有不少都拥有跨领域的研究背景。“礼栋总是鼓励大家专注于自己的研究兴趣,所以我们系统组一直都保持着开放的研究氛围”,在微软亚洲研究院研究员薛卉眼中,这样的氛围激发了大家的创新和探索精神。

微软亚洲研究院研究员薛卉

原本从事自然语言处理相关研究的薛卉在加入系统组后,从自身在上层技术领域进行科研工作的切身体会出发,和杨懋一起开发了名为Neural Network Intelligence(NNI)的底层框架。薛卉介绍:“NNI项目源起于传统机器学习开发的繁琐流程,特别是深度学习目前还处于黑箱状态,研究人员往往需要花费大量的时间进行模型选择和超参数调试。”NNI的诞生不仅可以支持不同的操作系统和编程语言,自动地帮助使用者完成数据分析、模型比对、参数调试和性能分析工作,还能方便使用者将模型运行在不同的分布式系统上。近期,NNI就会以开源工具包的形式对外发布,这将给研究、开发人员更多尝试创新的可能性,加快科研和技术发展的脚步。薛卉表示,“做系统最重要的就是具有易用性,我们希望通过系统的优化、创新,赋能更多科研人员、开发者和实践者,进而推动更多技术的创新发展。”

AI时代,系统为王

现阶段的人工智能有三个非常重要的支柱点——大数据、新算法和大计算。而“系统”作为连接数据和算法的纽带,是一个不为大众所熟知的关键要素,一个好的系统可以有效支撑AI应用的架构、开发、部署和落地。

要想在AI领域做出大的成就,必须要有系统能力的强大支撑。“现在很多AI应用不断涌现,但还没有出现一个足够强大的系统平台可以去支撑诸多AI应用的开发与运行,所以AI发展的瓶颈可以说在于系统,系统在AI时代的重要程度不言而喻,”微软亚洲研究院的资深研究员伍鸣表示,“系统相当于一个基石,我们可以把它看作是建筑的地基,地基扎得稳,大厦才能坚固,虽然平时我们看不到地基,但它却非常重要。”

微软人工智能系统联合中心的目标就是要为微软在AI领域搭建地基,甚至是为整个AI生态系统搭建地基。它面向的不是最终用户,而是广大AI开发者、AI应用背后的技术团队,让他们在开发AI应用时更加得心应手,没有后顾之忧。周礼栋介绍道,微软人工智能系统联合中心要做一个全栈的AI平台(AI Stack),可以为AI开发者提供全方位支持,目前主要分为三个层次:

一,AI计算能力。从硬件到基础设施再到管理系统全部覆盖,充分利用GPU、FPGA等新兴技术,以及云计算、大数据等现有的相对成熟的大规模分布式系统,让AI的计算能力实现价值最大化。

二,AI平台中间层。其中包括编程语言、各种工具包等,供开发AI算法的人使用,为他们提供完善的开发和运行环境。

三,AI算法。提供成熟的AI算法供应用开发者使用,例如让微软认知工具包CNTK与TensorFlow、Caffe等框架实现灵活转换,在一种框架下训练好的模型,可以在另一种框架下无缝使用,并将更多算法集成到Visual Studio中去。

全栈的AI平台

事实上,系统研究的发展脉络也是随着应用场景的变化在不断变化,从最早的操作系统,到数据库、存储,再到云计算、大数据,以及现在的AI,场景千变万化,但变化之中总有不变的规律,系统要解决的本质问题始终不变:首先是可以工作;其次是追求速度、效率、可靠性、稳定性、可扩展性等;最后达到系统的自动运行,无需更多人为干预。

系统的很多底层技术其实是相通的,甚至可以有复用的地方,例如伍鸣和周礼栋一起研究的分布式图计算,当时主要用于必应搜索,针对广告点击率的优化提升,而图计算其实也属于机器学习的子集。再如,杨懋做过的“Tiger”项目,解决的是大型分布式系统中的存储问题,而到了AI领域,之前的经验同样可以沿用。系统相关技术的演变一脉相承,一环扣一环,“只要有兴趣、喜欢专一,完全可以一直做‘系统’这件事,”伍鸣表示,这也是系统研究非常吸引他的地方。

研究与工程碰撞,更能抓住真正的机会

系统研究是要从无数实际的应用和系统中总结规律,发现问题并解决问题,然后再回归应用到具体的系统和产品中去,并不断优化,让每一次的系统搭建都能实现当下的最优解。因此,从产品中来,再到产品中去,是系统研究与其它计算机研究领域很不一样的地方,它需要非常强大的“动手能力”,不能仅在象牙塔里完成,因此微软亚洲研究院系统组与工程团队的结合也是非常紧密。

在微软人工智能系统联合中心,除了有像杨懋、伍鸣、薛卉这样来自微软亚洲研究院的研究员,还有来自微软(亚洲)互联网工程院的工程师,微软(亚洲)互联网工程院首席开发总监柳书广便是其中一员。在柳书广看来,系统研究与产品的工程思维可以在这个联合中心里有更加高效的碰撞与融合,从研究与工程这两个完全不同的角度去做同一个系统,是件很有意思的事。

微软(亚洲)互联网工程院首席开发总监柳书广

“系统研究工作可以紧密结合产品的思维方式,一方面通过研究给产品一些方向性的指导,解决当下的疑难问题;同时研究员也可以通过产品遇到的难题看到很多未来科研的方向。”周礼栋认为,系统研究必须从实际问题出发,又要能够看到将来可能出现的问题,它不仅要解决目前的问题,更是要解决将来的问题。

柳书广表示,研究和工程两种视角的碰撞,反而可以让产品团队更容易抓住真正的机会。对于一个真正有潜力的热点,研究视角会看得深远,能够准确判断其走势,而工程视角则可以去评估其可行性和落地周期,最终实现商业上的成功。

“这也是微软第一次把研究团队和工程团队如此深度地融合在一起,”周礼栋说,“我们希望在AI领域,能够把战略考虑、技术把控、系统实现融为一体,推动业内伙伴一起打造开放的AI生态系统。”未来人工智能系统联合中心将面向微软内部所有涉及AI的团队,以及微软外部的AI开发者,无论是商业应用还是开源应用,人工智能系统联合中心出品的平台和工具都可以支撑,所谓越是开放的,才越是世界的。

微软人工智能系统联合中心团队照片

“一个好的系统是隐形的,大家通常感觉不到它的存在;但如果系统不够好,那么每个层面的开发者都会非常痛苦,问题也会接踵而来。”对于系统的研究和开发,微软人工智能系统联合中心的研究员和工程师的感受都是相同的,“系统”默默地在很多酷炫的应用背后做着支撑,而且成果通常不会在短期内实现,因此需要耐得住寂寞,但它却是计算机体系里最重要的存在。

标签