编者按:
从
AI School
到
AI Lab
,微软一直在为推进人工智能普及化、降低
AI
开发门槛做出努力。在微软亚洲研究院副院长、人工智能系统联合中心负责人周礼栋博士看来,突破目前深度学习瓶颈的一大关键就在于系统,系统的最高境界是“完全隐形”。为此,微软亚洲研究院正着力打造一款针对深度学习的开源项目——深度学习智能探索
Neural Network Intelligence (NNI)
,通过简单易用的“隐形”系统、智能自动的学习帮助更多的开发者。本文授权转载自微信公众号“
AI
前线”。
2017年微软Build开发者大会上,微软高级项目经理Cornelia Carapcea展示了一项技术:
用户创建的自定义视觉
API
模型只需要一个训练数据样例(只有几十个摄影样本),而
Custom Vision
则可以完成其余的工作。
一旦创建了这个模型
(
只需几分钟
)
,用户就可以通过安装在微软服务器上的
REST API
访问。
Carapcea
说它可以用于识别食物和地标,甚至是应用在零售环境中。
Custom Vision
可以选择最可能为模型增加最大增益的图像,允许用户手工标记图像,然后继续改进总体的准确性和可靠性。
微软亚洲研究院副院长、人工智能系统联合中心负责人周礼栋博士在接受
AI
前线记者采访时说:
Microsoft Custom Vision
和
Google Cloud AutoML
都是针对视觉识别领域里的
AutoML
(自动学习)的一个应用,都非常的简单易用。通过把复杂的模型选取、参数调优的过程掩藏在了产品的背后,
Microsoft Custom Vision
可以给用户提供一个非常简单易用的体验,使非专业人士也能零门槛的定制自己的模型。
同时,
Microsoft Custom Vision
也是微软认知服务
(Cognitive Services)
中的一部分,微软推出的认知服务包括视觉、语音、语言、知识和搜索等五大类别的二十多个
API
,如人脸识别、情绪识别、语音识别、拼写检查、语言理解等等。微软认知服务的侧重点是为用户提供一个通用的服务,用户可以直接调用现成的智能
API
来开发出更智能、更有吸引力的产品,而不需要花费大量时间来自己训练模型。
而对于最近刚刚兴起的
AutoML
技术,周博士也发表了一些自己的看法:
近年来,“
AutoML
(自动学习)”已经成为了一个研究热点。通过自动化的方式,机器试图学习到最优的学习策略,从而避免机器学习从业者低效的手动调整。经典的
AutoML
方法包括用于超参数调节的贝叶斯优化(
Bayesian Optimization
),以及用于优化器和网络结构调整的元学习技术(
Meta learning/Learning-to-Learn
)。除了在学术界引起了广泛研究兴趣,
AutoML
在工业界也已经得到了实际应用,例如此前提到的微软
Azure
提供的自定义影像(
Custom Vision
)服务,它能够方便云计算用户自动训练用于计算机视觉的机器学习模型。
AutoML
让用户在没有专业知识的情况下使用机器学习的门槛大大地降低
,甚至可谓是零门槛。在没有机器学习专家指导的情况下,用户通过
AutoML
就能在一定情况下得到高质量的模型,这使机器学习的行业应用更加容易可行。周博士说,
微软亚洲研究院希望把这类技术的使用和研究更加普及化
。微软正在着力打造一款用于深度学习的项目,名曰:
深度学习智能探索
(Neural Network Intelligence)
,简称叫
NNI
。
开发
NNI
工具包的目的是为用户提供智能化、自动化的深度学习工具包,可以帮助用户或者开发者自动地进行数据分析,自动的帮他们搜索模型,进行参数调试和性能分析,通过这样自动迭代的准备过程,用户可以节省更多的时间,将精力放在探索更有深度的机器学习的道路上。
周礼栋博士表示,
NNI
集成了
AutoML
算法,是一个支持不同操作系统的,在本地也可以云端运行的工具包。它特别适合有一定人工智能基础的科研人员更加有针对性、精准的选取模型。
微软为此制定了全新的语言,使得定义和描述搜索空间只需几行代码,所有的底层通信等复杂问题都被封装起来,对使用者完全透明。
NNI
着重解决了一系列支持
AutoML
的系统问题,以开放的方式有效加速
AutoML
算法研究者在这一领域的创新。为了鼓励更多人工智能的科研工作者一起加强这项研究,
NNI
计划将在近期开源。
然而,微软对降低人工智能门槛,提升深度学习普及化的想法可不止于此,AutoML技术只是其中的一环,微软要做的是智能系统。
周博士表示,
AutoML
是人工智能系统的一部分,它也对人工智能系统提出了包括资源管理、任务分配等一系列挑战。简单的说:灵活可扩展的好的人工智能系统能够更好的支撑
AutoML
,使其更好更快的生成结果。而好的
AutoML
则能够使人工智能系统更加完备,更方便使用。
智能时代,系统为先
周礼栋博士首先表示:人工智能如果没有系统的话,就只是一个海市蜃楼——看上去很美,但一点都不真实。
他认为,系统就是把复杂的东西变得有序易用。而在计算机领域,系统的重要性是不言而喻的,在整个计算机发展的过程当中,我们感受到的每一次大的突破,背后实际上都有很多计算机系统的理论和设计作为推动力。
周博士分析了每一个时代下,系统的重要性:
-
互联网时代,有很多非常新的系统出现在我们的生活中,其中最有代表性的一个系统就是搜索引擎。大家很多人都用搜索引擎搜索网上的信息,而搜索引擎背后就有很多系统领域的技术、理论。其中一个典型的系统理论就是分布式系统理论。
-
在大数据或者说大家都熟知的云计算时代,云计算的系统就是非常典型的系统。现在我们看到很多公司都在提供云计算的服务。这里就用到了一些新的计算机系统的技术,其中有虚拟机技术、容错技术等,因为这些技术才使得这样的服务和系统成为了可能。
-
如今的人工智能时代,我们看到越来越多深度学习在计算机视觉、语音识别、自然语言等领域都取得了突破,这就对系统产生了更大的需求。我们研究开发了很多大规模深度学习的平台,这其中也依托了最近在系统方面的进展和研究成果,包括怎么利用异构的硬件高效地执行这些深度学习的任务,也包括怎么进行高性能的并行计算。这些使得深度学习,特别是非常有深度的模型的处理成为可能。
周博士说:“我们还可以设想,
未来量子计算将成为主流的技术。
但是我们也可以看到,
现在在系统方面的发展还没有到能够让它付诸实用的阶段。
虽然理论上很成熟了,但若要变成现实,还需要在系统方面进行很多创新、研究、实践,才能促成这一步大的变革。”
深度学习的瓶颈
在演讲中,周博士提到了深度学习目前已经取得进一步的发展,但还是会遇到一些瓶颈,而且很多瓶颈还是产生在系统方面。他说:“现在,即便我们有很多不同的硬件加速,有很多不同的模型,我们能怎么解决把这个模型非常高效地映射到相应的硬件上,并且有不同定制的优化呢?整个深度学习领域里面的工作目前其实都是人工去做的,而不是用系统化的方法去完成的。”
此外,进行深度学习模型训练的时候,开发者们一般使用
GPU
来进行加速,当训练样本只有百万级别的时候,单卡
GPU
通常就能满足我们的需求,但是当训练样本量达到上千万、上亿级别之后,单卡训练的耗时会很长,所以这个时候通常需要采用多机多卡进行加速。在这种情况或者一些更复杂的情况下,我们就需要很多系统方面的设计和考虑。人工智能的实践者不用再担心是不是需要自己架一个
GPU
集群才可以做人工智能的事情。因为这是系统应该完成的事情,周博士说:“我们应该把这些事情都做了,那么人工智能方面的研究者就能被解放出来专注研究人工智能的问题了。”
人工智能领域的门槛非常高,所以人工智能从业者的身价也非常高。这也是因为系统层面的很多工作还不够深入。
周博士表示,他们推进自己的工作,就希望能够把这个门槛降低,真正做到
“人工智能普及化”。
这将是非常可行、且必行的下一步工作。
微软的智能系统
周博士认为:系统最关键的创新,就是把抽象实现的非常完美。用户其实“看不到”系统,大家谈起来,似乎看到的都是视觉等上层的突破,永远看不到下面底层的进步。所以我们一直说,
系统的最高境界就是完全不可见的,是隐形的
。
他告诉我们:微软一直认为,
未来,整个世界就是一台计算机。
现实世界也好,虚拟世界也罢,所有这些部分都将连接在一起。
周博士说:“微软亚洲研究院对系统这个领域的理解是:首先,
系统是一个跨领域、有广度的研究,
我们需要对从底层的硬件一直到上层的应用,包括人工智能这样新的应用,都有非常广博的了解,这样才能够设计出适合应用的系统。其次,编译器原理、编译优化、数据库系统这些领域,我们也都需要有深入了解,这样才能够通过合理的系统设计充分利用硬件的能力,也就是说,
系统方面的研究也一定要有深度,
这也是非常重要的。”
据介绍,微软亚洲研究院系统领域的研究成果在现实的商业场景中已经有了广泛的应用,并产生了实际的商业效能,例如:
-
GraM
分布式并行图处理引擎,
能够在内存里面通过集群处理具有超过
10
亿条边的图;
-
Apollo
大数据任务调度系统,
可以直接部署在
10
万台机器上,
每天能够调度
几百万条的任务,
用来支持搜索引擎、广告等部门的日常业务;
-
StreamScope
分布式流数据处理平台,
能够实时处理数十亿的广告信息;
-
KV-Direct Key/Value
系统,
可处理每秒
12
亿次以上的操作,相比同类最前沿的研究系统有至少一个数量级的提升。
虽然这个系统还没有得到部署,但它是微软目前研究的最前沿的一个代表,发表在计算机系统的顶级会议
SOSP 2017
。这些只是冰山一角,据说微软在智能系统方面的探索远不止于此,智能时代的微软似乎拥有着更多的可能性。
最后,周博士表达了他个人对智能系统发展趋势的一些看法:
首先,现在很多深度学习的框架,将来都将互通统一。
其实数据库就是一个很好的例子——很久以前有各种各样的数据库,但最后大家发明了所谓的以
Relational algebra
(关系代数)为基础的数据库,让所有数据库模型都成为一种统一的模型。在人工智能方面,这种互通的统一性,从系统角度来说也是肯定会发生的一件事情。
其次,系统的能力会越来越强,会有无界的资源。
整个世界就是一台计算机,所以我们最后希望能够达到的目标就是,在资源无界的环境里,你所使用的资源,无论是来自于计算中心还是来自于自己的计算机,甚至是来自于一个不知道是什么的地方,都会被系统很好地隐藏起来。你只要把事情做好,而不用关心资源是从哪里来的。