YOLO Vision 2026:

迅速なデプロイのためのYOLO26モデルのTorchScriptエクスポート#

PyTorchはTorchScriptの提供を終了します。

PyTorch は TorchScript を非推奨とし、その機能を段階的に削除しています。新しいモバイルおよびエッジ環境でのデプロイには、サポートされている ExecuTorch インテグレーションを使用してください。Ultralytics は、従来の C++ との互換性のために通常の TorchScript エクスポートを維持しています。

Python なしの C++ 環境で コンピュータビジョンモデルをデプロイするには、ポータブルなシリアル化表現が必要です。TorchScript は、従来の LibTorch アプリケーションに向けてその互換性を提供します。

Ultralytics YOLO26 モデルをクロスプラットフォーム互換性と効率的なデプロイに向けてシリアル化するために、TorchScript にエクスポートします。このガイドでは、YOLO26 モデルを TorchScript フォーマットにエクスポートする方法を紹介し、より幅広いアプリケーションで簡単に使用できるようにします。

なぜTorchScriptにエクスポートするのでしょうか?#

TorchScript model serialization and deployment workflow overview

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

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

TorchScript scripting vs tracing comparison

TorchScriptモデルは、演算子の統合やメモリ使用量の最適化といった手法を通じて最適化でき、効率的な実行を実現します。TorchScriptへエクスポートするもう一つの利点は、さまざまなハードウェアプラットフォーム全体でモデルの実行を加速できる可能性がある点です。これにより、PyTorchモデルのスタンドアロンで本番環境対応の表現が作成され、C++環境へ統合できるようになります。

TorchScriptモデルの主な機能#

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

TorchScript key features overview

開発者にとってTorchScriptが価値あるツールである理由は、主に以下の機能によるものです。

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

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

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

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

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

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

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

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

  • モバイルデプロイ: モバイルデバイスでの低遅延、オフライン推論、およびデータプライバシーのためには、TorchScript Mobile の PyTorch 製代替である ExecuTorch を使用してください。

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

サポートされているタスク#

TorchScript エクスポートは、すべての 7 つの Ultralytics タスクをサポートします。セマンティックセグメンテーションと深度推定は、それらのヘッドを搭載する唯一のファミリーである YOLO26 でのみ利用可能です。

タスクYOLOv8YOLO11YOLO26
検出 (Detect)
Segment
Semantic
Depth
Classify
ポーズ
OBB

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

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

インストール#

必要なパッケージをインストールするには、以下を実行してください:

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

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

使用方法#

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

TorchScript フォーマットは、ExportPredict、および Validate モードをサポートしています。モデルをエクスポートし、エクスポートされたモデルをロードして推論を実行するか、精度を検証します。

エクスポート
from ultralytics import YOLO

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

# Export the model to TorchScript format
model.export(format="torchscript")  # creates 'yolo26n.torchscript'
予測
from ultralytics import YOLO

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

# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
検証
from ultralytics import YOLO

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

# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")

エクスポートの引数#

引数タイプデフォルト説明
formatstr'torchscript'エクスポートするモデルのターゲット形式。さまざまなデプロイ環境との互換性を定義します。
imgszint または tuple640モデル入力の希望する画像サイズ。正方形の画像の場合は整数、特定の寸法の指定にはタプル (height, width) を使用できます。
dynamicboolFalse動的な入力サイズを許可し、さまざまな画像次元を扱う際の柔軟性を高めます。
quantizeint または strNone量子化精度: 16 (FP16) には device=0 を使用した GPU エクスポートが必要です。32/未設定の場合は FP32 です。非推奨の half フラグに代わるものです。
nmsboolFalseNon-Maximum Suppression (NMS) を追加します。これは正確で効率的な検出後処理に不可欠です。
batchint1エクスポートモデルのバッチ推論サイズ、またはpredictモードでエクスポートされたモデルが同時に処理する画像の最大数を指定します。
devicestrNoneエクスポートに使用するデバイスを指定します:GPU(device=0)、CPU(device=cpu)、Appleシリコン用MPS(device=mps)。

エクスポートプロセスの詳細については、Ultralytics documentation page on exporting をご覧ください。

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

Ultralytics YOLO26 モデルの TorchScript フォーマットへのエクスポートが成功したら、デプロイできるようになります。TorchScript モデルを実行するための最初の推奨される主要なステップは、前の使用法コードスニペットで概説されているように、YOLO("model.torchscript") メソッドを使用することです。他の設定で TorchScript モデルをデプロイするための詳細な手順については、次のリソースを参照してください。

  • モバイルデプロイの探索: 現在の PyTorch モバイルデプロイには、ExecuTorch の別個の torch.export().pte パイプラインを使用します。

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

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

要約#

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

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

また、他の Ultralytics YOLO26 統合について詳しく知りたい場合は、integration guide page をご覧ください。役立つリソースや情報が豊富に揃っています。

よくある質問 (FAQ)#

  • Ultralytics YOLO26モデルをTorchScriptにエクスポートすることで、柔軟なクロスプラットフォームデプロイメントが可能になります。PyTorchエコシステムの一部であるTorchScriptはモデルのシリアライズを容易にし、Pythonサポートのない環境でも実行できるようにします。これにより、C++環境でのモデルデプロイメントに役立ちます。

  • YOLO26モデルをTorchScriptにエクスポートするには、以下のコード例を使用できます。

    使用方法
    from ultralytics import YOLO
    
    # Load a 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を使用することには、いくつかの利点があります。

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

    デプロイに関する詳細な洞察については、TorchServe ドキュメントおよび C++ デプロイガイドをご覧ください。オンデバイスのモバイルデプロイについては、PyTorch は現在、TorchScript ではなく独自の独立した torch.export().pte パイプラインを使用する ExecuTorch を推奨しています。

  • YOLO26モデルをエクスポートするために必要なパッケージをインストールするには、以下のコマンドを使用してください。

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

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

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

    • C++ API: オーバーヘッドが少なく、効率性の高い本番環境には LibTorch を使用してください。
    • モバイルデプロイ: 別個の .pte エクスポートパイプラインを備えた、PyTorch がサポートする代替手段である ExecuTorch を使用してください。
    • クラウドデプロイ: スケーラブルなサーバーサイドデプロイのために TorchServe などのサービスを活用してください。

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

コメント