YOLO26モデルのTorchScriptへのエクスポートによる迅速なデプロイ

組み込みシステム、Webブラウザ、Pythonサポートが限定的なプラットフォームなど、さまざまな環境でコンピュータビジョンモデルをデプロイするには、柔軟でポータブルなソリューションが必要です。TorchScriptは移植性に重点を置いており、Pythonフレームワーク全体が利用できない環境でもモデルを実行できます。そのため、コンピュータビジョンの機能をさまざまなデバイスやプラットフォームにデプロイする必要があるシナリオに最適です。

TorchScriptにエクスポートして、Ultralytics YOLO26モデルをシリアライズし、クロスプラットフォームの互換性と効率的なデプロイを実現します。本ガイドでは、YOLO26モデルをTorchScript形式にエクスポートする方法を説明し、より幅広いアプリケーションでモデルを使用できるようにします。

なぜTorchScriptへエクスポートするのか?

TorchScriptモデルのシリアライズおよびデプロイワークフローの概要

PyTorchの作成者によって開発されたTorchScriptは、PyTorchモデルをさまざまなプラットフォームで最適化およびデプロイするための強力なツールです。YOLO26モデルをTorchScriptにエクスポートすることは、研究段階から実世界のアプリケーションへ移行するために不可欠です。PyTorchフレームワークの一部であるTorchScriptは、Pythonをサポートしていない環境でPyTorchモデルを使用できるようにすることで、この移行をスムーズにします。

このプロセスには、トレーシング(tracing)とスクリプティング(scripting)という2つの技術が含まれます。トレーシングはモデル実行中の操作を記録し、スクリプティングはPythonのサブセットを使用してモデルを定義できます。これらの技術により、YOLO26のようなモデルは、通常のPython環境外でもその真価を発揮できます。

TorchScriptのスクリプティングとトレーシングの比較

TorchScriptモデルは、演算子の融合(operator fusion)やメモリ使用量の改善といった技術を通じて最適化することもでき、効率的な実行を保証します。TorchScriptにエクスポートするもう一つの利点は、さまざまなハードウェアプラットフォームでモデルの実行を高速化できる可能性があることです。これは、C++環境、組み込みシステム、Webやモバイルアプリケーションに統合できる、製品利用可能なPyTorchモデルのスタンドアロンな表現を作成します。

TorchScriptモデルの主な機能

PyTorchエコシステムの重要な要素であるTorchScriptは、ディープラーニングモデルを最適化およびデプロイするための強力な機能を提供します。

TorchScriptの主な機能の概要

TorchScriptが開発者にとって価値のあるツールである主な機能は以下の通りです:

  • 静的グラフ実行: TorchScriptはモデルの計算の静的グラフ表現を使用します。これはPyTorchの動的グラフ実行とは異なります。静的グラフ実行では、計算グラフは実際の実行前に一度定義・コンパイルされるため、推論中のパフォーマンスが向上します。

  • モデルのシリアライズ: TorchScriptを使用すると、PyTorchモデルをプラットフォーム非依存の形式にシリアライズできます。シリアライズされたモデルは元のPythonコードを必要とせずにロードできるため、さまざまなランタイム環境でのデプロイが可能です。

  • JITコンパイル: TorchScriptはJust-In-Time(JIT)コンパイルを使用して、PyTorchモデルを最適化された中間表現に変換します。JITはモデルの計算グラフをコンパイルし、ターゲットデバイスでの効率的な実行を可能にします。

  • クロス言語統合: TorchScriptを使用すると、PyTorchモデルをC++、Java、JavaScriptなどの他の言語にエクスポートできます。これにより、異なる言語で書かれた既存のソフトウェアシステムにPyTorchモデルを統合しやすくなります。

  • 段階的な変換: TorchScriptは段階的な変換アプローチを提供しており、PyTorchモデルの一部を徐々にTorchScriptに変換できます。この柔軟性は、複雑なモデルを扱う場合や、コードの特定の箇所を最適化したい場合に特に便利です。

TorchScriptにおけるデプロイオプション

YOLO26モデルをTorchScript形式にエクスポートするためのコードを確認する前に、TorchScriptモデルが通常どこで使用されるかを理解しましょう。

