推論エンジンがUltralytics のような機械学習モデルをリアルタイム展開向けに最適化する仕組みを解説。エッジAIのパフォーマンス向上テクニックを今すぐご覧ください。
推論エンジンは、学習済み機械学習モデルを実行し、 新規データから予測を生成するために設計された 特殊なソフトウェアコンポーネントである。 バックプロパゲーションのような計算集約的なプロセスを通じて パターン学習に焦点を当てる学習フェーズとは異なり、 推論エンジンはモデルデプロイメントと呼ばれる 運用フェーズに厳密に最適化されている。 その主な目的は、スケーラブルなクラウドサーバーであれ、バッテリー駆動のエッジAIデバイスであれ、対象ハードウェア上で推論遅延を最小化しスループットを最大化しながら、可能な限り効率的に計算を実行することです。トレーニングに必要なオーバーヘッドを排除することで、これらのエンジンは複雑なニューラルネットワークをリアルタイムアプリケーションで機能させます。
トレーニング環境から推論エンジンへの移行では、通常、モデルの構造を効率化するための最適化ステップが複数行われる。モデルが学習する必要がなくなるため、エンジンは勾配更新に必要なデータを破棄でき、モデル重みを事実上固定化できる。 推論エンジンで一般的に用いられる手法には、 複数の演算を単一ステップに統合してメモリアクセスを削減する層融合(レイヤーフュージョン)や、 高精度浮動小数点形式の重みを低精度整数(例:INT8)に変換するモデル量子化が含まれる。
これらの最適化により、Ultralytics 高度なアーキテクチャが、精度を大幅に損なうことなく驚異的な高速で動作します。異なるエンジンは、最大性能を引き出すために特定のハードウェアエコシステム向けに調整されることがよくあります:
推論エンジンは、多くの現代的なAIの利便性の背後で静かに駆動する存在であり、 コンピュータービジョンシステムが その環境に瞬時に反応することを可能にしている。
モデルを作成するために使用されるソフトウェアと、それを実行するために使用されるエンジンを区別することは有用です。 トレーニングフレームワーク(PyTorchのような) PyTorch や TensorFlow)は、アーキテクチャの設計、損失の計算、教師あり学習によるパラメータの更新を行うためのツールを提供します。柔軟性とデバッグ機能を優先します。
一方、推論エンジンはトレーニングフレームワークから完成したアーティファクトを受け取り、 実行速度とメモリ効率を優先します。トレーニングフレームワーク内で推論を実行することは可能ですが、 専用エンジンを使用する場合ほど効率的になることは稀です。特に、TensorFlow AppleCore MLなどのツールを介したモバイル端末や組み込みデバイスへのデプロイにおいては顕著です。
について ultralytics パッケージは推論エンジンの複雑な処理の大部分を抽象化し、ユーザーがシームレスに予測を実行できるようにします。内部では、画像の前処理とモデルの実行を処理します。
スケーリングを検討しているユーザー向けに、 Ultralytics モデルをトレーニングし、様々な推論エンジンと互換性のある最適化された形式にエクスポートするプロセスを簡素化します。
以下の例は、事前学習済み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()