ONNX 合作伙伴研讨会首次在中国举行 微软全力支持开放互操作人工智能发展

ONNX 合作伙伴研讨会本周在北京微软大厦举行。这是 ONNX 开源项目成立以来,首次在中国举办落地活动。微软与本土合作伙伴一起,共同分享了 ONNX 项目的最新进展。

ONNX(Open Neural Network Exchange)“开放神经网络交换”项目是由微软共同发起、旨在为人工智能互操作及创新研究提供全面支持的开放生态系统,其目标是让人工智能更加触手可及,并为更多人创造价值。这一开放标准可以用来表示不同的机器学习模型,让人工智能开发者根据任务的需要选择最合适的开发框架,并让硬件厂商进行最佳优化。

微软项目总经理 Venky Veeraraghavan

微软项目总经理 Venky Veeraraghavan

微软希望能充分发挥人工智能的巨大潜能,帮助增强人类能力。但开发人工智能,特别是构建深度学习模型并非易事,甚至对于很多数据专家来说,这都是专业性要求极高、令人望而生畏的工作。微软相信,我们可以通过建设一个开放的人工智能生态系统,让每一位开发者,在任何平台上,利用任何语言,发挥出人工智能的最大潜力,让人工智能触手可及,并且真正为人们创造价值。为了实现这一目的,微软提供了多样化的第一方平台和工具,例如 Azure 机器学习服务,它能极大简化和加速构建、训练部署机器学习模型的过程。与此同时,微软也在敞开胸怀,与其它组织积极分享我们的愿景,共同助力人工智能社区的健康发展。

ONNX,快速成长的开放生态系统

去年 9 月,微软宣布与 Facebook、AWS 共同创立 ONNX 开放神经网络交换格式。短短一个月内,这个开放人工智能生态系统便迎来了 AMD、ARM、华为、IBM、英特尔、高通等行业领军企业的加盟。目前,已经有超过 20 家全球企业宣布支持 ONNX。

微软人工智能平台团队首席项目经理 Prasanth Pulavarthi

微软人工智能平台团队首席项目经理 Prasanth Pulavarthi

“微软在 Azure 上为开源机器学习框架提供了一等一的支持,同时我们也在与其它厂商展开广泛合作,共同推进人工智能社区的发展。”微软人工智能平台团队首席项目经理 Prasanth Pulavarthi 表示,“微软携手 Facebook 和 AWS 共同发起了 ONNX,通过支持多种机器学习模型,它将为一个开放生态打造坚实基础,让开发者和数据科学家自由选择适合任务需求的框架,让框架设计者更专注于增加创新能力,让硬件厂商更好地进行优化设计。”

ONNX 是一个开源项目,它带来的互操作性可以让各种开发创意更快速地投入生产环境。利用 ONNX,数据科学家可以为其工作选择最适合的框架,而开发者只需花费更少的时间就能训练出适合生产环境的机器学习模型,并且将其部署到云端或者是边缘。目前,在多种人工智能开发框架中都能创建 ONNX 模型,包括 PyTorch、Chainer、微软认知工具包(CNTK)、MXNet、ML.Net、TensorFlow、Keras、SciKit-Learn,这个列表还在不断增加。此外,为 ONNX 模型实现可视化和加速的开发工具生态系统也已初具规模,已经出现了针对典型场景预先训练的 ONNX 模型。

“中国是全球最具创新活力的市场之一,这里汇聚了众多才华横溢的人工智能开发者和数据科学家,还有大力支持 ONNX 的企业级合作伙伴。”微软中国人工智能产品部主管唐猛表示,“ONNX 合作伙伴研讨会第一次来到中国让我们非常兴奋,我们希望借此机会充分展示这一开放互操作人工智能生态系统的优势,并真正帮助中国的开发者和数据科学家发掘人工智能潜力,共同赢得数字化转型的发展机遇。”

微软全力支持 ONNX 发展:ONNX Runtime 和 ONNX.JS

微软不但是 ONNX 的联合创始人,同时也是全力支持 ONNX 发展的顶级技术贡献者。例如,Windows 机器学习(WinML)为 ONNX 提供了操作系统层面的支持,可利用任何支持 DirexctX 的 GPU 为其提供硬件加速,现在从服务器到物联网的各个版本的 Windows 都能提供这项功能。

