バッチ推論
バッチ推論とは、機械学習モデルを個々のデータポイントをリアルタイムで順次処理するのではなく、大量の静的な入力データセット全体に対して一度に実行するプロセスを指します。システムは単一のユーザーリクエストに即座に応答するのではなく、「バッチ」(データセットのコレクション)を処理し、後でまとめて結果を返します。
多くのビジネスアプリケーションでは、即時的なリアルタイム応答は必要ありません。バッチ推論は、大規模データセットで高いスループットが主な目標である場合、計算リソースを最適化し、運用コストを削減するために不可欠です。これは、低遅延の提供から大量処理へと焦点を移します。
ワークフローは、ターゲットデータセットを集約することから始まります。その後、このデータがデプロイされたMLモデルインフラストラクチャに供給されます。モデルは、GPU並列性などのハードウェア効率を活用して、すべての入力を並列または最適化されたチャンクで処理します。計算が完了すると、結果の予測が出力され、通常はデータベースに保存されるか、スケジュールされたジョブを介して配信されます。
多くのエンタープライズシナリオがバッチ推論から大きな恩恵を受けています。これには、数百万件のトランザクションに対する夜間の不正検出スキャン、月次の顧客離脱リスクスコアの生成、またはアップロードされたメディアに対する大規模な画像タグ付けとコンテンツモデレーションの実行などが含まれます。
主な利点は、コスト効率とスループットです。リクエストをグループ化することにより、インフラストラクチャの利用率が最大化され、すべてのデータポイントに対して常時稼働の低遅延提供エンドポイントを維持する場合と比較して、予測あたりのコストが低くなります。
主なトレードオフはレイテンシです。データはチャンクで処理されるため、結果は即座には得られません。さらに、データパイプラインの管理(入力バッチが正しく準備され、出力が確実に保存されていることを保証すること)は、MLOpsライフサイクルに複雑さを加えます。
バッチ推論は、即時のユーザーインタラクションのためにミリ秒以内に予測を返す必要があるオンライン推論(またはリアルタイム推論)とは対照的です。データエンリッチメントに使用される場合、ETL(抽出、変換、ロード)プロセスと密接に関連しています。