学習とは
AIの学習は最適化プロセスです。モデルは例を処理し、学習システムは出力が目的をどの程度満たしているかを測定します。その後、モデルの学習可能なパラメータを更新し、この処理を繰り返します。
勾配を使って学習するニューラルネットワークでは、通常、1回の学習ステップに次の3つの基本的な部分があります。
- モデルを順方向に実行して出力を生成する。
- 損失を計算する。損失とは、出力が学習の目的からどれだけ離れているかを表す数値です。
- 次の出力を改善するためのパラメータの変更を計算し、適用する。
すべての学習手法がラベル付きの例や同じ更新アルゴリズムを使うわけではありません。それでも、定義上の結果は学習済み状態が変化することです。たとえば、後で利用できる新しいパラメータ集合、更新されたアダプター、新しいチェックポイントなどが該当します。
推論とは
AIの推論は、学習済みモデルを実行して、予測、生成、スコア、埋め込み、その他の出力を計算する処理です。この操作はモデルの選択された学習済み状態を使いますが、その状態に学習による更新を適用することはありません。
推論は、チャットボットにプロンプトを送るとき、 fraudモデルが取引をスコアリングするとき、または企業が一晩分の画像を1つのバッチで処理するときに行われます。推論はリアルタイムである必要はなく、入力が文字どおり新しいものである必要もありません。重要なのは、その操作で入力をモデルの更新ではなく出力の取得に使っていることです。
実際の違い
最も明確な違いは、モデルが出力を計算した後に何が起こるかです。
- 学習:目的を示す信号を使って、学習済み状態を変更する。
- 推論:学習済み状態を固定したまま、出力を利用する。
これは、学習は遅く推論は速い、あるいは学習は研究室で行われ推論は製品で行われる、と説明するより信頼できる区別です。こうした説明が当てはまることは多いものの、例外は容易に見つかります。
| Dimension | Training | Inference |
|---|---|---|
| Primary purpose | Improve or adapt the model | Produce an output from the model |
| Learned parameters | Updated during the process | Read and used, but not updated by the operation |
| Typical gradient-based work | Forward calculation, objective calculation, backward calculation, optimizer update | Forward model calculation only |
| Input role | Supplies evidence for a learning objective | Supplies the case for which an output is needed |
| Result | Updated parameters, adapter, or checkpoint | Prediction, generation, score, embedding, or action signal |
| Timing | Can be one-off, periodic, or continuous | Can be request-driven, streamed, scheduled, or batched |
| Main system concerns | Learning quality, stability, data, memory, and time to reach an objective | Output quality, latency, throughput, reliability, and cost per workload |
2つのフェーズでは、同じモデルアーキテクチャや同じハードウェアの多くを使うことがあります。こうした類似点があっても境界がなくなるわけではありません。境界を決めるのは、学習による更新があるかどうかです。
具体例
スパムフィルターを構築しているとします。以下の数値は説明のための例です。
学習中、モデルは既知のラベルが「スパム」であるメールを受け取ります。モデルはそのメールのスパムスコアを0.40と判定します。学習システムはそのスコアを既知のラベルと比較し、誤差を計算して、モデルのパラメータを調整します。この処理を多数の例に対して繰り返します。その後保存されたチェックポイントでは、同じ学習用メールのスコアが0.91になります。
ここで、フィルターがユーザーの受信メールを受け取るとします。推論中、保存されたチェックポイントはそのメールにスパムスコア0.82を付けます。アプリケーションはそのメールをスパムフォルダーに移動することがあります。しかし、その処理自体がモデルに何かを教えるわけではありません。次のメールに使われるパラメータは同じままです。
後でシステムがレビュー済みメールを収集し、それを使ってモデルを更新する場合、その後の最適化実行は学習です。予測と学習による更新は、一方が他方にデータを提供する場合でも、別々の操作です。
それぞれが重要になる場面
学習に関する選択によって、モデルの学習済み状態にどのような振る舞いが組み込まれるかが決まります。データ、目的、更新方法、停止時点はすべて、利用可能になるチェックポイントに影響します。
推論に関する選択によって、そのチェックポイントが実際のワークロードでどのように振る舞うかが決まります。チームは、1人のユーザーへの迅速な応答、大規模バッチの効率的な処理、予測可能な出力品質、またはこれらの目標のバランスを最適化することがあります。
コストの比較はシステムによって異なります。大規模な学習を1回実行すると、推論リクエスト1回よりはるかに多くの計算資源を消費することがあります。それでも、リクエスト数が十分に多いサービスでは、推論にかかる総コストのほうが大きくなる可能性があります。頻繁に再学習するモデルでは、バランスがさらに変わることがあります。「学習のほうが高コストだ」という説明は、単位と期間を示さなければ不完全です。
混同されるもの
推論は自動的な学習ではない
AIアプリケーションは、リクエストを処理しながら会話を保存したり、文書を検索したり、キャッシュを更新したり、ユーザーの設定を記憶したりすることがあります。これらは周辺アプリケーションの変更です。学習プロセスによってモデルのパラメータや別の学習済みコンポーネントが変更されない限り、モデルの学習ではありません。
評価は隣接する操作である
検証やテストは、パラメータを更新せずにモデルが出力を生成するため、推論に似ていることがよくあります。しかし、目的が異なります。評価では、出力を既知の答えや基準と比較してモデルを測定します。学習ワークフローでは、更新ラウンドの間に一時停止してチェックポイントを評価することがありますが、その評価処理自体は学習による更新ではありません。
ファインチューニングも学習である
ファインチューニングは、未学習のモデルではなく既存のチェックポイントから開始します。モデルのすべてのパラメータを更新することもあれば、より小さなアダプターだけを更新することもあります。いずれの場合も、目的を満たすために学習済み状態を変更するため、学習側に分類されます。
フェーズは交互に組み込むことができる
デプロイされたシステムは、現在予測を行い、フィードバックを収集し、その後で改訂版モデルを学習することがあります。オンライン学習では、予測ステップと更新ステップをより密接に交互実行したり、組み合わせたりできます。ライフサイクルが曖昧に見えても、各操作が学習済み状態を更新するかどうかによって識別できます。
次に読む内容
モデルを変更する最適化プロセスについては「AIにおける学習とは?」を読んでください。学習済みモデルがインタラクティブシステムやバッチシステムで入力を出力に変換する仕組みについては「AIにおける推論とは?」を読んでください。