ONNX

Open Neural Network Exchange

ONNXとは

ONNX(Open Neural Network Exchange)とは、機械学習モデルを異なるフレームワーク間で相互運用するためのオープンなファイルフォーマットです。PyTorchで学習したモデルをTensorRTで推論する、TensorFlowのモデルをONNX Runtimeで実行するなど、フレームワークに依存しないモデルの移植を可能にします。

ONNXの仕組み

ONNXは計算グラフとオペレータのセットを標準化した形式でモデルを表現します。各フレームワークはONNXエクスポーター(PyTorchのtorch.onnx.export、TensorFlowのtf2onnxなど)を提供しており、学習済みモデルをONNX形式に変換できます。ONNX形式のモデルは、ONNX対応のランタイムやハードウェアで直接実行可能です。

ONNX Runtimeの活用

ONNX Runtimeは、Microsoftが開発したONNXモデルの高性能推論エンジンです。CPU、GPU、NPUなど多様なハードウェアに対応し、グラフ最適化や量子化によって推論を高速化します。Azure Machine LearningやWindows ML、Edge環境での推論にも採用されています。

ONNXのエコシステム

ONNX Model ZooではImageNet分類、物体検出、自然言語処理などの事前学習済みONNXモデルが公開されています。Hugging FaceのOptimumライブラリを使えば、Transformerモデルを容易にONNX形式に変換し、推論を高速化できます。