找回密码
 立即注册
科技快报网 首页 数码 智能设备 查看内容

爱Linux的微软,一手打造了深度学习开放联盟ONNX

2018-11-30 12:19:00 来自: 搜狐网

如今的微软已经一跃成为全球市值最高的高科技公司之一。2018年11月底,微软公司市值曾两次超越了苹果,成为全球市值最高的公司,之后也一直处于与苹果胶着的状态。市场惊叹微软是一家有能力改造自己并取得成功的公司!自微软CEO萨堤亚·纳德拉于2014年2月上任以来,微软就处于稳定复苏的状态中,而纳德拉上任之后最震惊业界的举动之一就是对外宣布微软爱Linux。如今,继Linux之后,微软更爱下一个“操作系统”:ONNX。

ONNX(Open Neural Network Exchange)是2017年9月由微软与Facebook、AWS共同创立的开放神经网络格式交换计划,其目的是提高神经网络软件之间的互操作性,也就是可以用不同的神经网络框架开发软件,但经过ONNX的格式交换后就可以转换成通用软件运行在Windows、Linux以及苹果OS硬件及云服务之上。ONNX吸引了AMD、ARM、NVIDIA、INTEL、高通、华为、HPE、IBM等芯片及服务器巨头,以及百度、腾讯、阿里等互联网巨头,还有MathWork、CEVA、Synopsys等专业软件和集成电路公司等20家全球企业。

2018年3月,微软宣布将在下一个Windows版本中原生支持ONNX硬件加速功能,这把ONNX推向了上亿的Windows设备,包括IoT边缘设备、HoloLens、2合1笔记本以及桌面PC等。这意味着数据科学家和开发者用Facebook、AWS、BAT等公司的深度神经网络框架所开发的模型,可以直接部署到上亿的Windows设备中。ONNX还原生支持Linux Ubuntu虚机、Azure ML服务、Windows Server 2019虚机,并通过转换程序连接苹果等设备。

2018年11月26日,ONNX研讨会首次来到中国。微软项目总经理Venky Veeraraghavan在2018 ONNX中国研讨会后接受采访时表示:AI想要成功,必须要软件和硬件两手抓,两手都要硬。这可以类比商用操作系统的思路:一处开发的应用软件,可以处处运行在不同硬件上。

打通人工智能落地最后一公里

(微软项目总经理Venky Veeraraghavan)

人工智能已经成为新一轮科技革命和产业变革的核心驱动力,正在对世界经济、社会进步和人类生活产生深刻的影响。普化永道曾预测,由人工智能所带来的全球GDP增长,将在2030年达到14%,即15.7万亿美元。但Gartner的2018年CIO议程调查却显示,全球仅有4%的CIO实施了人工智能项目,尽管还有46%的CIO已经开发了人工智能相关计划。

换句话说,人工智能在落地方面还遇到很多挑战,其中之一就是不同深度神经网络框架之间缺乏互操作性。简单理解,用一种深度神经网络框架训练出的模型,并不能直接用在其它神经网络框架所支持的运行平台(即推理平台),例如Caffe2训练出的模型仅能运行在Caffe2支持的硬件上,这相当于间接创造了人工智能的“孤岛”。而开源的神经网络框架都多少种呢?主流的开源神经网络框架至少有十余种。

除了神经网络框架之间的差异化处,神经网络软件如果想要运行的好,还需要与不同硬件系统之间的打磨。NVIDIA GPU、Intel CPU等都提供了神经网络的硬件加速功能,HPE、华为、IBM等Linux和Windows服务器以及微软的Windows设备等,都需要在芯片、板卡和操作系统及应用软件之间进行整体优化,才能达到流畅的人工智能应用运行效果。

Venky Veeraraghavan表示:“在谈到深度学习的时候,会涉及到海量的数据处理,这就意味着需要有极高速或者可加速的硬件设备。但开发者会遇到不同的硬件接口、不同的界面和不同的格式,这是很困扰的事情。ONNX在硬件和软件之间提供了通用的语言和界面,让硬件和应用软件有机结合起来,运行在任何地方。”

微软ONNX技术进展

ONNX带来的互操作性可以让各种开发创意更快速地投入生产环境。利用ONNX,数据科学家可以为其工作选择最适合的框架,而开发者花费更少的时间就能训练出适合生产环境的机器学习模型,并且将其部署到云端或者是边缘。同时,ONNX也使得开发者能更灵活地在不同框架间切换,为不同的场景选择最佳的深度学习模型。

目前,在多种人工智能开发框架中都能创建ONNX模型,包括PyTorch、Chainer、CNTK、MXNet、ML.Net、TensorFlow、Keras、SciKit-Learn,还在不断增加。此外,为ONNX模型实现可视化和加速的开发工具生态系统也已初具规模,已经出现了针对典型场景预先训练的ONNX模型。2018 年 9 月,ONNX 社区发布了 1.3 版本的模型标准。

作为ONNX的主要支持者,微软的主流产品,包括Bing、广告、Office、视觉服务等,后台都开始采用ONNX格式。2018年10月,微软发布了ONNX Runtime运行时预览版,这是一个高性能的机器学习推理引擎,可以用最有效的方式利用各种芯片加速器,从而实现跨多种硬件平台和设备运行神经网络算法的结果。

微软ONNX Runtime兼容ONNX 1.2版本,自带支持CPU和GPU的Python包,可在Azure机器学习服务或任何运行Ubuntu 16的Linux设备上进行推理运算。ONNX Runtime的发布进一步扩展了微软对ONNX的支持,除了让ONNX模型推理可以在多种平台和设备上运行外,ONNX Runtime全面覆盖和支持ONNX定义的所有运算符,能为一系列不同平台和硬件的组合提供多种定制化的加速器,从而保证推理运算的最佳性能表现。INTEL、NVIDIA都在积极将ONNX Runtime整合到硬件加速器中,目前INTEL的MKL-DNN、nGraph编译器以及NVIDIA优化的TensorRT推理引擎都已完成整合。

在2018年3月发布的Windows机器学习(Windows ML)为ONNX提供了操作系统层面的支持。通过Windows ML,开发人员可以在云服务中训练模型并将其导出为ONNX格式,之后就可以通过Visual Studio在Windows应用程序中内置ONNX模型。现在,Windows ML可利用任何支持DirectX的GPU为其提供硬件加速,从服务器到物联网的各个版本的Windows都能提供这项功能。

ONNX模型可以通过Azure 机器学习(Azure ML)、ONNX Runtime和Windows 机器学习等方式部署到Azure云中、Windows 10设备、Linux设备或使用ONNX社区提供的转换器部署到其它平台。在通过ONNX建设开放互操作人工智能生态系统的同时,微软也在将Azure打造成最佳人工智能云平台,从预先训练好的模型到帮助构建模型的云服务,Azure提供了完善的机器学习平台。

为了简化语音、视觉、语言相关机器学习解决方案的开发,微软在认知服务中提供了一系列强大的预训练模型。微软在云端提供了多样化的机器学习服务,从Azure Databricks、Azure机器学习服务

  免责声明:本网站内容由网友自行在页面发布,上传者应自行负责所上传内容涉及的法律责任,本网站对内容真实性、版权等概不负责,亦不承担任何法律责任。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。

发布者:科技君

相关阅读

微信公众号
意见反馈 科技快报网微信公众号