バッチ推論

Batch Inference

バッチ推論とは

バッチ推論(Batch Inference)とは、大量のデータをまとめて一括処理する推論方式です。リアルタイム推論が個別のリクエストに即座に応答するのに対し、バッチ推論は蓄積されたデータに対して定期的(毎時、毎日など)に推論を実行します。コスト効率が高く、大規模なデータ処理に適しています。

表:バッチ推論の要点まとめ
ひとことで言うと大量のデータをまとめて一括で処理する推論方式。
どこで使う夜間の全顧客スコアリング、月次の需要予測、大量画像の一括分類。
注意点結果が出るまで時間がかかる。即時性が必要な用途には使えない。

バッチ推論の適用場面

バッチ推論は、即座の応答が不要なユースケースに適しています。例えば、全ユーザーに対するレコメンデーションの事前計算、定期的な不正検知レポートの生成、大量ドキュメントの分類・要約、画像や動画の一括分析などが代表的な適用場面です。

図:バッチ推論の流れ
1対象データを集める全顧客・全商品
▶
2夜間に一括実行まとめて処理
▶
3効率よく計算GPUを最大活用
▶
4結果を保存DBに書き込む
▶
5翌朝から利用画面や帳票で参照

バッチ推論の実装

バッチ推論の実装にはApache Spark、AWS Batch、Amazon SageMaker Batch Transform、Google Cloud Dataflow、Azure Batch AIなどが利用されます。データをチャンクに分割して複数のワーカーで並列処理し、結果をデータベースやストレージに書き出す構成が一般的です。

コスト最適化

バッチ推論ではスポットインスタンスやプリエンプティブVMを活用してコストを大幅に削減できます。リアルタイム性が不要なため、安価な時間帯やリソースに余裕のある時間帯にジョブを実行するスケジューリング戦略も有効です。GPUを常時起動しておく必要がないため、リアルタイム推論と比較してインフラコストを抑えられます。