Inference Engine
推論エンジンがUltralytics YOLO26のような機械学習モデルをリアルタイムデプロイ向けに最適化する仕組みを説明します。現在のエッジAIに役立つパフォーマンス最適化のヒントを紹介します。
推論エンジンは、トレーニング済みの機械学習モデルを実行し、新しいデータから予測を生成するために設計された、専用のソフトウェアコンポーネントです。バックプロパゲーションのような計算負荷の高いプロセスを通じてパターンの学習に重点を置くトレーニング段階とは異なり、推論エンジンは、モデルのデプロイと呼ばれる運用段階に特化して最適化されています。主な目的は、スケーラブルなクラウドサーバーであれ、バッテリー駆動のエッジAIデバイスであれ、対象ハードウェア上で計算を可能な限り効率的に実行し、推論レイテンシを最小化しながらスループットを最大化することです。トレーニングに必要なオーバーヘッドを取り除くことで、これらのエンジンは複雑なニューラルネットワークをリアルタイムアプリケーションで動作させることができます。
推論エンジンによるパフォーマンス最適化#
トレーニング環境から推論エンジンへ移行する際には、通常、モデルの構造を効率化するために複数の最適化手順を実施します。モデルはもはや学習する必要がないため、エンジンは勾配更新に必要なデータを破棄し、モデルの重みを実質的に固定できます。推論エンジンで使用される一般的な手法には、複数の演算を1つのステップに統合してメモリアクセスを削減するレイヤーフュージョンや、重みを高精度の浮動小数点形式から低精度の整数(例: INT8)に変換するモデル量子化などがあります。
これらの最適化により、Ultralytics YOLO26のような高度なアーキテクチャを、精度を大きく損なうことなく極めて高速に実行できます。さまざまなエンジンは、最大限のパフォーマンスを引き出すために、特定のハードウェアエコシステム向けに調整されています。
- NVIDIA TensorRT: ハードウェア固有のカーネルを利用し、ネットワークグラフを最適化することで、NVIDIA GPU上で高性能な推論を実現します。
- Intel OpenVINO: CPUや内蔵グラフィックスなど、Intelアーキテクチャ上のディープラーニングパフォーマンスを最適化するため、エッジコンピューティングに適しています。
- ONNX Runtime: ONNX形式のモデルをサポートするクロスプラットフォームアクセラレーターで、異なるフレームワークとハードウェアバックエンドの橋渡しを実現します。
実世界での利用例#
推論エンジンは、現代のAIの利便性の多くを陰で支える存在であり、コンピュータビジョンシステムが環境に瞬時に反応できるようにしています。
-
自動運転車: 自動運転車では、物体検出モデルが歩行者、交通標識、他の車両を数ミリ秒で識別する必要があります。車載ハードウェア上でローカルに動作する推論エンジンにより、リアルタイム推論の速度で処理できます。クラウド接続に依存すると危険な遅延が発生するためです。
-
スマート製造: 工場では、組立ライン上の製品を検査するために産業用IoTカメラを利用します。推論エンジンはビデオフィードを処理して異常検知を実行し、欠陥を即座に検出します。この自動化により、製造速度を落とすことなく廃棄物を削減し、厳格な品質管理を実現できます。
推論エンジンとトレーニングフレームワークの比較#
モデルの作成に使用するソフトウェアと、モデルの実行に使用するエンジンを区別すると理解しやすくなります。トレーニングフレームワーク(PyTorchやTensorFlowなど)は、アーキテクチャの設計、損失の計算、教師あり学習によるパラメーターの更新に必要なツールを提供します。柔軟性とデバッグ機能を重視しています。
一方、推論エンジンは、トレーニングフレームワークで作成された完成済みの成果物を受け取り、実行速度とメモリ効率を優先します。トレーニングフレームワーク内で推論を実行することもできますが、TensorFlow LiteやApple Core MLなどのツールを使用してモバイル端末や組み込みデバイスにデプロイする場合は特に、専用エンジンを使用するより効率が低いことがほとんどです。
Ultralytics YOLO26で推論エンジンを使用する#
ultralyticsパッケージは、推論エンジンの複雑さの多くを抽象化し、ユーザーがシームレスに予測を実行できるようにします。内部では、画像の前処理とモデルの実行を処理します。スケールを拡大したいユーザー向けに、Ultralytics Platformは、さまざまな推論エンジンと互換性のある最適化済み形式へのモデルのトレーニングとエクスポートのプロセスを簡素化します。
次の例では、事前トレーニング済みのYOLO26モデルを読み込み、画像に対して推論を実行する方法を示します。
from ultralytics import YOLO
# Load the YOLO26n model (nano version for speed)
model = YOLO("yolo26n.pt")
# Run inference on an image from a URL
# The 'predict' method acts as the interface to the inference process
results = model.predict("https://ultralytics.com/images/bus.jpg")
# Display the results
results[0].show()