TorchScriptは、次のような機械学習モデルのさまざまなデプロイオプションを提供します:

  • C++ API: TorchScriptの最も一般的なユースケースはC++ APIです。これにより、最適化されたTorchScriptモデルをC++アプリケーション内で直接ロードして実行できます。これは、Pythonが適していない、あるいは利用できない本番環境に最適です。C++ APIはTorchScriptモデルの低オーバーヘッドで効率的な実行を提供し、パフォーマンスの可能性を最大限に引き出します。

  • モバイルデプロイ: TorchScriptは、モバイルデバイスに容易にデプロイ可能な形式にモデルを変換するツールを提供します。PyTorch Mobileは、iOSおよびAndroidアプリ内でこれらのモデルを実行するためのランタイムを提供します。これにより、低レイテンシのオフライン推論が可能になり、ユーザーエクスペリエンスとデータプライバシーが向上します。

  • クラウドデプロイ: TorchScriptモデルは、TorchServeのようなソリューションを使用してクラウドベースのサーバーにデプロイできます。これは、本番環境でのスケーラブルなデプロイのために、モデルのバージョニング、バッチ処理、メトリクス監視などの機能を提供します。TorchScriptによるクラウドデプロイにより、APIやその他のWebサービスを通じてモデルを利用可能にできます。

TorchScriptへのエクスポート:YOLO26モデルの変換

YOLO26モデルをTorchScriptにエクスポートすることで、さまざまな場所で使いやすくなり、より高速かつ効率的に実行できるようになります。これは、実世界のアプリケーションでディープラーニングモデルをより効果的に使用したいと考えているすべての人にとって素晴らしいことです。

インストール

必要なパッケージをインストールするには、次を実行します。

インストール
# Install the required package for YOLO26
pip install ultralytics

インストールプロセスに関する詳細な手順とベストプラクティスについては、Ultralyticsインストールガイドを確認してください。YOLO26に必要なパッケージをインストールする際に問題が発生した場合は、共通の問題ガイドで解決策とヒントを参照してください。

使用方法

すべてのUltralytics YOLO26モデルは、標準でエクスポートをサポートするように設計されており、好みのデプロイワークフローに簡単に統合できます。サポートされているエクスポート形式と構成オプションの全リストを確認して、アプリケーションに最適なセットアップを選択してください。

使用方法
from ultralytics import YOLO

# Load the YOLO26 model
model = YOLO("yolo26n.pt")

# Export the model to TorchScript format
model.export(format="torchscript")  # creates 'yolo26n.torchscript'

# Load the exported TorchScript model
torchscript_model = YOLO("yolo26n.torchscript")

# Run inference
results = torchscript_model("https://ultralytics.com/images/bus.jpg")

エクスポート引数

引数タイプデフォルト説明
formatstr'torchscript'エクスポートされたモデルのターゲットフォーマット。さまざまなデプロイ環境との互換性を定義します。
imgszint または tuple640モデル入力に希望する画像サイズ。正方形の画像の場合は整数、特定の寸法のタプル (height, width) で指定できます。
dynamicboolFalse動的な入力サイズを許可し、さまざまな画像寸法の処理における柔軟性を高めます。
halfboolFalseFP16(半精度)量子化を有効にし、モデルサイズを削減し、サポートされているハードウェア上での推論を高速化する可能性があります。
optimizeboolFalseモバイルデバイス向けの最適化を適用し、モデルサイズの削減やパフォーマンスの向上を図ります。
nmsboolFalseNon-Maximum Suppression(NMS)を追加します。これは、正確で効率的な検出後処理に不可欠です。
batchint1エクスポートされたモデルのバッチ推論サイズ、または predict モードでモデルが同時に処理する画像の最大数を指定します。
devicestrNoneエクスポートするデバイスを指定します:GPU (device=0)、CPU (device=cpu)、Appleシリコン用MPS (device=mps)。

エクスポートプロセスの詳細については、エクスポートに関するUltralyticsドキュメントページをご覧ください。

エクスポートされたYOLO26 TorchScriptモデルのデプロイ

Ultralytics YOLO26モデルをTorchScript形式に正常にエクスポートしたら、デプロイできます。TorchScriptモデルを実行するための最初に行うべき推奨ステップは、前述の使用コードスニペットで説明されているように、YOLO("model.torchscript")メソッドを使用することです。TorchScriptモデルを他の設定でデプロイするための詳細な手順については、次のリソースを参照してください:

  • モバイルデプロイを確認する: PyTorchモバイルドキュメントでは、モバイルデバイスでモデルをデプロイするための包括的なガイドラインを提供しており、アプリケーションの効率性と応答性を確保します。

  • サーバーサイドデプロイを習得する: TorchServeを使用してサーバーサイドでモデルをデプロイする方法を学びます。スケーラブルで効率的なモデルサービングのためのステップバイステップのチュートリアルが提供されています。

  • C++デプロイを実装する: C++でのTorchScriptモデルのロードに関するチュートリアルを確認し、パフォーマンスと汎用性を高めるためにTorchScriptモデルをC++アプリケーションに統合します。

