来源:Azure 编辑:大明 【新智元导读】微软宣布将多平台通用ONNX机器学习引擎开源,此举将让机器学习框架,向着机器学习框架的标准化和性能优化方向迈进了一大步。此前,为了推进AI框架标准化,更好地支持PyTorch和TensorFlow等框架,微软甚至降低了对自家CNTK框架的宣传调门,可谓“用心良苦”。 当地时间12月4日,微软在GitHub上宣布ONNX Runtime开源 。 ONNX Runtime是适用于Linux,Windows和Mac上ONNX格式的机器学习模型的高性能推理引擎。 ONNX 是微软与Facebook和AWS共同开发的深度学习和传统机器学习模型的开放格式。ONNX格式是开放式生态系统的基础,使人工智能技术更易于访问,而且可以为不同人群创造价值: 开发人员可以为自己机器学习任务选择合适的框架,框架作者可以集中精力推出创新,提高框架的性能。对于硬件供应商来说,也可以简化神经网络计算的复杂度,实现优化算法。 过去20多年来,微软一直在进行人工智能研究,并将机器学习和深度神经网络整合到旗下众多产品和服务中。由于团队使用许多不同的培训框架并针对不同的部署选项,因此确实需要统一这些分散的解决方案,以便快速,简单地操作模型。 此次开源的ONNX Runtime为这个问题提供了解决方案。该工具为数据科学家在选择的框架内训练和调整模型提供了更高的灵活性,并在云端和产品设计中以高性能打造这些模型。 ONNX引擎是Windows ML组件的关键部分。微软正在将这种机器学习界面纳入到Windows 10系统中,让开发人员在自己的Windows应用程序上使用训练过的机器学习模型。 Windows ML推理引擎可以在Windows设备上对这些模型进行本地评估,开发人员无需将模型放到云中运行。 ONNX Runtime有什么用? ONNX是微软公开推出的首款推理机,完整支持ONNX 1.2和 ONNX机器学习的更高版本。这意味着ONNX Runtime直接随着ONNX的标准进步,实现对一大批AI模型和技术突破的支持。 微软的团队在使用ONNX Runtime来改善在Bing搜索、广告、Office产品套件等核心业务中的评分延时,提高运行效率。而对于由其他工具转而使用ONNX的模型,其平均表现提升了2倍。此外,微软的其他一些服务,如Windows ML 和ML.net等,也纳入了ONNX Runtime支持的业务之中。 ONNX Runtime在设计上是轻量级和模块化的,CPU的构建只有几M字节。可扩展架构、优化硬件加速器,降低计算延时,提升计算效率。 英伟达、英特尔、高通等巨头纷纷支持 很多业界领先的企业都在积极将自己的技术与ONNX Runtime实现集成和整合,使自己的服务能够完整支持ONNX规范,同时实现性能的最优化。 微软和英特尔正在合作,将nGraph编译器集成为ONNX Runtime的执行提供程序。nGraph编译器能够通过应用非设备特定和设备特定的优化来实现现有和未来的硬件加速。与原生框架相比,使用nGraph Compiler执行CPU推理任务可将性能提升45倍。 英伟达正在努力将TensorRT与ONNX Runtime实现整合,为在英伟达的GPU上部署快速增长的模型和应用程序提供简便的工作流程,同时实现最佳性能。 NVIDIA TensorRT包括一个高性能的推理优化器和运行时,可以在推荐器,自然语言处理和图像/视频处理等应用程序中以最小的延迟提供极高的吞吐量。 ONNX的另一个早期支持者是高通,也支持ONNX Runtime。高通AI业务高级主管Gary Brotman表示:“ONNX Runtime的推出和开源是微软提升跨设备类别框架的互操作性,实现标准化和性能优化的积极一步,我们希望开发人员欢迎在骁龙移动平台上支持ONNX Runtime。 业内领先的物联网芯片制造商恩智浦(NXP)最近也宣布支持ONNX Runtime。“我们希望,用户在众多机器学习框架中进行选择时能够拥有最大的灵活性和自由度。” 恩智浦AI技术中心负责人Markus Levy表示。“我们很高兴能够通过支持微软在我们的平台上发布ONNX Runtime,让机器学习开发者客户群能够享受ONNX带来的好处。” 如何使用ONNX Runtime - 首先,你需要建立一个ONNX模型。没有ONNX模型?没问题。ONNX的优点就是能够通过众多工具实现框架的互操作性 。你可以直接从ONNX Model Zoo获得ResNet和TinyYOLO等热门模型的预训练版本。
- 你还可以使用Azure Custom Vision Cognitive Service创建自己的自定义计算机视觉模型。 如果已经拥有TensorFlow、Keras、Scikit-Learn或CoreML格式的模型,可以使用我们的开源转换器(ONNX MLTools和TF2 ONNX)进行转换。
- 可以使用Azure机器学习服务训练新模型并保存为ONNX格式。
- 要使用ONNX Runtime,只需安装所需平台和所选语言的软件包,或者从源代码创建。ONNX Runtime支持 CPU 和 GPU (CUDA) 以及兼容Linux、Windows和Mac上的Python、C#和C接口。具体的安装说明可以在GitHub中获取。
- 你可以直接从源或预编译的二进制文件将ONNX Runtime集成到代码中,一种简单的操作方法是使用Azure机器学习为应用程序部署服务,以待调用。
|