智东西(公众号:zhidxcom)
文 | 心缘
智东西11月27日消息,继昨日微软第一次在中国举办ONNX合作伙伴研讨会后,今天,智东西同少数媒体一起采访了微软项目总经理Venky Veeraraghavan和微软人工智能平台团队首席项目经理Prasanth Pulavarthi,深入了解了ONNX开源项目的进展和在中国的推广情况、微软为推动ONNX所做出的贡献以及微软Azure在AI方面的布局。
▲微软项目总经理Venky Veeraraghavan(图左)和微软人工智能平台团队首席项目经理Prasanth Pulavarthi(图右)
ONNX(Open Neural Network Exchange)“开放神经网络交换”项目,由微软和Facebook在2017年9月联合推出,旨在实现不同神经网络开发框架之间的互通互用,为开发者和数据科学家进一步降低开发门槛,并帮助硬件厂商适配最合适的开发框架来实现最佳优化。
一、ONNX将加大在中国的推广力度
去年9月,微软和Facebook、AWS共同创办ONNX开放开放神经网络交换格式后,这个开放AI生态系统在短短一个月间迎来了AMD、ARM、华为、IBM、英特尔、高通等行业领军企业的加盟。
随着阿里巴巴、腾讯、华为、百度等中国企业陆续加入ONNX,如今,支持ONNX的全球企业已经超过20家。
微软项目总经理Venky Veeraraghavan认为,ONNX扮演了非常好的桥梁作用,可以将诸如微软的国外科技公司在软件方面的能力与中国公司所擅长的在硬件的能力有机结合起来,让任何深度学习框架在任何硬件设备上都能运行。
众所周知,深度学习会涉及到海量数据,这就对有高速的硬件极高的需求。在拥有非常专业的硬件后,开发人员可能会对很多不同的接口、界面、格式等感到困惑,而ONNX不仅可以帮助他们更方便地实现不同开源框架间的切换,而且可以在云端、本地PC机、IoT边缘设备、移动终端上发挥作用。
Venky Veeraraghavan告诉记者,中国对微软来说非常重要,微软需要的这个开源标准如果仅仅是美国的标准,而没有得到中国的认可和采纳,那它将是没有意义的。
AI需要一套统一的开放标准,在此之后将这个标准不断铺陈开来,这个过程需要大量从事相关工作的公司和人员来共同支持,并积极参与相关的开发工作,而大量的相关工作目前都在中国开展。
▲微软项目总经理Venky Veeraraghavan
微软希望借此机会将中国本地的合作伙伴和客户吸引到大联盟之下,最终可以为整个AI世界搭建一个统一、开放的平台,让包括中国企业在内的各方都有机会真正参与进来。
其中云是很重要的组成部分,微软认为Azure只是云服务商之一,他们希望阿里云、亚马逊AWS也等更多重要的云平台也都参与进来。
此外,中国有巨大的开源社区,尽管ONNX在中国还是起步阶段,但从本周的ONNX合作伙伴研讨会起,微软将逐步加大在中国的工作力度, 在推广、宣传、教育等方面会有更多的投入。
二、每2-4个月更新ONNX,解决行业实际问题
微软希望让ONNX在技术上做到支持每个框架的出发点是解决微软和Facebook、AWS等客户共同存在的一些的实际问题和挑战,不是简单将单一模型或框架转化或拼接在一起,而更多的是从视觉、语音、语言等领域的角度来划分,对其进行转化以找到最好的模型,还会继续支持新的运算符。
通过ONNX,开发者可以将在PyTorch上训练的模型直接移植到到MXNet上进行推理运算,促使开发者的AI工具选择更加灵活方便。
目前,在多种AI开发框架中都能创建ONNX模型,包括PyTorch、Chainer、微软认知工具包(CNTK)、MXNet、ML.Net、TensorFlow、Keras、SciKit-Learn,这个列表还在不断增加。
ONNX还支持一些更高级别的运算符,比如说LSTM、GRU这些主要集中在语音和语言方面的非常领先的运算符。
此外,为ONNX模型实现可视化和加速的开发工具生态系统也已初具规模,已经出现了针对典型场景预先训练的ONNX模型。
ONNX的具体规格一直在基于新的开发工作和新的客户需求而持续演进。每2到4个月,ONNX会进行更新升级,添加新的运算符,使得用户可以创建新的模型,所以微软在未来会继续从事这方面的工作,继续创造出新类型的模型。
这些工作并非微软凭借一己之力,更多是整个社区各成员的共同贡献。Venky Veeraraghavan如实说道,现在ONNX还不能解决所有问题,但它正在快速成熟中。随着市面上越来越多模型的出现和越来越多客户使用,更多的学习、反馈与总结将推进ONNX的发展。
▲微软人工智能平台团队首席项目经理Prasanth Pulavarthi
当被问及ONNX目前存在的局限性,Prasanth Pulavarthi自信地回复到,他本人对ONNX的进展情况非常满意,通常此类的标准的真正瓶颈在于没有在产品中部署,但微软的生态系统中很多公司的产品都部署了ONNX,比如该标准在英伟达TensorRT、高通骁龙产品中均得到了有效使用,因此ONNX不存在这个问题。
尽管谷歌一直没有加入ONNX联盟,Venky Veeraraghavan表示,微软认为AI发展的未来毫无疑问会依赖开放的标准,微软已和谷歌做了充分的沟通,也把自己的一些计划和想法向他们分享过。不过目前为止,谷歌决定暂时不会积极的参与到ONNX工作当中。
但他相信,随着时间推移 ,ONNX的优点会凸显出来,到时候再看谷歌是否愿意改变他的决定加入进来。
三、开放预览ONNX Runtime,全力支持ONNX发展
微软不仅是ONNX的联合创始人,也是推动ONNX发展的技术贡献者和受益人。比如,Windows机器学习(WinML)为ONNX提供了操作系统层面的支持,可利用任何支持DirexctX的GPU来提供硬件加速,现在从服务器到物联网的各个版本的Windows都能提供这项功能。
除了赋能合作伙伴,微软也会在对内着重确保相关工作对解决内部问题有帮助。微软旗下的Bing搜索引擎、语音、广告平台、Office、视觉服务等主流产品基本上后台都在使用ONNX进行测试,确保这套标准能够支持最为复杂的模型,同时在硬件平台上有出色的性能表现。
微软还在内部使用了2周前发布的ONNX Runtime预览版,发现和本地框架相比,其性能提升了2倍。
现已开放预览的ONNX Runtime是专为ONNX格式机器学习模型设计的高性能推理引擎,兼容ONNX 1.2版本,自带支持CPU和GPU的Python包,可在Azure机器学习服务或任何运行Ubuntu 16的Linux设备上进行推理运算。
ONNX Runtime全面覆盖和支持ONNX定义的所有运算符,能快速适应软硬件的改进,为一系列不同平台和硬件的组合提供多种定制化的加速器,从而保证为推理运算提供最佳的整体性能表现。
目前,英特尔、英伟达都在积极将ONNX Runtime整合到他们的硬件加速器中,英特尔的MKL-DNN、nGraph编译器和英伟达优化的TensorRT推理引擎都已完成整合。
除了ONNX Runtime,支持web开发者直接在浏览器中运行ONNX模型的ONNX.JS也已经推出。ONNX.JS既可以减少服务器到端的通信需求,保护用户隐私,还提供免安装、跨平台的浏览器内置机器学习体验。
此外,ONNX.JS支持CPU和GPU的运行,可通过一系列优化技术减少CPU、GPU间的数据运输,减少GPU处理的循环次数,将性能推到最大化。
四、Azure提供全面AI生产力,手把手教开发者用AI
当前微软主要提供三大品类的AI相关业务,即基于AI基础设施(AI Infrastructure)、AI服务(AI Services)以其包括ONNX在内的AI工具(AI Tools),分别面向数据科学家等精通算法者、软件工程师等需要直接调用AI服务的人和开发者。
在推动ONNX建设开放的AI生态系统的同时,微软也在着力将Azure打造成出色的AI云平台。
1、中国将在明年集齐微软三朵“云”
在微软Azure的一系列AI服务中,Venky Veeraraghavan表示,最受开发者青睐的是认知服务和Bots服务。
认知服务提供自有的数据和模型来获取语音、文本、视觉等认知方面的能力,这个领域的开发者和数据科学家通常比较活跃。
另一个最受欢迎的服务是对话机器人(Bots),比如Windows系统中的微软小娜(Cortana)语音助手,再比如很多公司使用Bots服务在自己的网站上做客服服务。
就在今年9月举办的微软Ignite2018大会上,微软将Azure机器学习服务中的一些新服务开启预览,比如自动机器学习和超参数调整服务、分布式深度学习服务、硬件加速推理服务、全新的Python SDK和模型管理功能。这些服务将帮助开发者更高效快速地运行深度学习项目。
Venky Veeraraghavan表示,很快大家会看到一个通用版本正式发布出来。该平台将能够支持开放的标准,可以在云上或在IoT边缘终端上部署,并且在部署之后,能对于整个模型的运算进行有效的管理。
除了Azure,微软还有另外两朵“云”,分别是Office365和Dynamics 365这两款云端SaaS服务。目前微软已宣布2019年春天Dynamics 365将落地中国,这意味着中国将在明年集齐微软三朵“云”。
2、从桌面到云端AI的三大挑战
从桌面的机器学习向云端的深度学习和人工智能进行转移,Venky Veeraraghavan认为其客户主要面临的三个挑战:
第一,在用户战略层面上,客户要有专门机器学习的战略,来指导机器学习如何能够真正落地到真实的商业应用场景当中。
第二,如果说客户要采纳基于云的机器学习的解决方案,这个客户本身也需要在云上。
第三,在人力资源方面,整个行业需要培训大量的数据科学家,这些数据科学家不仅知道具体商业应用场景需要什么样的模型,同时又要能较好的了解到在具体商业运作中要解决的问题是什么。
3、一年培养10万余名AI人才
除了推进云和人工智能的业务,微软也在着重AI人才培养。在今年5月21日的微软AI大会上,微软推出了在线人工智能学院,目标是一年内培养出10万余名人工智能人才。
该学院将免费提供包括AI基础、核心技术和高阶应用在内的总共250课时的12门AI课程,覆盖10项应用技能。完成课程学习的用户,还可申请微软专业学位课程(MPP,Microsoft Professional Program)作为职业技能认证。
除此之外,微软亚洲研究院和中科大、清华等高校有六校联盟计划,为学校里从事AI研究的相关的学者和学生搭建一个可以在开源层面上利用的开源平台。
为了帮助更多人掌握Microsoft Azure的全部产品和应用场景,微软还在近日上线了Microsoft Learn全新交互式学习平台,将免费提供所有Azure相关服务的在线教程,引导用户从入门到熟练掌握Azure的所有功能和操作。
结语:ONNX是迈向开放式AI生态系统的重要一步
除了微软之外,国外苹果、亚马逊、谷歌、Facebook以及国内的百度、腾讯、阿里巴巴等公司,均将AI作为公司发展的关键战略,并纷纷争做AI技术的推动着和赋能者,当前Tensorflow、PyTorch、Caffe、MXNet、Cognitive Toolkit等常用的深度学习框架背后几乎各是一个科技巨头。
正如文中所述,ONNX项目的推出,能够为开发者和数据科学家提供更方便高效的开发体验,满足各硬件厂商对软件框架适配性的诉求。尽管ONNX较之真正的“互通互用”还有一定距离。随着我国更多科技公司的加入,我们不妨期待真正统一标准的AI时代的到来。