ONNX(英语:Open Neural Network Exchange)是一种针对机器学习所设计的开放式的文件格式,用于存储训练好的模型。它使得不同的人工智能框架(如Pytorch、MXNet)可以采用相同格式存储模型数据并交互。 ONNX的规范及代码主要由微软亚马逊FacebookIBM等公司共同开发,以开放源代码的方式托管在Github上。[2][3][4]  目前官方支持加载ONNX模型并进行推理的深度学习框架有: Caffe2, PyTorch, MXNetML.NET,TensorRT 和 Microsoft CNTK,并且 TensorFlow 也非官方的支持ONNX。

Open Neural Network Exchange (ONNX)
原作者Facebook, Microsoft
开发者Linux基金会
首次发布2017年9月,​7年前​(2017-09
当前版本1.17.0[1](2024年10月1日)
源代码库 编辑维基数据链接
编程语言C++, Python
操作系统Windows, Linux
类型人工智能生态圈
许可协议最初为MIT许可证
后改为Apache许可证2.0
网站onnx.ai/ 编辑维基数据

历史

编辑

ONNX最初被命名为Toffee[5],并且由脸书内发布PyTorch的团队开发。[6] 在2017年,ONNX第一个正式版本由脸书与微软共同发布。在此之后,IBM, 华为, 英特尔, AMD, Arm高通 都宣布计划支持ONNX。

2017年10月,微软宣布将在该计划中加入其认知工具包Microsoft Cognitive Toolkit和Project Brainwave平台。

2019年11月,ONNX被Linux基金会AI接纳为研究生课程。[7]

2020年10月,Zetane Systems成为ONNX生态系统的成员。[8]

意图

编辑

该倡议的目标是:

框架互通性

编辑

让开发人员更轻松地在框架之间移动,其中一些框架可能更适合开发过程的特定阶段,例如快速训练、网络架构灵活性或移动设备上的推理。[9]

共享优化

编辑

允许硬件供应商和其他人透过针对ONNX表示同时提高多个框架的人工神经网络的效能。[9]

ONNX Runtime

编辑

ONNX Runtime(缩写:ORT [10])是一个开源项目,旨在加速各种环境中 ONNX 模型的推理和学习[11]。无论框架、操作系统或硬件为何,ONNX模型都可以透过单一执行时间API使用[12]。它还根据部署环境自动进行最佳化[13]。 ONNX Runtime的设计策略是实现加速器运行时抽象化和效能最佳化,并透过自动划分ONNX模型并使用最佳加速器执行子模型来实现这一目标[14]

参考文献

编辑
  1. ^ Release 1.17.0. 2024年10月1日 [2024年10月22日]. 
  2. ^ onnx: Open Neural Network Exchange, onnx, [2017-09-11], (原始内容存档于2017-09-09) 
  3. ^ Microsoft, Facebook Partner on AI Framework Interoperability. 
  4. ^ Model Server for Apache MXNet introduces ONNX support and Amazon CloudWatch integration. [8 February 2018]. (原始内容存档于2019-02-17). 
  5. ^ Codemod Toffee -> ONNX, toffee -> onnx. Change file names to match · pytorch/pytorch@6d8d5ba. GitHub. [2021-10-12]. (原始内容存档于2021-10-27) (英语). 
  6. ^ A model exporter for PyTorch by ezyang · Pull Request #2565 · pytorch/pytorch. GitHub. [2021-10-12]. (原始内容存档于2021-10-27) (英语). 
  7. ^ LF AI & Data Day – ONNX Community Meetup – Silicon Valley. LF Online Community (英语). 
  8. ^ Zetane Systems Joins the ONNX Community to Accelerate Open-Source Innovation and Universal…. 14 October 2020. 
  9. ^ 9.0 9.1 Microsoft and Facebook create open ecosystem for AI model interoperability – Microsoft Cognitive Toolkit. Microsoft Cognitive Toolkit. 2017-09-07 [2017-10-11] (美国英语). 
  10. ^ "ONNX Runtime (ORT)" Welcome to ONNX Runtime (ORT). ONNX Runtime.
  11. ^ "ONNX Runtime is an open source project that is designed to accelerate machine learning across a wide range of frameworks, operating systems, and hardware platforms." About. ONNX Runtime.
  12. ^ "It enables acceleration of machine learning inferencing across all of your deployment targets using a single set of API." About. ONNX Runtime.
  13. ^ "ONNX Runtime automatically parses through your model to identify optimization opportunities and provides access to the best hardware acceleration available." About. ONNX Runtime.
  14. ^ "Design principles ONNX Runtime abstracts custom accelerators and runtimes to maximize their benefits across an ONNX model. ... ONNX Runtime partitions the ONNX model graph into subgraphs that align with available custom accelerators and runtimes." About. ONNX Runtime.

外部链接

编辑