事前にまとめて計算しておくか、リクエストのたびに計算するか。鮮度とコストのトレードオフ。
モデルの予測(推論)をいつ計算するかには、大きく2つのやり方があります。バッチ推論は、夜間などにまとめて全員分を計算して保存しておき、使うときは読むだけにする方法です。オンライン推論は、リクエストが来たときにその場で計算して返す方法です。
| 観点 | バッチ推論 | オンライン推論 |
|---|---|---|
| 鮮度 | 計算した時点のまま(例:前日の夜の情報) | その瞬間の情報を使える(今見ている商品・今の検索語) |
| レイテンシ | 読むだけなので速い(KVS や DB から数 ms) | モデルの計算の分だけかかる。p99 の管理が必要 |
| コスト | 安い計算機をまとめて使える。ただし使われない人の分も計算する | 常にサーバーを動かしておく。リクエストの量に応じて増減させる |
| 障害の影響 | 計算が失敗しても前日の結果を使い続けられる | 推論のサーバーが落ちると、その機能が止まる(代わりの答えを用意する) |
| 向いている例 | メールのおすすめ・需要予測・顧客のスコア・毎日のレポート | 不正検知・検索の並べ替え・入力に応じた応答(LLM) |
判断の目安:「入力が事前に全部分かっているか」と「答えがどれくらい古くても許されるか」で決めます。対象のユーザーや商品が決まっていて、1日前の結果でよいならバッチが簡単で安全です。今の行動や、事前に分からない入力(自由な文章)を使うならオンラインが必要です。
まずバッチで始めて効果を確かめ、鮮度が足りないと分かってからオンラインにするのも良い進め方です。
面接ではこう答える
バッチ推論は、夜間などにまとめて全員分を計算して保存し、使うときは読むだけにする方法で、オンライン推論はリクエストが来たときにその場で計算する方法です。判断の軸は、入力が事前に全部分かっているかと、答えがどれくらい古くても許されるかです。対象が決まっていて前日の結果でよければ、安く安全なバッチを選び、今の行動や自由な文章のように事前に分からない入力を使うならオンラインにします。実務では、候補はバッチ、並べ替えはオンライン、のように組み合わせることも多いです。
MLとの関わり推論の設計で最初に決めることで、費用・レイテンシ・障害時の挙動がこれで大きく変わります。