役立つメンタルモデル
トレーニングとは、制御された誤差修正です。
モデルの内部に調整可能なダイヤルがあると想像してください。例を入力すると、モデルは出力を生成します。採点ルールは、その出力がどの程度よかったか、悪かったかを示します。トレーニングでは、ダイヤルをどちら向きに回すべきかを計算し、少しだけ回して、もう一度試します。
この「ダイヤル」は数値で表されたモデルパラメータです。採点ルールは目的関数と呼ばれます。値が低いほどよい場合、そのスコアはしばしば損失と呼ばれます。
この説明は、モデルがデータを「吸収する」と表現するより正確です。データは例を提供します。目的関数は改善の方向を与えます。トレーニングアルゴリズムがモデルを変更します。
training examples
|
v
model makes outputs
|
v
objective measures loss or reward
|
v
calculate each parameter's contribution
|
v
update parameters
|
+---------- repeat ----------+
held-out validation data checks whether the result transfersAIトレーニングの仕組み
正確な方法はモデルと目的によって異なりますが、ニューラルネットワークのトレーニングは一般に次のループに従います。
- 例と目的関数を準備する。トレーニングデータには、入力とラベルの組み合わせ、モデルが予測するために一部を隠した入力、または望ましい出力に関するフィードバックなどが含まれます。
- 開始モデルを選ぶ。トレーニングは、新しく初期化したパラメータから始めることも、すでにトレーニング済みのモデルから始めることもできます。
- モデルにバッチを通す。バッチとは、まとめて処理される少数の例のグループです。このフォワードパスは推論に似ています。現在のモデルが入力を出力に変換します。
- 出力を評価する。損失関数は、正解となる出力からの距離を測定します。別の目的関数は、望ましい振る舞いに高い報酬を与えることもあります。
- どのパラメータに責任があるかを割り当てる。ニューラルネットワークでは、バックプロパゲーションによって各パラメータの勾配を計算します。勾配は、そのパラメータを少し変えたときに損失がどのように変化すると予想されるかを示します。
- パラメータを更新する。オプティマイザーは、それらの勾配を使って実際の変更量を決定します。学習率は、通常の更新の大きさを制御します。
- 繰り返して確認する。トレーニングはさらに多くのバッチに対して続きます。別に用意した検証データによって、更新を生み出した例を超えて改善が広がっているかを確認します。
An エポックとは、トレーニングデータセット全体を1回通過することです。トレーニングでは、1エポックの一部だけを使うことも、多数のエポックを使うこともあります。エポックは進捗の単位であり、有用な学習が行われたことを保証するものではありません。
このループは、トレーニングの狭い意味での技術的な定義を表しています。実際には、トレーニングという言葉は、データの収集とフィルタリング、目的関数の選択、実験の実行、チェックポイントの評価、停止時期の判断まで含む、周辺のより大きなワークフローを指すこともあります。
フィードバックは常に同じ形とは限らない
「予測を正解と比較する」という説明は出発点として役立ちますが、定義としては狭すぎます。
- 教師あり学習では、例に目標ラベルが含まれます。たとえば、画像に割り当てられたカテゴリーなどです。教師あり学習では、例に目標ラベルが含まれます。たとえば、画像に割り当てられたカテゴリーなどです。
- 自己教師あり学習では、データ自体が目標を提供します。言語モデルは、隠されたテキストや次に続くテキストを予測することで学習できます。自己教師あり学習では、データ自体が目標を提供します。言語モデルは、隠されたテキストや次に続くテキストを予測することで学習できます。
- 強化学習では、結果に報酬が与えられ、高い報酬につながる行動の確率がトレーニングによって高められます。強化学習では、結果に報酬が与えられ、高い報酬につながる行動の確率がトレーニングによって高められます。
これらの方法は、トレーニング信号がどこから来るかという点で異なります。しかし中心となる考え方は共通しています。フィードバックを使って、モデルのパラメータを目的に向かって変更するということです。
1ステップのトレーニング例
パラメータを1つだけ持つモデルを考えます。wというパラメータです。このモデルは次のように予測します。
output = w × inputモデルはw = 0.5から開始します。トレーニング例の入力は2で、目標出力は4です。
最初の予測は次のとおりです。
0.5 × 2 = 1損失として二乗誤差を使います。
(prediction - target)²
(1 - 4)² = 9この例では、wに関する損失の勾配は-12です。負号は、wを増やすと損失が減ることを意味します。学習率が0.1の場合、勾配降下法は次の更新を行います。
new w = old w - learning rate × gradient
new w = 0.5 - 0.1 × (-12)
new w = 1.7これで予測は1.7 × 2 = 3.4となり、二乗誤差は0.36です。1回の更新によって、この例への適合度が高まりました。
実際のモデルは多数のパラメータを持つことがあり、トレーニングでは通常、バッチから得られる複数の信号を組み合わせます。オプティマイザーは、さまざまな例に共通して機能する変更を見つけなければなりません。1つのバッチを改善するだけでは不十分です。モデルは、取り分けておいたデータに対しても適切に機能しなければなりません。
トレーニングが重要な理由
トレーニングによって、モデルを後で使用するときに可能となる振る舞いが決まります。
アーキテクチャは、モデルが実行できる計算の種類を決めます。トレーニングは、そのアーキテクチャ内で特定のパラメータ値を選択します。それらの値によって、モデルが反応するパターンや、生成しやすい出力が形作られます。
目的関数が重要なのは、モデルが人間が気にかける可能性のあるあらゆる品質ではなく、受け取った信号に対して最適化されるからです。テキスト予測のためにトレーニングされた言語モデルは、多くの言語タスクで役立つようになりますが、予測損失だけで真実性、安全性、指示への従順さが直接保証されるわけではありません。後続のトレーニングでは、デモンストレーションや選好フィードバックによって、これらの振る舞いの一部を対象にできます。
データも同じ理由で重要です。モデルがトレーニング信号を受け取れるのは、利用可能な例とフィードバックからだけです。その資料に含まれる不足、誤り、重複、バイアスは、トレーニング後の結果に影響する可能性があります。
よくある誤解
トレーニングによってすべての例のコピーが保存される
トレーニングはパラメータを変更します。通常、トレーニングセットを行単位で検索できるデータベースがモデル内部に作られるわけではありません。
それでも、特にデータが繰り返された場合や、モデルがデータに過度に密着するようトレーニングされた場合、モデルはいくつかの例を記憶することがあります。しかし、記憶と有用な汎化は異なる結果です。完全に分離されたデータで評価することで、両者を区別しやすくなります。
トレーニング損失が低ければモデルは優れている
損失が低いということは、測定対象のデータ上で、モデルがトレーニングの目的によりよく適合していることを意味します。新しいケースで機能することや、目的関数が現実の目標を捉えていることを証明するものではありません。
トレーニング損失が低下する一方で検証性能が悪化する場合、モデルは過学習している可能性があります。つまり、新しい例への対応を犠牲にして、トレーニング例により特化しているということです。
トレーニングを増やせば、モデルは必ずよくなる
追加の更新は、役立つこともあれば、ほとんど効果がなかったり、トレーニングを不安定にしたり、過学習を増やしたりすることもあります。結果は、データ、目的関数、オプティマイザーの設定、モデルの容量、停止の判断によって異なります。
チャットしている間、モデルはあなたから学習する
通常のAI推論では、デプロイされたモデルが固定されたパラメータを使って入力に回答します。現在の会話に含まれる情報は、パラメータを変更せずに、次の出力へ影響を与えることがあります。
プロバイダーは、製品とデータポリシーに応じて、収集したやり取りを後で別のトレーニングプロセスに利用することがあります。これは、会話中にモデル自体が更新されることとは異なります。
すべてのモデルはゼロからトレーニングされる
トレーニングは既存のモデルから始めることができます。事前学習では、大規模で汎用的なデータセットから幅広い能力を構築します。ファインチューニングでは、より狭いタスクや領域に向けてトレーニングを続けます。ポストトレーニングは、振る舞いを形作ることを目的とする後続段階を広く指すラベルで、ファインチューニングや選好に基づく手法を含むことがあります。
これらのラベルの境界は完全には標準化されていません。信頼できる判定基準は、そのプロセスがモデルのパラメータを更新するかどうかです。プロンプトに例を与えることで出力は変えられますが、モデルがトレーニングされるわけではありません。
AIシステムにおけるトレーニングの位置づけ
機械学習とは、データや経験からシステムの振る舞いを改善する、より広いアプローチです。トレーニングは、そのアプローチの中でモデルを生成または適応させるプロセスです。
トレーニング実行の出力は通常、学習済みの重みやその他の状態を含む、保存されたチェックポイントです。開発者は候補となるチェックポイントを評価し、さらなるトレーニングやデプロイに使うものを選択します。
デプロイによって、異なる運用段階が始まります。推論では、入力がトレーニング済みモデルを通過し、予測、分類、または生成コンテンツが出力されます。フォワードパスは両方の段階に現れます。トレーニングでは、これにフィードバック、勾配計算、パラメータ更新が加わります。
次に読む内容
「AIにおける推論とは?」を読んで、パラメータ更新のループが停止し、トレーニング済みモデルが使われると何が変わるのかを確認してください。続いて「トレーニングと推論の比較」で、ライフサイクルにおける2つの段階を直接比較できます。