リソース/モデルのトレーニング/トレーニング手法

指標

選好精度

選好精度(Preference accuracy)とは、モデルが非選好の回答よりも選好される回答に対して、開始時点と比較してより高い暗黙の報酬を与えるようになったペアの割合です。50%付近から始まり、選好が学習されるにつれて上昇します。

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

概要

一部のトレーナーは、DPOの損失の横に、通常選好精度(preference accuracy)と呼ばれる数値を報告します(Hugging Face TRLでは rewards/accuracies として記録されます)。これは各ペアに対して、「参照モデルと比較した結果、モデルは好ましい回答をそうでない回答よりも高くランク付けしているか」という「はい」か「いいえ」で答えられる問いを立てます。報告される値は、「はい」となったペアの割合です。

計算方法

DPOの暗黙の報酬(implicit reward)を思い出してください。これは、学習済みモデルが参照モデルよりもどれだけ高い確率で回答を見つけるかの対数にβを掛けたものです。各ペアには両側に1つずつ、計2つの報酬があり、マージン(margin)は選択された報酬から拒否された報酬を引いた値となります。

ペアごとに算出し、その後平均化
margin   = reward(chosen) − reward(rejected)
correct  = margin > 0
accuracy = (pairs with margin > 0) ÷ (all pairs)

最初のステップでは学習済みモデルは参照モデルと等しいため、すべてのマージンは正確に0になります。最初の更新ではマージンはごくわずかで、符号もほぼランダムであるため、精度はコイントスと同じ約50%で推移します。学習が進むにつれてマージンは広がり、ペアが何らかの学習効果をもたらしていれば、その大部分はゼロより右側(プラス)に移動します。

誤った方向正しい方向ステップ0全20ペア:マージン0学習後精度 = 16 ÷ 20 = 80%
各点は1つのペアであり、暗黙の報酬マージン(参照モデルに対する、高評価と低評価の差)によって配置されています。開始時のマージンはすべて0です。学習後、0より右側にある点の割合が選好精度となります。ここでは20個中16個、つまり80%です。
10個のペア、2つの数値
  1. 1エポック後、10個のペアのマージンが0.9、0.6、0.5、0.4、0.3、0.2、0.1、0.05、−0.1、−0.3であるとします。
  2. 8つがゼロを上回っているため、選好精度は 8 ÷ 10 = 80% となります。
  3. 平均マージンは 2.65 ÷ 10 = 0.265 となり、プラスではありますが控えめな数値です。
  4. 次に、10個のマージンがすべて0.02である実行を想像してください。精度は100%ですが、損失は依然として0.68です。すべてのペアが僅差で正しくランク付けされている状態です。精度は勝者の数を数えますが、損失とマージンはその差の大きさを示します。

損失と合わせた解釈

精度損失解釈
約50%約0.69まだ何も学習していないか、ペアの違いが微妙すぎてモデルが分離できていません。
着実に上昇着実に低下健全なパターン:モデルは選好を学習しています。
早期に100%0付近ペアが容易であるか、暗記されています。多様性と難易度を確認し、エポック数を減らすか、βを高くすることを検討してください。
高い依然として0.6付近ペアは正しくランク付けされていますが、マージンはごくわずかです。モデルはほとんど変化していません。
50%未満0.69超モデルは逆の学習をしています。ラベルが入れ替わっていないか確認してください。

曲線は変動しやすいと想定してください。精度は多くの場合バッチごとに記録され、8ペアのバッチでは0%、12.5%、25%といったスコアしか出ないため、単一の読み取り値は大きく変動します。特定の1点ではなく、多くのステップにわたる傾向や、エポックごとの値を確認してください。全体としてペアが非常に少ない場合、少数のペアの符号が反転するだけで数値が大きく変動しますが、そこに大きな意味はありません。

測定されないもの

選好精度は、すでに回答が作成されている提供済みのペアに基づいて計算されます。モデルが現在生成している回答を確認するものではありません。2024年の研究では、関連する数値(参照モデルなしで、モデルがより良い回答に直接高い確率を与えるかどうか)を測定し、最先端の選好チューニング済みモデルの多くが、一般的な選好データセットにおいてその割合が60%未満であることを発見しました。これは、ベースとなるモデルがすでに犯している軽微なランク付けの誤りであっても、DPOが修正に苦戦することが一因です。学習ペアにおける高い数値は、実行が機械的に機能したことを示すものであり、回答の品質を測定するものではありません。

検証用に保持されたペアについても精度が報告されている場合、その数値は学習時の精度よりも有益です。なぜなら、モデルが学習していないペアにも選好が適用されるかどうかを示すからです。最終的な判断は、モデルが独自の回答を生成する評価によって行われます。

よくある間違い

  • 100%の学習精度を成功と見なすこと。ペアが少ない、または容易な場合は想定される結果であり、単なる暗記を意味する可能性があります。
  • 損失やマージンを考慮せずに精度を解釈すること。僅差での正解も大差での正解も、どちらも同じ正解としてカウントされます。
  • データセット間で精度を比較すること。難易度が高く微妙な違いのペアでは、当然ながら数値は低くなります。
  • これを評価として扱うこと。モデルが生成した回答を直接確認するものではありません。

参考文献および関連資料

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

  1. 01DPO TrainerHugging Face TRL docs · huggingface.coDPOトレーニング中に記録されるrewards/accuraciesおよびrewards/marginsを定義します。
  2. 02Direct Preference Optimization: Your Language Model is Secretly a Reward ModelRafailov et al., 2023 · arXiv · arxiv.orgこの指標の背後にある暗黙の報酬がどこから来るのかを説明します。
  3. 03Preference Learning Algorithms Do Not Learn Preference RankingsChen et al., 2024 · arXiv · arxiv.org選好チューニングされたモデルが、より良い回答を実際に高くランク付けする頻度と、DPOが既存のランキングエラーをほとんど修正しない理由について説明します。
  4. 04Zephyr: Direct Distillation of LM AlignmentTunstall et al., 2023 · arXiv · arxiv.org1回のDPOエポック後の完璧なトレーニング精度と、それが最終モデルにとって何を意味し、何を意味しなかったのかを説明します。

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

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

営業へのお問い合わせ