Open Neural Network Exchange ( ONNX ) [ ˈɒnɪks ] [ 2 ] は、機械学習アルゴリズムとソフトウェアツールを表現するためのオープン スタンダードを確立し、機械学習モデルを表現するための標準フォーマットを可能にする、テクノロジー企業と研究機関からなるオープンソースの人工知能エコシステム[ 3 ] です。ONNX はGitHubで入手できます。
ONNXは元々Toffee [ 4 ]という名前で、 FacebookのPyTorchチームによって開発されました。[ 5 ] 2017年9月にONNXに改名され、FacebookとMicrosoftによって発表されました。[ 6 ]その後、IBM、Huawei、Intel、AMD、Arm、Qualcommがこのイニシアチブへの支持を発表しました。[ 3 ]
2017年10月、マイクロソフトは、同社のCognitive ToolkitとProject Brainwaveプラットフォームをこのイニシアチブに追加すると発表した。[ 3 ]
2019年11月、ONNXはLinux Foundation AIの大学院プロジェクトとして採択されました。[ 7 ]
2020年10月、Zetane SystemsはONNXエコシステムのメンバーとなった。[ 8 ]
この取り組みの目標は以下のとおりです。
開発者が機械学習モデルを異なるフレームワーク間で移動できるようにする。これは、トレーニング、アーキテクチャ設計、モバイルデバイスへの展開など、開発プロセスのさまざまな段階で使用される可能性がある。[ 6 ]
ハードウェアベンダーや他の開発者が、複数の機械学習フレームワークにわたって人工ニューラルネットワークモデルに最適化を適用するために使用できる共通の表現を提供する。[ 6 ]
ONNXは、推論(評価)に重点を置いた、拡張可能な計算グラフモデル、組み込み演算子、標準データ型の定義を提供します。 [ 6 ]コンテナ形式はProtocol Buffersです。[ 9 ]
各計算データフローグラフは、非巡回グラフを形成するノードのリストです。ノードには入力と出力があります。各ノードは演算子への呼び出しです。メタデータはグラフを文書化します。組み込み演算子は、各 ONNX サポートフレームワークで利用可能になります。[ 6 ]
ONNX モデルは、PyTorch やTensorFlowなどの単一のフレームワークでトレーニングし、ONNX にエクスポートできます。この形式により、モデルをトレーニング フレームワークからテストやデプロイのために他の環境に転送できます。モデルが ONNX 形式になると、さまざまなランタイム システムや、GPUや専用の AI アクセラレータなどのさまざまなハードウェア プラットフォームで実行できます。共通の形式を使用することで、同じモデル表現を複数のシステムやフレームワークで使用できます。[ 10 ]