用語集

ONNX(オープン・ニューラル・ネットワーク・エクスチェンジ)

ONNXがどのようにAIモデルの移植性と相互運用性を強化し、多様なプラットフォームでUltralytics YOLOモデルのシームレスな展開を可能にしているかをご覧ください。

急速に進化する人工知能(AI)や機械学習(ML)の分野では、異なるツールやプラットフォーム間でモデルを効率的に移動することが極めて重要です。ONNX(Open Neural Network Exchange)は、AIモデルのために特別に設計されたオープンソースフォーマットを提供することで、この課題に取り組んでいる。開発者は、PyTorchのような1つのフレームワークでモデルを学習し、TensorFlowのような別のフレームワークや推論エンジン、あるいはONNX Runtimeのような特殊なランタイムを使用してモデルをデプロイすることができます。この相互運用性により、研究から生産までの経路が合理化され、AIエコシステム内でのコラボレーションと柔軟性が促進される。ONNXは当初、Facebook AI Researchと Microsoft Researchによって開発され、現在では盛んなコミュニティ・プロジェクトとなっている。

ONNXの関連性

ONNXのコアバリューは、次のことを推進することにある。 移植性と相互運用性 AI開発ライフサイクルの中で開発者は、特定のフレームワークのエコシステムに縛られるのではなく、ONNXを活用することで、異なるツールやハードウェアプラットフォーム間でモデルを自由に移動させることができる。共通の演算子セット(の構成要素)を定義することで ニューラルネットワーク)と標準ファイル形式(.onnx)、ONNXはモデルの構造と学習されたパラメーター(ウェイト)が一貫して表現されている。これは ウルトラリティクス YOLO Ultralyticsは、次のような簡単な方法を提供している。 モデルをONNX形式にエクスポート.このエクスポート機能により、ユーザーは次のようなモデルを作成することができます。 YOLOv8 または最新の YOLO11 そして、さまざまなハードウェアやソフトウェア・プラットフォーム上にそれらを展開し、多くの場合、最適化された 推論エンジン パフォーマンスと ハードウェアアクセラレーション.

ONNXの仕組み

ONNXは、いくつかの重要な技術的特徴によって相互運用性を実現している:

  • 共通のモデル表現:ONNXは、畳み込みや 活性化関数などの計算グラフ演算子の標準セットと、共通のデータ型システムを定義している。ディープラーニングモデルがONNXに変換されると、そのアーキテクチャとパラメータはこの共有表現に変換されます。
  • グラフベースの構造:ONNXのモデルは計算グラフとして表現される。グラフのノードは演算(行列の乗算やReLU関数の適用など)を表し、エッジはこれらの演算間のデータ(テンソル)の流れを表す。このグラフ構造は多くのMLフレームワークで共通であり、変換を容易にします。
  • バージョン管理システム:ONNXは演算子セット(オペセット)のバージョンを管理しています。これにより後方互換性が確保され、古い演算子セットで作成されたモデルでも、そのバージョンをサポートする新しいランタイムで実行することができます。
  • 拡張性:ONNXはコアとなる演算子セットを定義しているが、カスタム演算子も可能で、フレームワークやハードウェアベンダーが特殊な機能をサポートできるようにしている。
  • エコシステムとツール:様々なフレームワーク(PyTorchや TensorFlowなど)からモデルを変換するためのライブラリ、ONNXグラフを可視化しデバッグするためのツール、異なるハードウェア(CPUGPU、専用アクセラレータ)にまたがって高性能な推論を行うために最適化されたONNX Runtimeのようなランタイムなど、ONNXの周りには豊かなエコシステムがあります。

ONNXの用途

ONNXは、模範的なトレーニング環境と多様な配備先をつなぐ重要な橋渡し役となる。具体例を2つ紹介しよう:

  1. コンピュータビジョンモデルのエッジデバイスへの展開:開発者は、GPUを搭載した強力なサーバー上でPyTorchを使用して、Ultralytics YOLOモデルなどの物体検出モデルをトレーニングする。リソースに制約のあるエッジデバイス(スマートカメラやドローンなど)に展開するために、開発者はモデルをONNX形式にエクスポートします。このONNXファイルは、NVIDIA TensorRTや IntelのOpenVINOのようなツールを使って最適化され、デバイス上で直接、効率的なリアルタイムの推論を行うことができる。この柔軟性は、様々なモデル展開オプションで強調されています。Ultralyticsのソリューションは、さまざまな業界の事例をご覧いただけます。
  2. クロスフレームワークのコラボレーションとデプロイメント:ある研究チームがTensorFlowを使って新しいモデルアーキテクチャを開発する。別のチームは、このモデルをPyTorchで構築された既存のアプリケーションに統合したいと考えています。TensorFlowモデルをONNXにエクスポートすることで、2つ目のチームは、元のTensorFlowフレームワークを必要とすることなく、PyTorch環境内で簡単にロードして使用したり、標準化されたONNX Runtimeを使用して、さまざまなサーバ構成(クラウドまたはオンプレミス)にデプロイしたりできます。これにより、モデルの提供や統合が容易になります。

ONNXと関連概念との比較

ONNXを関連用語と区別することは重要である:

  • フレームワーク固有のフォーマット: PyTorchのようなフォーマット .pt/.pth または TensorFlowのSavedModel は、それぞれのフレームワークにネイティブです。ONNXは仲介役として機能し、これらのフォーマット間の変換や、共通のランタイムを介したデプロイを可能にします。 トーチスクリプト は PyTorch モデルシリアライズの別のフォーマットで、ONNX エクスポートの代替または前段階として使われることがあります。
  • 推論エンジン/ランタイム: ONNX RuntimeTensorRTOpenVINOなどのツールは、MLモデルを効率的に実行するために設計されたソフトウェアライブラリです。これらのエンジンの多くはONNXモデルを利用することができ、多くの場合、特定のハードウェアターゲットに対してさらなる最適化量子化やグラフ融合など)を適用することができる。ONNXはこれらのエンジンに標準化されたモデル入力を提供します。

要約すると、ONNXは機械学習オペレーション(MLOps)パイプラインの柔軟性と相互運用性を確保するために不可欠な標準であり、開発者がフレームワークの制約に縛られることなく、トレーニングとデプロイメントに最適なツールを選択できるようにする。Ultralytics HUBのようなプラットフォームは、このようなフォーマットを活用することで、モデル開発から実世界への適用までの道のりを簡素化します。

Ultralyticsコミュニティに参加する

AIの未来に参加しませんか。世界のイノベーターとつながり、協力し、成長する

今すぐ参加する
クリップボードにコピーされたリンク