Ultralytics YOLO27:

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

PyTorchはTorchScriptを廃止予定です

PyTorchはTorchScriptを非推奨にしましたし、その機能を段階的に削除しています。新しいモバイルおよびエッジデプロイメントには、サポートされているExecuTorch統合を使用してください。Ultralyticsでは、レガシーC++互換性のために通常のTorchScriptエクスポートを引き続き提供しています。

Pythonを使用せずにC++環境でコンピュータービジョンモデルをデプロイするには、移植可能なシリアル化表現が必要です。TorchScriptは、レガシーLibTorchアプリケーション向けにその互換性を提供します。

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

TorchScriptにエクスポートする理由#

TorchScriptモデルのシリアル化とデプロイメントのワークフロー概要

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

このプロセスには、トレースとスクリプティングという2つの技術が関係します。トレースではモデルの実行中に操作を記録し、スクリプティングではPythonのサブセットを使用してモデルを定義できます。これらの技術により、YOLO26のようなモデルを通常のPython環境の外でも引き続き動作させることができます。

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

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

TorchScriptモデルの主な機能#

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

TorchScriptの主な機能の概要

TorchScriptを開発者にとって有用なツールにしている主な機能は次のとおりです。

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

  • モデルのシリアル化: TorchScriptを使用すると、PyTorchモデルをプラットフォームに依存しない形式にシリアル化できます。シリアル化されたモデルは元のPythonコードなしで読み込めるため、異なるランタイム環境へのデプロイメントが可能になります。

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

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

TorchScriptでのデプロイメントオプション#

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

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

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

  • モバイルデプロイメント: モバイルデバイスで低レイテンシーのオフライン推論とデータプライバシーを実現するには、PyTorchのTorchScript Mobileに代わるExecuTorchを使用してください。

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

サポートされるタスク#

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

タスクYOLOv8YOLO11YOLO26
検出
セグメンテーション
セマンティック
深度
分類
ポーズ
OBB

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

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

インストール#

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

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

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

使用方法#

すべてのUltralytics 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'
推論
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フラグに置き換わります。
nmsbool、オプションNone生出力(None、デフォルト)、組み込み NMS(True)、または NMS フリーヘッド(False)を選択します。
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モバイルデプロイメントには、ExecuTorch独自のtorch.export().pteパイプラインを使用してください。

  • サーバーサイドデプロイメントを習得する: TorchServeを使用したサーバーサイドでのモデルデプロイメントについて学びます。スケーラブルで効率的なモデルサービングのための手順を追ったチュートリアルを提供しています。

  • C++デプロイメントを実装する: 「C++でTorchScriptモデルを読み込む」チュートリアルで、TorchScriptモデルをC++アプリケーションに統合し、パフォーマンスと柔軟性を高める方法を確認してください。

まとめ#

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

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

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

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は静的グラフ実行とジャストインタイム(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を使用してください。
    • モバイルデプロイメント: PyTorchがサポートする代替手段であり、独自の.pteエクスポートパイプラインを備えたExecuTorchを使用してください。
    • クラウドデプロイメント: スケーラブルなサーバーサイドデプロイメントには、TorchServeなどのサービスを活用してください。

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

コメント