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.

外部鏈接

編輯