まとめ

本ガイドでは、Ultralytics YOLO26モデルをTorchScript形式にエクスポートするプロセスを説明しました。提供された手順に従うことで、パフォーマンスのためにYOLO26モデルを最適化し、さまざまなプラットフォームや環境にデプロイするための柔軟性を得ることができます。

使用方法の詳細については、TorchScriptの公式ドキュメントをご覧ください。

また、他のUltralytics YOLO26インテグレーションについて詳しく知りたい場合は、インテグレーションガイドページをご覧ください。そこには有益なリソースや洞察が多数記載されています。

FAQ

Ultralytics YOLO26モデルのTorchScriptへのエクスポートとは?

Ultralytics YOLO26モデルをTorchScriptにエクスポートすることで、柔軟なクロスプラットフォームのデプロイが可能になります。PyTorchエコシステムの一部であるTorchScriptは、モデルのシリアライズを促進し、Pythonサポートがない環境でも実行できるようにします。これは、組み込みシステム、C++環境、モバイルアプリケーション、さらにはWebブラウザへのモデルのデプロイに最適です。TorchScriptへのエクスポートにより、多様なプラットフォーム全体でYOLO26モデルの効率的なパフォーマンスと幅広い適用性が実現します。

Ultralyticsを使用してYOLO26モデルをTorchScriptにエクスポートするにはどうすればよいですか?

YOLO26モデルをTorchScriptにエクスポートするには、次のサンプルコードを使用できます:

使用方法
from ultralytics import YOLO

# Load the YOLO26 model
model = YOLO("yolo26n.pt")

# Export the model to TorchScript format
model.export(format="torchscript")  # creates 'yolo26n.torchscript'

# Load the exported TorchScript model
torchscript_model = YOLO("yolo26n.torchscript")

# Run inference
results = torchscript_model("https://ultralytics.com/images/bus.jpg")

エクスポートプロセスの詳細については、エクスポートに関するUltralyticsドキュメントを参照してください。

YOLO26モデルのデプロイにTorchScriptを使用すべきなのはなぜですか?

YOLO26モデルのデプロイにTorchScriptを使用すると、いくつかの利点があります:

  • 移植性: エクスポートされたモデルは、C++アプリケーション、組み込みシステム、モバイルデバイスなど、Pythonを必要としない環境で実行できます。
  • 最適化: TorchScriptは静的グラフ実行とJust-In-Time(JIT)コンパイルをサポートしており、モデルのパフォーマンスを最適化できます。
  • クロス言語統合: TorchScriptモデルは他のプログラミング言語に統合できるため、柔軟性と拡張性が向上します。
  • シリアライズ: モデルをシリアライズできるため、プラットフォーム非依存のロードと推論が可能になります。

デプロイの詳細については、PyTorchモバイルドキュメントTorchServeドキュメント、およびC++デプロイガイドをご覧ください。

YOLO26モデルをTorchScriptにエクスポートするためのインストール手順は何ですか?

YOLO26モデルをエクスポートするために必要なパッケージをインストールするには、次のコマンドを使用します:

インストール
# Install the required package for YOLO26
pip install ultralytics

詳細な手順については、Ultralyticsインストールガイドをご覧ください。インストール中に問題が発生した場合は、一般的な問題ガイドを参照してください。

エクスポートしたTorchScript YOLO26モデルをデプロイするにはどうすればよいですか?

YOLO26モデルをTorchScript形式にエクスポートした後、さまざまなプラットフォームにデプロイできます:

  • C++ API: 低オーバーヘッドで効率性の高い本番環境に最適です。
  • モバイルデプロイ: iOSおよびAndroidアプリケーションにはPyTorch Mobileを使用してください。
  • クラウドデプロイ: スケーラブルなサーバーサイドデプロイにはTorchServeのようなサービスを利用してください。

これらの設定でモデルをデプロイするための包括的なガイドラインを確認し、TorchScriptの機能を最大限に活用してください。

コメント