リソース/モデルのトレーニング/トレーニング中のプロセス

指標

過学習と学習不足

過学習(オーバーフィッティング)とは、モデルが背後にあるパターンを学習するのではなく、学習用の例を暗記してしまう状態のことです。そのため、学習した例にはうまく対応できますが、新しいデータに対する精度は低下します。学習不足(アンダーフィッティング)はその逆で、パターンを全く学習できていない状態を指します。

第6章読了時間 2分参考文献 4件

概要

トレーニングセットは、モデルが直面する状況のサンプルです。これには、アシスタントの回答方法、トーン、フォーマットなど、学習させたいパターンと、1つの返答の正確な言い回し、タイプミス、特定の顧客の質問の癖など、学習させたくないノイズが含まれています。モデルがパターンを習得した場合、それは汎化されたと言えます。ノイズまで適合してしまった場合はオーバーフィッティングであり、パターンを習得できなかった場合はアンダーフィッティングとなります。

アンダーフィットパターンを捉え損ねる適切な適合パターンに従うオーバーフィットノイズを記憶する
同じ10個のトレーニングサンプルに対する、3つのモデル。アンダーフィットのモデルはすべての箇所で誤っています。オーバーフィットのモデルはこれら10個の点では完璧なスコアを出しますが、ノイズまで学習しているため、次の点では誤ります。言語モデルのファインチューニングも同様の失敗をします。背後にある振る舞いではなく、サンプルそのものを再現し始めてしまうのです。

見分ける方法

最も明確なシグナルは損失曲線に現れます。モデルがより多くを暗記できる限り、トレーニング損失は下がり続けます。モデルがトレーニングしたことのない会話で測定される検証損失は、モデルが汎化する内容を学習した時点で下がるのを止まり、暗記を始めると上昇します。

過学習ここで停止エポック 1エポック 2エポック 3高低損失トレーニング損失検証損失
モデルは常に多くのことを記憶できるため、トレーニング損失は低下し続けます。検証損失は正直です。これが上昇に転じたとき、モデルは背後にあるパターンではなく、例そのものを学習し始めています。

ファインチューニングされた言語モデルでは、オーバーフィッティングは回答そのものにも現れます。

  • そのままのコピー: トレーニングの返答に含まれるフレーズ、文全体、さらには名前や数字までもが、無関係な質問への回答に現れます。
  • 定型的な回答: 元の質問に似ているだけの質問に対しても、学習データに多く含まれる特定の回答が返されます。
  • 柔軟性の喪失: 学習データと同じ言い回しの質問にはうまく対応できますが、異なる言い回しにはつまずき、ベースモデルが処理できていた一般的なタスクの精度も低下します。
  • 自信に満ちた捏造: モデルは、背景知識がないまま、特定のメニュー名や番号付きの手順など、詳細な回答のスタイルを模倣し、具体的な内容をでっち上げます。

発生する理由

原因暗記につながる理由
学習データが少なすぎるデータが少ない場合、各回答を暗記することが損失を減らす最も簡単な方法となります
エポック数が多すぎるモデルが認識するまで、各パスで同じ回答が繰り返し提示されます
学習率が高すぎる更新幅が大きいため、個々の例に素早く適合してしまいます
重複および繰り返される回答何度も出現する回答は、固定の答えとして学習されます
データの偏り実際の質問がどのように変化するかをモデルが認識できないため、変化のパターンを学習できません
データに対するモデルの容量が大きすぎる小さなデータセットに対するフルファインチューニングや大規模なアダプターは、例を記憶する余裕があります

防ぐ方法

  • 最適なポイントで停止する。 検証損失が最も低かったエポック数、またはその時点のチェックポイントを使用します。これは早期終了と呼ばれ、最もシンプルかつ効果的な防御策です。
  • エポック数を減らす、または学習率を下げる。 どちらも、重みがベースモデルからどれだけ離れるかを制限します。
  • より多く、より多様なデータ。 短く曖昧な質問を含め、人々が実際に尋ねるさまざまな方法を網羅します。数百の多様な例は、千のほぼ重複した例よりも多くのことを学習させます。
  • トレーニング前に、重複データや過度に繰り返される返答を削除する。
  • 正則化: LoRAのドロップアウト、ウェイトディケイ、または単により小さなアダプターランクを使用することで、保存できる情報量を制限します。
同じ150件の会話に対する2つの実行(例示)
  1. 実行A:6エポック、乗数2。 トレーニング損失は0.15に達します。検証損失はエポック2の後に最も低くなり、その最小値を大きく上回って終了します。テストチャットでは、回答にトレーニングの返答から文全体が再利用されています。
  2. 実行B:2エポック、乗数1。 トレーニング損失は0.6で終了し、検証損失は最小値付近で終了します。回答は自社のスタイルを維持しつつ、質問ごとに新しい言葉で表現されています。
  3. 要点: 実行Aのトレーニング損失の低さは成果ではなく問題です。実行Bは汎化されており、トレーニングコストも3分の1で済みました。

アンダーフィッティング

アンダーフィッティングは正反対の失敗です。トレーニング損失も検証損失もあまり下がらず、チューニングされたモデルはベースモデルとほぼ同じように回答します。原因は、トレーニング不足(エポック数やステップ数が少なすぎる、または学習率が低すぎる)、あるいは類似の質問に対して矛盾した回答をするなど、一貫したパターンのないデータです。まずはデータを確認してください。一貫性のないデータでエポック数や学習率を上げても、主にその一貫性のなさを学習させるだけです。

よくある間違い

  • トレーニング損失で実行を判断すること。通常、最も低いトレーニング損失は、最もオーバーフィッティングした実行に見られます。
  • 同じ小さなデータセットでエポック数を増やし、弱いモデルを修正しようとすること。
  • すべての例をトレーニングに使用するために検証用スプリットを省略し、オーバーフィッティングを確認する唯一の手段を失うこと。
  • 重複データや1つの定型的な返答がデータを支配するままにすること。
  • トレーニングにも含まれる会話で検証を行い、オーバーフィッティングを完全に隠してしまうこと。

参考文献および関連資料

外部ソースは新しいタブで開きます。

  1. 01OverfittingGoogle Machine Learning Crash Course · developers.google.com汎化、オーバーフィッティング、および確保されたデータセットの役割(インタラクティブな例付き)。
  2. 02OverfittingWikipedia · en.wikipedia.org
  3. 03Early stoppingWikipedia · en.wikipedia.org検証エラーが最も低いポイントでの停止(オーバーフィッティングに対する最も一般的な防御策)。
  4. 04Regularization for Deep LearningGoodfellow, Bengio & Courville · Deep Learning, chapter 7 · deeplearningbook.orgウェイトディケイ、ドロップアウト、早期終了、データ拡張に関する教科書的な解説。

専門家が数週間かける作業を数分に短縮します

Scalataがお客様のチーム、データ、および統制にどのように適合するかをご確認ください。

営業へのお問い合わせ