損失カーブの読み方

6 分で読めます解説記事
損失カーブの読み方

損失グラフは学習実行の心拍数です。健康な曲線の形、学習率爆発の形、過学習の早期発見、eval スプリットの本当の役割。

TheTensorTune で Start を押すと、モニターブロックが線を描き始めます。この線はアプリ全体で最も情報密度の高いものですが、たいていの人はその読み方を教わっていません。損失カーブは得点ではなく、実行の完全なレポートです。描き分けられる4〜5個のプロットを知れば、実行は一目で読めます。

この線は実際何か

損失とはモデルの驚きです。各学習ステップで、モデルはあなたのサンプルのバッチを受け取り、次のトークンを予測し、どれだけ外したかを測ります。損失が高い=大いに外した。低い=あなたの答えが来ると予見していた。学習とは、次回の驚きが小さくなるよう数百万の数値を少しずつ動かすことです。モニターのグラフはステップごとに点を打ち、加えて破線でもう1本、eval スプリット(モデルが学習に使わない取り置き分、正直な検証用として確保されたもの)の線を描きます。

健康なプロット

健康な曲線は最初に急落ちし、床に近づくにつれて平坦になります。私たちのデモ実行の1つ(36個のサポート担当者サンプルに対する小さな instruct モデル)では、学習損失は90ステップで約4.0から1.4まで下がり、eval 損失も続いて下がりました。この形は、モデルがデータの言葉そのものではなくパターンを学んでいることを意味します。eval サンプルは一度も見せていないからです。破線が実線に続いて下がっているとき、その実行は信じてよい。

爆発

曲線が下がらず、上昇する、あるいはステップごとに悪化するギザギザに折れることがあります。これはほぼ常に学習率です。学習率は押す力の大きさです。小さすぎれば何も起きず、大きすぎれば各ステップが行き過ぎて、モデルは良くならず悪くなります。私たちはテスト中に1.0を設定したことがあります(しないでください)。損失がまっすぐ上昇するのを見ました。LoRA では 2e-4 が実績のある初期値です。爆発したら下げて最初から。飛んだ実行を救う価値はありません。

静かな嘘:過学習

たちの悪いプロットは、実線が下がり続けるのに破線が反転して上昇するものです。モデルは学習サンプルを単語ごとに暗記し、未見のデータでは悪くなっています。小さなデータセット(ファインチューニングに使われる大半はそうです)では、2〜3エポック後に定刻でやって来ます。破局ではなく情報です。そこで止めるか、エポックを減らすか。TheTensorTune の早期終了が eval 線を監視して、改善しなくなった実行を止めてくれます。

経験則: 学習損失低下+eval 損失低下=学習している。学習損失低下+eval 損失上昇=暗記している。全部上昇=学習率。全部平坦=データまたはエポックを増やす。

画面上に居場所に値するもう1つの数値はパープレキシティです。比較画面がベースと学習済みの両方について報告します。損失を「平均していくつの単語の間で迷っていたか」に変換したもので、低いほど自信があります。デモデータセットの eval スプリットで55から9未満に落ちるのを見るのは、どの損失の数字より満足でした。モデルが一度も学習していないデータで測られたからです。eval スプリットを取る意味のすべてはここにあります。感覚を数値に変えること。

#学習#loss#ガイド