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形式に変換し、推論を高速化できます。