マイクロソフトとフェイスブック、AI フレームワークの相互運用性を確保する仕組み「ONNX」を公開
[2017 年 9 月 7 日]
本日、マイクロソフトはフェイスブックと一緒に AI フレームワーク間の相互運用性を保つための共通フォーマット Open Neural Network Exchange (ONNX) フォーマットを発表しました。従来、深層学習モデルを開発するためのフレームワーク (Tensorflow, Caffe, PyTorch, Chainer など) は、ひとつを選択するとそこで作成したモデルは他のフレームワークへの移行ができず、深層学習モデルを開発する際の大きな課題の一つとなっていました。ONNX はこの課題を解決するために考案されました。
ONNX は Cognitive Toolkit (CNTK), Caffe2, PyTorch によってサポートされ、これらのフレームワーク間でのモデル相互運用が可能となります。ONNX はオープンソースプロジェクトとして開発されていくので、開発者コミュニティが今後この仕組みをさらに拡張していく予定です。このフレームワークが普及してくれば、今後はどのフレームワークを選択するかはあまり本質的なことではなくなっていくでしょう。
ONNX 表現とは
今日の AI フレームワークでは、ニューラルネットワークを表現する計算グラフの表現に別々のフォーマットを使っているため、お互いに互換性がありません。ONNX 表現はフレームワーク間に相互運用性を持たせ、開発者がひとつのフレームワークにロックインされ、モデルの変換や移行に取られる手間暇をなくし、よりアジャイルな開発を可能にします。同時に、ハードウェアベンダーは複数のフレームワークの最適化を同時に実施できるので、各々のフレームワークで最適化を行う時間の節約になります。
技術概要
ONNX は拡張可能な計算グラフモデルと、作り付けの演算子、標準データ型を提供します。最初は推論に必要な機能が実装されました。各々のデータフローグラフはノードのリストとしての構造を持ち、非環式グラフを形成します。ノードには 1 つ以上の入力と 1 つ以上の出力があります。各ノードは演算子を呼び出します。グラフにはメタデータが付加され、目的、著作者などの情報が記載されます。演算子はグラフの外で実装されますが、作り付けの演算子はフレームワーク間でポータブルです。ONNX をサポートする各フレームワークがこれらの演算子を適用可能なデータ型に対して実装します。
ONNXの入手先
この文章は以下の原文を要約したものです:
- 2017/9/7: Microsoft and Facebook create open ecosystem for AI model interoperability (Microsoft Cognitive Toolkit Blog)