連続バッチ処理がGPUスループットを最適化し、レイテンシを削減する方法を学びましょう。Ultralytics YOLO26を使用して、本番環境のMLタスクで効率を最大化する方法を発見してください。
連続バッチ処理は、機械学習 (ML)においてハードウェアの利用率とスループットを最大化するために使用される高度なスケジューリングおよび推論最適化技術です。従来の静的バッチ処理では、推論エンジンは、所定数のリクエストが蓄積されるまで待機してから、それらを同時に処理します。これは、システムがバッチ内で最も実行時間の長いリクエストが完了するまで待機してからリソースを解放する必要があるため、非効率性につながることがよくあります。動的バッチ処理またはイテレーションレベルバッチ処理とも呼ばれる連続バッチ処理は、アクティブなリクエストが完了するとすぐに新しいリクエストを計算バッチに注入することでこれを解決し、GPUのアイドル時間を大幅に削減し、全体的な効率を向上させます。
モデルデプロイ中にデータがどのように処理されるかをよりよく理解するためには、連続バッチ処理を用語集の他の関連用語と区別することが役立ちます。
連続バッチ処理は、予測不能な大量のリクエストを処理する本番システムにとって不可欠です。その応用例を2つ具体的に示します。
高トラフィックのモデルデプロイメントプラクティスを管理する際、inferenceを反復的にストリーミングすることで、メモリがブロックされるのではなく段階的に解放されるようにし、動的バッチ処理の利点をシミュレートできます。以下の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 Platformは、モデルのトレーニング、監視、および高度に最適化された本番環境へのエクスポートのための堅牢なツールを提供します。
未来の機械学習で、新たな一歩を踏み出しましょう。