ONNXがどのようにAIモデルの移植性と相互運用性を強化し、多様なプラットフォームでUltralytics YOLOモデルのシームレスな展開を可能にしているかをご覧ください。
ONNX(Open Neural Network Exchange)は、機械学習(ML)モデルを表現するためのオープンソースフォーマットである。マイクロソフトやフェイスブックなどの企業によって共同開発されたONNXは、開発者が異なるMLフレームワークやツール間でモデルを移動できるようにする、ユニバーサルなトランスレーターとして機能する。この相互運用性は、モデル開発から生産までの道のりを合理化するために極めて重要である。単一のエコシステムに縛られる代わりに、チームはPyTorchのような1つのフレームワークでモデルを訓練し、TensorFlowや特化した推論エンジンのような別のフレームワークを使って推論のためにデプロイすることができます。例えば、UltralyticsのYOLOモデルは、ONNXフォーマットに簡単にエクスポートすることができ、様々なプラットフォームへのデプロイに最大限の柔軟性を提供します。
ONNXは、組み込み演算子のリストとともに、計算グラフの標準的な定義を提供します。モデルをONNXフォーマットに変換すると、そのアーキテクチャ(層と数学演算で構成)はこの普遍的な標準にマッピングされる。その結果 .onnx
ファイルには、ネットワーク構造と学習された モデルウェイト.
この標準化されたファイルは、ONNX仕様に対応したあらゆるツールで読み込むことができます。これには以下が含まれる:
ONNXの柔軟性は、多くのコンピュータビジョンやMLシナリオにおいて非常に貴重なものとなっている。
エッジデバイスへのAIの展開:開発者は、NVIDIA GPUを搭載した強力なデスクトップ上でUltralytics YOLO11のような複雑な物体検出モデルをトレーニングすることがあります。このアプリケーションをRaspberry Piや 小売分析に使用されるスマートカメラのような低消費電力のエッジデバイスで実行するには、モデルをONNXにエクスポートします。その後、ONNX RuntimeやOpenVINOのようなランタイムで最適化することで、元のPyTorch環境を必要とせずに、ターゲットハードウェア上で効率的なパフォーマンスを実現できます。
多様なアプリケーションへのモデルの統合:PythonとTensorFlowを使って医療画像解析モデルを構築しているヘルスケア企業を考えてみよう。この病院の既存のソフトウェアインフラストラクチャは、C#と.NETを使用して構築されています。このチームは、モデルを書き直す代わりに、ONNXにエクスポートします。C#アプリケーションは、ONNX Runtime for .NETを使用してモデルの機能を直接統合できるため、開発時間と複雑さを大幅に削減できます。
ONNXを関連用語と区別することは重要である:
.pt
または TensorFlowのSavedModel は、それぞれのフレームワークにネイティブです。ONNXは仲介役として機能し、これらのフォーマット間の変換や、共通のランタイムを介したデプロイを可能にします。 トーチスクリプト は PyTorch モデルシリアライズの別のフォーマットで、ONNX エクスポートの代替または前段階として使われることがあります。要約すると、ONNXは機械学習オペレーション(MLOps)パイプラインの柔軟性と相互運用性を確保するために不可欠な標準であり、開発者がフレームワークの制約に縛られることなく、トレーニングとデプロイメントに最適なツールを選択できるようにする。Ultralytics HUBのようなプラットフォームは、このようなフォーマットを活用することで、モデル開発から実世界への適用までの道のりを簡素化します。詳細については、ONNXの公式ウェブサイトをご覧いただき、GitHubでプロジェクトを検索してください。