用語集

TensorRT

ディープラーニングモデルをTensorRT で最適化し、NVIDIA GPU 上でより高速で効率的な推論を実現。YOLO 、AIアプリケーションでリアルタイムのパフォーマンスを実現する。

Ultralytics HUB で
を使ってYOLO モデルをシンプルにトレーニングする。

さらに詳しく

TensorRT は、高性能ディープラーニング推論のためのソフトウェア開発キット(SDK)である。NVIDIA によって開発され、本番環境、特にNVIDIA GPU 上で展開するための学習済みニューラルネットワークの最適化を容易にする。このSDKは、PyTorch やTensorFlow のようなフレームワークから学習済みモデルを取り出し、リアルタイム・アプリケーションにとって重要な、より高速で効率的な推論を行うために最適化するように設計されています。

TensorRT とは?

TensorRT は基本的に推論オプティマイザーであり、ランタイムエンジンである。学習済みのディープラーニング・モデルを受け取り、推論段階でパフォーマンスを向上させるために様々な最適化を適用する。このプロセスには、グラフ最適化、レイヤー融合、量子化、カーネル自動チューニングなどの技術が含まれる。モデルを最適化することで、TensorRT 、待ち時間を短縮し、スループットを向上させ、迅速な応答時間を要求するアプリケーションに複雑なAIモデルを導入することが可能になる。

TensorRT のようなフレームワークを使ってモデルを学習した後に使用します。 PyTorchまたは TensorFlow.このフレームワークは特にデプロイメント段階に重点を置いており、モデルがターゲット・ハードウェア(主にNVIDIA GPU)上で可能な限り迅速かつ効率的に実行されることを保証する。これは、推論速度とリソース利用が重要な、エッジデバイスやデータセンターで実行されるアプリケーションにとって特に価値がある。

TensorRT の仕組み

TensorRT における最適化プロセスには、推論性能を向上させるためのいくつかの重要なステップが含まれる:

  • グラフの最適化:TensorRT はニューラルネットワークのグラフを分析し、冗長な操作を排除して実行フローを合理化するためにグラフを再構築します。これには、不要なレイヤーの削除や、最終的な出力に大きく寄与しない操作の削除が含まれます。
  • レイヤー融合:オーバーヘッドを削減し、計算効率を向上させるために、互換性のある複数のレイヤーを1つのレイヤーに統合する。例えば、連続する畳み込み層、バイアス層、ReLU層は、しばしば1つの演算に融合することができる。
  • 量子化:TensorRT は、モデルの重みとアクティベーションの精度を、浮動小数点(FP32またはFP16)から整数形式(INT8またはそれ以下)に下げることができます。これにより、特に整数演算に最適化されたハードウェアでは、メモリ帯域幅の要件が軽減され、計算が高速化されます。量子化によって精度が若干低下する可能性がありますが、TensorRT 、速度を大幅に向上させながら、この影響を最小限に抑えることを目指しています。
  • Kernel Auto-tuning:TensorRT は、ターゲットとなるGPU アーキテクチャに基づき、各レイヤーのオペレーションに対して最も効率的な実装(カーネル)を選択します。このオートチューニング・プロセスは、モデルが基礎となるハードウェア機能をフルに活用することを保証します。

これらの最適化により、最適化されていないオリジナルのモデルを実行した場合と比較して、推論速度と効率が大幅に改善された。

応用例TensorRT

TensorRT は、リアルタイムまたはリアルタイムに近い推論が不可欠な様々なアプリケーションで広く使用されている。具体的な例としては、以下の2つが挙げられる:

  • 自律走行車:自動運転車では、迅速な物体検出とシーン理解が安全性と応答性のために最も重要である。 Ultralytics YOLOモデルは、TensorRT で最適化されると、NVIDIA DRIVE プラットフォーム上で必要な推論速度を達成し、センサーデータをリアルタイムで処理して、ナビゲーションと障害物回避のための迅速な意思決定を可能にします。
  • リアルタイムビデオ解析:セキュリティ監視や交通監視などのアプリケーションでは、TensorRT 、高解像度のビデオストリームを処理し、最小限の待ち時間で物体の検出、追跡、分析を行うことができます。これにより、セキュリティアラームシステムにおける侵入検知や、スマートシティにおける交通流解析など、検知されたイベントに基づいて即座に警告やアクションを実行することができます。

TensorRT は、医療画像解析、ロボット工学、クラウドベースの推論サービスなど、低レイテンシーと高スループットが重要な他の分野でも有益である。

TensorRT そしてUltralytics YOLO

Ultralytics YOLO モデルをエクスポートし、TensorRT を使用して最適化することで、NVIDIA デバイスに配置することができます。Ultralytics YOLO のエクスポート・ドキュメントには、YOLO モデルをTensorRT フォーマットに変換する方法が詳しく説明されています。これにより、TensorRT の最適化機能を利用し、YOLO モデルの推論速度を大幅に高速化することができます。

NVIDIA JetsonEdgeデバイスにYOLOv8 を展開するユーザーにとって、TensorRT 最適化は、リアルタイム・パフォーマンスを達成するために重要なステップであることが多い。さらに、 NVIDIA Jetson上のDeepStreamは、TensorRT 高性能ビデオ分析アプリケーションのために活用されます。

使用するメリットTensorRT

TensorRT を利用することで、ディープラーニングモデルを展開する上でいくつかの重要な利点が得られる:

  • 推論スピードの向上:最適化により、推論の待ち時間を大幅に短縮し、スループットを向上させることで、リアルタイムのパフォーマンスを実現。
  • レイテンシーの低減:自律システムやリアルタイム分析など、即時応答が必要なアプリケーションでは、レイテンシーの低減が不可欠です。
  • リソース利用の最適化:量子化とグラフの最適化により、メモリフットプリントと計算量が削減され、リソースに制約のあるデバイスでのモデルの実行効率が向上します。
  • ハードウェア・アクセラレーション:TensorRT は、NVIDIA GPU を最大限に活用するように設計されており、NVIDIA ハードウェア上で最適なパフォーマンスを保証します。
  • デプロイメント準備:トレーニング済みモデルからアプリケーションへのデプロイメントプロセスを合理化し、プロダクションレディのランタイム環境を提供します。

要約すると、TensorRT は、特にNVIDIA GPU を使用する場合に、高性能なディープラーニング推論アプリケーションを展開しようとする開発者にとって不可欠なツールである。モデルをスピードと効率性のために最適化することで、TensorRT 、研究と実世界での展開のギャップを埋め、様々な業界において高度なAIを身近で実用的なものにする。

すべて読む