ONNXがAIモデルの移植性と相互運用性をどのように向上させ、Ultralytics YOLOモデルを多様なプラットフォームにシームレスに展開できるようにするかをご覧ください。
ONNX(Open Neural Network Exchange)は、機械学習(ML)モデルを表現するためのオープンソース形式です。MicrosoftやFacebookのような企業によって共同開発された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#アプリケーションは、.NET用ONNX Runtimeを使用して、モデルの機能を直接統合し、開発時間と複雑さを大幅に削減できます。
ONNXを関連用語と区別することが重要です。
.pt
など)は、 TensorFlowのSavedModel は、それぞれのフレームワークにネイティブな形式です。ONNXは、これらの形式間の変換や、共通のランタイムを介したデプロイを可能にする仲介役として機能します。 TorchScript は、PyTorchモデルのシリアライズのための別の形式であり、ONNXエクスポートの代替または前段階として使用されることがあります。まとめると、ONNXは、機械学習運用(MLOps)パイプラインにおける柔軟性と相互運用性を確保するための重要な標準であり、開発者がフレームワークの制限に縛られることなく、トレーニングとデプロイメントに最適なツールを選択できるようにします。Ultralytics HUBのようなプラットフォームは、このような形式を活用して、モデル開発から実際のアプリケーションまでの道のりを簡素化します。詳細については、公式のONNX Webサイトにアクセスし、GitHubでプロジェクトを調べてください。