継続的バッチ処理GPU 最適化し、レイテンシを低減する方法を学びましょう。Ultralytics を活用して、本番環境の機械学習タスクで効率を最大化する手法を発見してください。
連続バッチ処理は、ハードウェア利用率とスループットを最大化するために機械学習(ML)で使用される高度なスケジューリングおよび推論最適化技術である。従来の静的バッチ処理では、推論エンジンは事前に決められた数のリクエストが蓄積されるまで待機し、それらを同時に処理する。これは、システムがバッチ内で最も実行時間が長いリクエストが完了するまでリソースを解放できないため、非効率を招くことが多い。 連続バッチ処理(動的バッチ処理または反復レベルバッチ処理とも呼ばれる)は、アクティブなリクエストが完了するとすぐに新しいリクエストを計算バッチに注入することでこの問題を解決し、GPUのアイドル時間を大幅に削減し、全体的な効率を向上させます。
モデル展開時のデータ処理方法をより深く理解するには、連続バッチ処理を用語集内の他の関連用語と区別することが有用です:
予測不可能な大量のリクエストを処理する生産システムにおいて、継続的なバッチ処理は極めて重要です。以下にその適用例を具体的に2つ示します:
高トラフィックなモデルデプロイメントを管理する場合、ストリーミング推論を反復的に実行することで、メモリがブロックされるのではなく段階的に解放されるため、動的バッチ処理の利点をシミュレートできます。以下のPython 、モデル予測APIとジェネレータパターンを組み合わせて、連続的な画像ストリームを効率的に処理する方法を示しています。
from ultralytics import YOLO
# Load the latest Ultralytics YOLO26 model
model = YOLO("yolo26n.pt")
# Using stream=True acts as a generator, iteratively processing inputs
# to keep memory usage low and throughput high
results = model.predict(source=["img1.jpg", "img2.jpg", "img3.jpg"], stream=True)
# Process each result as soon as it completes
for result in results:
print(f"Detected {len(result.boxes)} objects in this frame.")
システムレベルのリソーススケジューリングを管理するには、 純粋な処理速度と運用コストのバランスが求められます。大規模な コンピュータービジョン(CV)や言語モデルを展開するチームは、 こうした動的なバッチ処理を管理するために高度なサービングフレームワークへの依存度を高めています。インフラストラクチャの効率化を目指す企業チーム向けに、 Ultralytics 、トレーニング、モニタリング、 高度に最適化された本番環境へのモデルエクスポートを実現する堅牢なツールを提供します。