AIの学習と推論の違い:計算・メモリ・数値形式・バッチサイズ・ハードウェアを比較
学習は、データを順伝播させて損失を求め、逆伝播で勾配を計算し、オプティマイザで重みを更新することを大量に繰り返して、モデルの重みを決める処理です。推論は、決まった重みで順伝播だけを行い、新しい入力に答えを出す処理です。学習では重みに加えて勾配やオプティマイザの状態、逆伝播のための活性化を保存するので、同じモデルの推論よりずっと多くのメモリと計算が必要です。推論は1回の計算は小さいものの、使われるたびに実行され、応答の速さが重視されます。
| 項目 | 学習(トレーニング) | 推論(インファレンス) |
|---|---|---|
| 目的 | データから、モデルの重みを決める | 決まった重みで、新しい入力に答えを出す |
| 計算の内容 | 順伝播 → 損失の計算 → 逆伝播で勾配を計算 → オプティマイザで重みを更新、を繰り返す | 順伝播だけ |
| 計算量の目安 | 1つの入力あたり順伝播の約3倍(逆伝播が順伝播の約2倍)。Transformerでは全体で約6 × パラメータ数 × トークン数 | パラメータ数Nのモデルで、1トークンあたり約2N |
| 必要なメモリ | 重み、勾配、オプティマイザの状態(Adamでは2つ)、逆伝播のための活性化。すべてFP32なら1パラメータあたり16バイトに活性化が加わる | 重みと、計算中の活性化(大規模言語モデルではKVキャッシュも)。FP16なら1パラメータあたり2バイト |
| 数値形式 | BF16やFP16の混合精度(マスターウェイトはFP32) | FP16やBF16、INT8やINT4などに量子化した形式 |
| バッチサイズ | 大きなバッチにまとめて、演算器の利用率を上げる | 応答を急ぐ場合は小さく(1のこともある)。サーバでは複数の要求をまとめて効率を上げる |
| 重視する性能 | スループット(学習を終えるまでの時間、演算器の利用率) | レイテンシ(1つの要求への応答時間)とスループットの両立、処理あたりのコスト |
| ハードウェア | 大容量のHBMと高い演算性能を持つGPUやアクセラレータを、高速なネットワークで多数つなぐ | データセンターのGPUや推論向けのアクセラレータから、スマートフォンのNPUやマイコンまで幅広い |
| 並列化 | データ並列、テンソル並列、パイプライン並列。勾配をオールリデュースで集める | 複数の要求を並列に処理する。大きなモデルはテンソル並列などで複数のチップに分ける |
| エネルギー | 1回の学習で、多数のチップを長い期間動かして大量の電力を使う | 1回は小さいが、使われるたびに実行され、利用が多いと合計は大きくなる |
数値は代表的な目安で、世代や製品によって異なります。