検索
ニュース

MicrosoftとFacebook、AIモデルの相互運用性を実現する共同プロジェクト「ONNX」を発表ディープラーニングフレームワーク間で共通のモデル表現が可能に

MicrosoftとFacebookが、AIモデルの相互運用性を実現するオープンソースプロジェクト「ONNX(Open Neural Network Exchange)」を共同開発したと発表。GitHubで公開した。

Share
Tweet
LINE
Hatena

 MicrosoftとFacebookは2017年9月7日(米国時間)、異なるディープラーニングフレームワーク間でAI(Artificial Intelligence:人工知能)モデルの相互運用性を実現する共同プロジェクト「ONNX(Open Neural Network Exchange)」を発表した。

 ONNXは、Microsoftのディープラーニングツールキット「Cognitive Toolkit(旧称CNTK)」をはじめ、オープンソースのディープラーニングフレームワークである「Caffe2」「PyTorch」などをサポートする。

 ディープラーニングフレームワークは、ニューラルネットワークを表現する計算グラフの作成、実行を容易にするインタフェースを開発者に提供する。それぞれのフレームワークはその点で機能的には似ている。しかし、それぞれ固有のフォーマットでこうしたグラフを表現することからAIモデルに互換性はなく、異なるフレームワークで使うにはAIモデルの変換処理などが必要だった。

 Microsoftは、ONNXには以下2点の大きなメリットがあると説明している。

フレームワークの相互運用性

 開発者は使用するフレームワークを簡単に切り替えられ、当面のタスクに最適なツールを選べるようになる。

 各フレームワークには独自の特性がある。例えば、高速に訓練できる、柔軟なネットワークアーキテクチャをサポートしている、モバイルデバイスでの推論に適しているなどだ。

 しかし多くの場合、研究開発段階と本番環境で「最も重要」とする特性は異なる。最適なフレームワークを使わない(使えない)ことは、効率の悪化につながる。別のフレームワークを使うためのAIモデルの変換処理にもかなりの時間を要する。

 この点、ONNXで実現するフレームワークならば、AIモデルを相互に簡単に切り替えられる。アジリティ(俊敏性)の向上に大きく寄与するはずだ。

効率的な最適化

 ニューラルネットワークのパフォーマンスを高めるために最適化を行うハードウェアベンダーも多い。最適化は大抵の場合、個々のニューラルネットワークごとに行う必要があり、そのために時間もかかるが、ONNXをターゲットにすれば、一度に複数のフレームワークを対象にして最適化できるようになる。

 Microsoftは、こうしたメリットを持つONNXの技術的な仕組みを次のように解説している。

  • ONNXは、拡張可能な計算グラフモデルの定義と、ビルトインされた演算子および標準データ型の定義を提供する。当初は推論(評価)に必要な機能に重点が置かれる
  • 各計算データフローグラフは、非巡回グラフを形成するノードのリストとして構造化される。ノードは1つ以上の入力と1つ以上の出力を持つ。各ノードは演算子の呼び出しである。またグラフは、目的や作成者などの文書化に役立つメタデータも持つ
  • 演算子はグラフに対して外部的に実装されるが、ビルトイン演算子セットはフレームワーク間でポータブルである。ONNXをサポートするフレームワークは全て、適切なデータ型を扱うこれらの演算子の実装を提供する
photo GtHubで公開されたONNX

 ONNXは、コードとドキュメントの初期バージョンがGitHubで公開された。

 今後はこれを出発点として、コミュニティーの参加を得て開発を進めていく計画。Microsoftは、Cognitive Toolkitの次リリースでONNXをサポートする他、Facebookと共同で参照実装、サンプル、ツール、モデルを開発し、提供していくという。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る