推論最適化・実行基盤

バッチ推論とは|入力を1個のままにすると、32台用意しても31台が動かなかった

いつ使う形なのか台数を増やせば速くなるのか分ける数はどう決めるのか

480分ぶんの処理を32台で流しても、入力が1個のままなら483分かかりました。

31台は何も処理していません。台数ではなく、入力を何個に分けたかが上限を決めます。

この記事の要点

  • 1個なら483分
  • 8個・8台で63分
  • 32個・32台で18分
  • 分けた数が上限

常駐する受け口を持たずに済む

呼ばれるたびに応える形ではありません。まとめて流し、終わったら片付ける形です。

バッチ推論が向く場面を、公式は箇条書きで挙げています。常駐する受け口が要らないときに推論を走らせるという項目が含まれます。

扱う量も前提のうちです。公式はまとめて変換する仕組みは、指定された引数の範囲の中で、大きなデータの集合の処理を自動的に管理すると述べています。

向く場面と向かない場面

  1. 夜間にまとめて処理する。向く。待たせる相手がいない
  2. 大きな集合から推論を得る。向く。公式も用途として挙げている
  3. 画面から呼ばれて即座に返す。向かない。常駐が要る
  4. 1件ずつ来る。向かない。溜まらないので束にならない

3番目と4番目では、立ち上げの時間が毎回かかります。常駐する形のほうが軽くなります。

費用の立ち方が変わる

常駐しないので、使っていない時間の費用が立ちません

その代わり、立ち上げの時間が毎回かかります。呼ばれる頻度による損得はAWS Lambdaの記事で数えていて、0.2件/秒なら立ち上げに当たるのは0.0%でした。

出典AWS ドキュメント「Batch transform for inference with Amazon SageMaker AI」2026-08-18 確認
Batch transform automatically manages the processing of large datasets within the limits of specified parameters.
原文AWS ドキュメント「Batch transform for inference with Amazon SageMaker AI」 この内容の有効期限2027-02-18

入力を1個のままにすると、32台用意しても31台が動かない

並列の上限は台数ではなく、入力を何個に分けたかです。超えた台は待つだけです。

バッチ推論では、入力の分かれ方が台数の効き目を決めます。公式は入力のファイルが1個しかないのに複数の計算の実体を立ち上げた場合、その入力を処理するのは1つの実体だけであると明記しています。

残りは何もしません。公式も残りの実体は遊んでいると続けています。

どれだけ変わるかを数えました。480分ぶんの処理を、分け方と台数を変えて流します。

分け方と台数を変える

text
処理する量は全部で 480分ぶん(1台で流した場合)。1台の立ち上げに 3分
入力を何個に分けるかと、用意した台数を変えて、終わるまでの時間を見る

分けた数            1台          2台          8台         32台   (終わるまで)
1個                483分        483分        483分        483分
2個                483分        243分        243分        243分
8個                483分        243分         63分         63分
32個               483分        243分         63分         18分
128個              483分        243分         63分         18分

1個の行を見てください。台数を32倍にしても483分のままです。

最下行も同じ形です。128個に分けても、8台までしか用意しなければ63分で止まります。

動かなかった台

text
動かなかった台の数

分けた数            1台          2台          8台         32台
1個                  0台          1台          7台         31台
2個                  0台          0台          6台         30台
8個                  0台          0台          0台         24台
32個                 0台          0台          0台          0台
128個                0台          0台          0台          0台

入力1個で32台なら、31台が何も処理しません。費用だけが立ちます。

揃った行を見てください。分けた数が台数以上なら、空きは0台になります。

公式も揃えることを勧めています。同時に走らせる数の望ましい値は、その仕事の中の計算の担い手の数に等しいという記述です。

分けた数が台数を下回ると、超えた分は動かない。

単位: 分1個のまま483分2個に分ける243分8個に分ける63分32個に分ける18分480分ぶんの処理を32台で流した場合。128個に分けても18分で、それ以上は縮まない。
図1 ── 分けた数と、終わるまでの時間(32台を用意した場合)
出典AWS ドキュメント「Batch transform for inference with Amazon SageMaker AI」2026-08-18 確認
If you have one input file but initialize multiple compute instances, only one instance processes the input file.
原文AWS ドキュメント「Batch transform for inference with Amazon SageMaker AI」 この内容の有効期限2027-02-18

分けすぎても縮まないので、台数に合わせて止める

台数を超えて分けても、終わるまでの時間は変わりません。合わせるのが無駄のない点です。

バッチ推論では、同時に走らせる数を台数に合わせます。公式は同時に走らせる数の望ましい値は、その仕事の中の計算の担い手の数に等しいと述べています。

前の表の最下2行がそれを示しています。32個と128個で、どの列も同じ値です。

合わせる点

  1. 分けた数 < 台数。超えた台が動かない
  2. 分けた数 = 台数。無駄がない
  3. 分けた数 > 台数。時間は縮まない
  4. 割り切れない。最後の回で一部が空く

4番目は表に出ています。8個を32台で流すと24台が空きました。

だから決め方は単純です。台数を決めてから、その数の倍数に分けることになります。

細かくしすぎた場合

分けすぎると、1個あたりの立ち上げや読み込みの手間が積もります。この計測には入れていません。

実際には、分ける単位が小さすぎると処理そのものより準備のほうが長くなります

だから上限は台数の倍数のうち、1個あたりが十分な大きさになる範囲で選ぶことになります。

余談 この計測での注意

1台の立ち上げに3分、全体で480分ぶんという値は置いたものです。分けた1個ずつの処理時間も等しいものとしました。実際には大きさに偏りがあり、いちばん大きい1個が終わるまで全体が終わりません。1個あたりの読み込みや書き出しの手間も含めていません。ここで見せているのは、並列の上限が台数ではなく分けた数で決まるという関係で、それは動いていない台を数えれば確かめられます。

出典AWS ドキュメント「Batch transform for inference with Amazon SageMaker AI」2026-08-18 確認
The ideal value for MaxConcurrentTransforms is equal to the number of compute workers in the batch transform job.
原文AWS ドキュメント「Batch transform for inference with Amazon SageMaker AI」 この内容の有効期限2027-02-18

よくある質問

バッチ推論はいつ使いますか
常駐する受け口が要らない場合です。大きなデータの集合から推論を得る用途に向きます。
台数を増やせば速くなりますか
分けた数までです。入力が1個なら、台を増やしても1台しか処理しません。
何台が無駄になりますか
分けた数を超えた分です。入力1個で32台なら31台が動きませんでした。
分ける数はどう決めますか
用意する台数と揃えます。台数と同じにするのが望ましいと公式も述べています。

まとめ

  • 溜めてからまとめて処理する
  • 分けた数が並列の上限
  • 超えた台は動かない
  • 分ける数は台数に揃える

今日から始められること

  1. 入力が何個に分かれているか確かめる
  2. 用意している台数と比べる
  3. 動いていない台がないか見る
  4. 分ける単位を決め直す

実務で組んだバッチ推論のワークフローには、値段が付きます

同じ課題を持つ会社にとって、動いている設定は「作る時間」を買えるということです。ServiceDockは自作のワークフローやテンプレートを出品できるマーケットプレイスです。手数料や出品の流れは出品者向けページにまとまっています。

出品の仕組みを見る