曲線が示すもの
ジョブの実行中、プロバイダーは時間の経過とともに損失(ターゲットトークンの平均交差エントロピー)を記録します。重要となるのは2つの曲線ですが、一部のプロバイダーは3つ目の数値を追加します。
- トレーニング損失は、トレーニング中のバッチで通常ステップごとに測定されます。バッチごとに内容が異なるためノイズが多くなります。短く定型的な返答のバッチは、長く珍しい返答のバッチよりもスコアが低くなります。
- 検証損失は、ホールドアウトされた検証セットで、Nステップごとまたは1エポックに1回など、定期的に測定され、重みの更新は行われません。毎回同じ例を使用するため曲線が滑らかであり、モデルがそれらから学習していないため、より正確な指標となります。
- 一部のプロバイダーが報告するトークン精度は、モデルの最上位の推測がターゲットトークンと完全に一致した割合です。損失とは逆の方向に動き、読み取りやすいですが、精度としては粗くなります。
数値の意味
交差エントロピーは自然対数で測定されます。トークンあたりの損失がLである場合、モデルが正しい次のトークンに約eの-L乗の確率を与えたことを意味し、これは幾何平均として計算されます。これにより、いくつかの数値をイメージしやすくなります。
| トークンあたりの損失 | 正解トークンの確率 | おおよそ |
|---|---|---|
| 2.3 | 約0.10 | 不確実な場合が多い。多くの妥当な続きのパターンが存在する |
| 1.0 | 約0.37 | 平均してかなり確信している |
| 0.5 | 約0.61 | スタイルと表現を適切に予測している |
| 0.1 | 約0.90 | ほぼ一語一句同じ。トレーニングデータでは、多くの場合暗記の兆候を示します。 |
絶対的な水準はデータに大きく依存します。自由形式で多様な回答は、多くの異なる回答が等しく適切であるため、下限が高くなります。一方、テンプレート化された回答は、何も問題がなくても非常に低くなる可能性があります。したがって、他の場所の数値と比較するのではなく、同じ実行内、または同じベースモデルとデータでの実行間で曲線を比較してください。異なるベースモデルは異なるトークナイザーを使用するため、損失を比較することはできません。
パターンと対応策
| 見られる傾向 | 意味 | 対処法 |
|---|---|---|
| 終了時も両方が下降している | まだ学習中 | エポック数を増やすと改善する可能性があります |
| トレーニング損失は下降し、検証損失は平坦になる | ほぼ適切 | ここで停止します |
| トレーニング損失は下降し、検証損失は上昇する | 過学習: サンプルを暗記している状態 | エポック数を減らす、学習率を下げる、より多様なデータを使用する |
| どちらもあまり下降しない | 学習不足、またはデータに一貫性がない | データの品質を確認する。エポック数または学習率をわずかに上げる |
| トレーニング損失がギザギザでスパイクがある | 学習率が高すぎる | 学習率を下げる。ウォームアップを追加する |
| 各エポックの境界でトレーニング損失が段階的に低下する | モデルが前のエポックのサンプルを認識している | 暗記の初期兆候。検証損失を注視してください |
| 開始時から検証損失がトレーニング損失を大きく下回っている | 検証セットが簡単すぎるか、トレーニングデータと重複している | 分割を確認し、共通またはほぼ重複している会話がないか確認する |
- 設定: 1,200件のトレーニング用会話、130件のホールドアウト、バッチサイズ8、3エポック:1エポックあたり150ステップ、合計450ステップ。
- エポック1: トレーニング損失は1.6から0.9に、検証損失は1.5から0.95に低下。両方とも低下しているため、学習が進行しています。
- エポック2: トレーニング損失は0.6に到達。検証損失はステップ250付近で0.85で底を打ちます。
- エポック3: トレーニング損失は0.35まで低下し続けますが、検証損失は1.0に再上昇します。ギャップが広がっており、モデルが暗記(過学習)しています。
- 結論: 最適なモデルはエポック2の初期、ステップ250付近でした。2エポックで再実行するか、プロバイダーがチェックポイントを保持している場合はその時点のチェックポイントを使用し、ベースモデルと比較評価してください。
損失から読み取れないこと
損失は、モデルがターゲットの回答をどの程度確率が高いと見なすかをトークンごとに測定します。回答が正確か、役立つか、安全かを測定するものではありません。モデルは、事実を誤っていても、言い回しやフォーマットを合わせることで損失を下げることができます。また、検証損失がわずかに高いモデルの方が、より良い回答を提供する場合もあります。曲線を使用してエポック数や学習率を選択し、問題を発見してください。モデルが実際に改善されたかどうかを判断するには、チューニングされたモデルとベースモデルの回答を並べて比較する評価を行ってください。
よくある間違い
- トレーニング損失が最も低い実行を選択すること。通常、これは最も過学習(オーバーフィット)しています。
- トレンドではなく、トレーニング曲線のノイズの多い単一のポイントに反応すること。
- 異なるベースモデル、トークナイザー、またはデータセット間で損失を比較すること。
- 検証曲線がない状態を問題ないとみなすこと。ホールドアウトされたデータがなければ、過学習を可視化できません。
- 曲線だけで判断を終えること。見栄えの良い曲線であっても、実際の回答の評価が必要です。
参考文献および関連資料
外部ソースは新しいタブで開きます。
- 01Overfitting: Interpreting loss curvesGoogle Machine Learning Crash Course · developers.google.com実際の損失曲線の形状のギャラリーと、それぞれの考えられる原因。
- 02OverfittingGoogle Machine Learning Crash Course · developers.google.comトレーニング損失と検証損失がどのように乖離するか、そしてその乖離が何を意味するか。
- 03Cross-entropyWikipedia · en.wikipedia.org
- 04A full training loopHugging Face LLM Course · huggingface.co実際のトレーニングループにおいて、トレーニング損失と評価損失がどこから生じるか。