概要
プレファレンス実行中、トレーナーはステップごとまたはエポックごとに、時には保留されたペアについても損失を報告します。これは1つの疑問に答えます。すなわち、モデルが開始された時点と比較して、平均してどの程度の確信度で、モデルの暗黙の報酬が好ましい回答を好ましくない回答よりも上位にランク付けしているか、ということです。
教師あり学習の損失に似ていますが、意味は異なります。教師あり学習の損失はトークンに対する交差エントロピーであり、任意の場所(多くの場合1以上)から開始できます。DPOの損失は、固定の開始値と0の下限を持つ、ペアごとの分類損失です。この2つを比較することはできません。
0.693から開始する理由
最初のステップでは、トレーニング中のモデルとリファレンスモデルは同一です。すべての対数比は0であるため、すべてのマージンは0となり、σ(0) = 0.5、損失は−ln 0.5 = ln 2 ≈ 0.693、つまりコイントスの損失となります。これはすべてのデータセットとすべてのモデルに当てはまるため、有用なサニティチェックとなります。最初に記録される値は0.69かそれよりわずかに下になるはずです。そこから大きく離れて開始した場合、通常、リファレンスが初期モデルではないか、異なる損失のバリアントが使用されていることを意味します。
step 0: model = reference
every log-ratio = 0 → margin = 0
loss = −ln σ(0) = −ln 0.5 = ln 2 ≈ 0.693認識すべき形状
| 確認される事象 | 一般的な意味 | 対応策 |
|---|---|---|
| 0.6〜0.7前後で推移 | ペアはモデルをほとんど変化させませんでした。ペアが少ない場合や、2つの回答の違いがわずかである場合によく見られます。 | ペアを追加し、回答の違いをより明確にしてください。その後でのみ、より低いβや別のエポックを検討してください。 |
| 着実に低下(例:0.3まで) | モデルは選好を学習しています。 | 初期モデルと比較評価し、回答が実際に改善されたかを確認します。 |
| 急速に0近くまで低下する | ペアが簡単すぎる(悪い回答が明らかに不適切である)か、モデルがそれらを暗記しています。 | より多様な、あるいは難易度の高いペアを使用するか、エポック数を減らすか、βの値を高くします。 |
| 0.69を超えて上昇する | 平均して、モデルは現在、初期状態と比較してペアを逆の順位で評価しています。 | 好ましい回答と好ましくない回答が入れ替わっていないか確認し、学習率を下げます。 |
数値の解釈
ペアの損失は−ln σ(β × マージン)であるため、各値はモデルとラベルの一致レベルに対応します:
| 損失 | σ:ラベルとの一致 | β × マージン |
|---|---|---|
| 0.693 | 0.50(コイントス) | 0 |
| 0.51 | 0.60 | 0.4 |
| 0.30 | 0.74 | 1.05 |
| 0.10 | 0.90 | 2.25 |
| 0.01 | 0.99 | 4.6 |
報告される損失はペア全体の平均であるため、中間の値は二極化を隠している可能性があります。つまり、ほとんどのペアは適切に学習されたものの、少数のペアが誤った方向にランク付けされている場合です。そのため、トレーナーは多くの場合、プレファレンス精度(正しい方向にランク付けされたペアの割合)と平均報酬マージンを併せて報告します。
- 4つのペアが、β × マージン2.0、2.0、2.0、および−1.0でトレーニングを終了します。
- それぞれの損失は0.13、0.13、0.13、および1.31です。
- 平均は0.42であり、適度な進捗があるように見えます。実際には、3つのペアは学習されていますが、1つのペアは完全に誤った順位付けがされています。そのペアは確認する価値があります。ラベル付けが間違っている可能性があります。
損失から読み取れないこと
- 回答が改善されたかどうか。 損失は、モデルが作成する回答ではなく、固定されたペアに基づいて計算されます。モデルがペアを完全に分離できたとしても、新しい質問に対する回答が悪化する可能性があります。
- 確率がどの方向に動いたか。 選択された回答の確率が低下した場合でも、拒否された回答の確率がさらに低下すれば、損失は減少します。研究者らは、DPOの過程で選択された回答の尤度が低下することが多い(「尤度変位」)ことを発見しており、TRLのドキュメントでは、好ましい回答を引き上げるよりも、拒否された回答を抑制する方が、通常ギャップがより大きく広がると指摘しています。
- 過学習が悪影響を及ぼすかどうか。 Zephyrのレポートでは、DPOステップは1エポック後に強い過学習(トレーニングセットの精度が完璧)を示しましたが、ベンチマーク結果には悪影響を与えず、最良のモデルは3回のDPOエポックから得られました。しかし、教師ありモデルが1エポック以上トレーニングされていた場合、DPOトレーニングを長くすると性能低下を引き起こしました。トレーニング曲線ではこれらのケースを区別できず、評価によって判明しました。
教師あり学習の実行で示されるトークン精度は、プレファレンス学習の指標ではないため、DPOでは表示されません。
よくある間違い
- DPOの損失と教師あり学習の損失の比較。計算式もスケールも異なります。
- 異なるβを用いた実行間でのDPO損失の比較。
- 0に近い損失を喜ぶこと。ペアが少ないか簡単な場合、これは予想される結果であり、多くの場合、暗記の兆候です。
- ラベルの入れ替わりを見逃すこと。損失が0.69を超えて上昇する場合、通常、好ましい側と好ましくない側がどこかで逆転していることを意味します。
- 曲線で判断を止めること。回答が改善されたかどうかは、初期モデルに対する評価によってのみ示されます。
参考文献および関連資料
外部ソースは新しいタブで開きます。
- 01Direct Preference Optimization: Your Language Model is Secretly a Reward ModelRafailov et al., 2023 · arXiv · arxiv.org損失を定義し、その勾配が各ペアにどのように重み付けを行うかを説明します。
- 02DPO TrainerHugging Face TRL docs · huggingface.coDPOトレーナーが記録する項目(損失、暗黙の報酬、マージン、精度)を列挙します。
- 03Unintentional Unalignment: Likelihood Displacement in Direct Preference OptimizationRazin et al., 2024 · arXiv · arxiv.orgDPO中に好ましい回答の尤度が低下する理由と、それを引き起こすペアについて説明します。
- 04Zephyr: Direct Distillation of LM AlignmentTunstall et al., 2023 · arXiv · arxiv.orgSFT後にDPOを実行した事例。DPOステップの過学習がもたらした影響とそうでないものを含みます。