ONNX Runtime 现已开放预览,这是专为 ONNX 格式机器学习模型设计的高性能推理引擎。ONNX Runtime 兼容 ONNX 1.2 版本,自带支持 CPU 和 GPU 的 Python 包,可在 Azure 机器学习服务或任何运行 Ubuntu 16 的 Linux 设备上进行推理运算。

ONNX Runtime 的发布进一步扩展了微软对 ONNX 的支持,让 ONNX 模型推理可以在多种平台和设备上运行。ONNX Runtime 全面覆盖和支持 ONNX 定义的所有运算符。出于对扩展性与性能表现的特别关注,ONNX Runtime 能为一系列不同平台和硬件的组合提供多种定制化的加速器,从而保证为推理运算提供最佳的整体性能表现。

插件式的执行者界面意味着 ONNX Runtime 可以快速适应软件和硬件的改进。执行者界面是硬件加速器向 ONNX Runtime 报告其性能的标准方式。英特尔、英伟达都在积极将 ONNX Runtime 整合到他们的硬件加速器中,目前英特尔的 MKL-DNN、nGraph 编译器以及英伟达优化的 TensorRT 推理引擎都已完成整合。

ONNX.JS 让 web 开发者可以直接在浏览器中运行训练好的 ONNX 模型,不但能够减少服务器到端的通信需求、保护用户隐私,还提供了免安装、跨平台的浏览器内置机器学习体验。ONNX.JS 支持 CPU 和 GPU 运行,可以借助一系列优化技术减少 CPU 和 GPU 间的数据传输,减少 GPU 处理的循环次数,从而将性能推向最大化。

利用 Azure 简化人工智能开发

在全力支持 ONNX 建设开放互操作人工智能生态系统的同时,微软也在全力将 Azure 打造成最佳人工智能云平台,从预先训练好的模型到帮助构建模型的云服务,Azure 提供了完善的机器学习平台。

为了简化语音、视觉、语言相关机器学习解决方案的开发,微软在认知服务中提供了一系列强大的预先训练模型。微软在云端提供了多样化的机器学习服务,从 Azure DatabricksAzure 机器学习服务机器学习虚拟机,可以满足不同规模的使用需求。为了帮助开发者更快速地构建和训练模型,微软还提供了大规模 GPU 集群上的分布式深度学习能力。硬件(FPGA)加速模型能以很低的成本提供高速的图像分类和识别功能。一旦完成了模型的训练,开发者可以自由选择将其部署到本地、云端,或者是包括离线环境在内的边缘环境中。

在不久前召开的微软 Ignite 2018 大会上,微软宣布 Azure 机器学习服务的一些新服务已经开启预览。

  • 自动机器学习和超参数调整能够更快速地分辨合适的算法、功能和机器学习管道,从而加速模型开发的成功率。
  • 分布式深度学习可以利用大规模托管 GPU 集群更快速地开发深度学习方案。
  • 硬件加速推理可将强大的 FPGA 用于高速图像分类和识别场景。支持的模型包括 ResNet 50、ResNet 152、VGG-16、SSD-VGG,以及可以用自有数据训练的 DenseNet-121。
  • 全新的 Python SDK 可以从 Visual Studio Code、Visual Studio、PyCharm、Azure Databricks 记事本或者 Jupyter 记事本等 Python 开发环境中,直接连接 Azure 机器学习服务。
  • 模型管理功能可以利用整合到持续开发/持续部署(CI/CD)管道中的模型和镜像注册表,来管理托管的容器化模型。

“借助 Azure 机器学习服务,”澳大利亚保险巨头 TAL 公司的创新总经理 Dan Talor 表示,“我们成功将机器学习模型的训练时间从原来的的两个月,减少到了只要几个小时。”

关于 ONNX 的更多信息,请访问其官方网站(https://onnx.ai/)。关于 Azure 积极学习的最新进展,请访问(https://azure.microsoft.com/zh-cn/services/machine-learning-service/)。

相关文章