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

指標

強化学習ファインチューニングにおけるホールドアウト検証

プロバイダーがホスト型推論モデルで強化学習ファインチューニングを実行する際、数ステップごとに少数のホールドアウト検証用問題を再度出題し、同じ評価システムで回答を採点します。各問題は、訓練効果がモデルの未学習の問題にも適用されているかを示すタイムラインとなります。

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

それらの概要

オープンモデルでは、評価システムがスコアリングした実際の回答グループをScalata上で確認できます。一方、ホスト型推論モデルでは、プロバイダー自身が評価システムを実行するため、訓練中にスコアリングされた回答は共有されません。代わりに共有されるのが、一連のホールドアウト・チェック(held-out checks)です。これは数ステップごとに、モデルが訓練したことのない少数の検証用問題を出題し、同じ評価システムでその回答を採点するものです。

最初のチェックは訓練前のステップ0で実行されるため、各検証用問題は、訓練が進むにつれて同じ問題への回答がどう変化したかを示す小さなタイムラインとなります。これにより、このチェックは、学習による向上が訓練した問題だけでなく、モデルが未学習の問題にも適用されていることを示す、最も有力な証拠となります。

0.000.501.0005101520学習ステップ(0 = 学習前)上限:終始1.00低下後、回復低い状態から開始し、上昇検証報酬1つの不良サンプル
ステップ0、5、10、15、20で確認された3つのホールドアウトされた質問と、検証報酬(破線、確認されたすべての質問の平均)。ステップ0は学習前のモデルです。低い状態から上昇しているのは学習が継続していることを示し、1.00で平坦なのは上限に達していることを示します。一度低下して回復しているのは、不運なサンプルが1つあったことを示します。数値は説明のためのものです。

タイムラインの読み方

  • ステップ0で低く、その後上昇: 新しい問題にも適用できる学習効果を示す最も明確なサインです。
  • ステップ0以降ずっと1.00: 上限に達しています。モデルはすでに十分に適切な回答をしているため、この問題で改善を示すことはできません。このような問題が多い場合、評価システムまたは問題自体が簡単すぎることを意味します。
  • 途中でスコアが低下: 通常のノイズです。各チェックはサンプリングされた1つの回答であり、運悪く低いスコアが出ることもあります。1つのカードだけを見るのではなく、チェックや問題全体を通したトレンドを確認してください。
  • 上限未満で終始横ばい: モデルがより良い回答を見つけられていません。通常、初期モデルがこれらの問題にほとんど正解できないことが原因です。先に教師あり学習を実行することが有効です。
問題(例示)ステップ05101520読み取り
ダッシュボードをPowerPointにエクスポートするにはどうすればよいですか?0.250.380.560.810.81学習、15以降は横ばい
クライアントはアカウントなしで共有リンクを開くことができますか?0.500.690.750.940.94学習
どのファイル形式をアップロードできますか?0.750.940.320.880.9410で1つの不良サンプル
パスワードをリセットするにはどうすればよいですか?1.001.001.001.001.00上限:何も出力しない
検証報酬(平均)0.630.750.660.910.92実際のゲイン、15以降は横ばい
上記の例示的な実行の読み方
  1. 最初の2つの質問は低く始まり、上昇しています。回答がリファレンス返答の事実に向かって移動したことを示しています。これが、トレーニングの目的とした学習です。
  2. 3つ目はステップ10で0.32に低下し、0.88と0.94に回復しています。これは1つの不十分なサンプルであり、傾向ではありませんが、ステップ10の平均を本来あるべき値から引き下げています。
  3. 4つ目は終始1.00のスコアです。トレーニング前からすでに適切に回答されていたため、何も示すことはできません。
  4. 検証報酬は0.63から0.92に上昇しますが、ステップ15の0.91とステップ20の0.92はほぼ同じです。ステップ15のチェックポイントは、最終モデルと同等に優れている可能性が高いです。

検証報酬とトレーニング報酬の比較

プロバイダーは2つの報酬を報告します。訓練報酬(Training reward)は、そのステップでモデルが訓練している問題に対する評価システムの平均スコアです。これらの問題はステップごとに変わるため、数値は上下に変動します。モデルはまさにそのプロンプトに対する回答を上達させることで、この数値を引き上げることができます。検証報酬(Validation reward)は、ホールドアウト・チェックの平均値です。毎回同じ問題が出題され、訓練には使用されません。検証損失が訓練損失よりも優れているのと同じ理由で、こちらにより高い信頼性を置いてください。OpenAIのドキュメントでも同様に、訓練報酬の値は「ステップごとに大きく変動する可能性がある」のに対し、検証報酬は「より安定した指標」であると説明されています。

チェックとチェックポイント

通常、プロバイダーはチェックと同じステップでチェックポイントを保存します。そのため、途中でチェックの改善が見られなくなった場合、その時点のチェックポイントが最終モデルと同等の性能を持っている可能性があり、実行時間を短縮すればコストを抑えられたことになります。ホスト型の強化学習ファインチューニングは訓練時間単位で課金され、推論モデルは長い回答を生成するため、各ステップに時間がかかります。チェックが横ばいになるポイントを把握することは、次回の実行時の直接的なコスト削減につながります。

モデルのトレーニング対象

強化学習ファインチューニングでは、教師あり学習と同じチャットを使用し、1つの返答につき1行とし、その返答で終了する形式に変換します。その返答までの会話がプロンプトとなり、返答自体は評価システムのみが参照するリファレンスとなります。3つの返答があるチャットからは3行が生成され、各行のリファレンスはその最後の返答のみとなり、それ以前の返答はコンテキストとしてプロンプト内に保持されます。

行 1
developer: 指示内容ユーザー 1→回答 1参照データ(評価者のみが閲覧)
行 2
developer: 指示内容ユーザー 1回答 1ユーザー 2→回答 2参照データ(評価者のみが閲覧)
行 3
developer: 指示内容ユーザー 1回答 1ユーザー 2回答 2ユーザー 3→回答 3参照データ(評価者のみが閲覧)
3つの回答を含むチャットは、3つの強化学習用の行になります。各行は1つの回答で終わります。それより前のすべてがプロンプトであり、その回答のみが評価者の比較対象となる参照データです。ホスト型の推論モデルの場合、システム指示は開発者メッセージとして送信されます。
1つのチャット、3つの行
chat:  system · user 1 · reply 1 · user 2 · reply 2 · user 3 · reply 3

row 1  prompt: developer · user 1                                   reference: reply 1
row 2  prompt: developer · user 1 · reply 1 · user 2                reference: reply 2
row 3  prompt: developer · user 1 · reply 1 · user 2 · reply 2 · user 3   reference: reply 3

ホスト型推論モデル(oシリーズ)では、強化学習のサンプルにおいてsystemメッセージを受け付けません。同じ指示はdeveloperメッセージに記述します。これらのモデルは、他のモデルがsystemを扱うのと同じようにdeveloperを扱います。システムメッセージが含まれる訓練ファイルは検証に失敗します。

ホストされた推論モデルの強化学習の行
{"messages": [
   {"role": "developer", "content": "You are Scalata's support assistant. Be brief."},
   {"role": "user",      "content": "How do I share a report with a client?"}],
 "reference": "Open the report → Share → pick the client. They get an email link."}

指標

検証報酬一般的 ステップ0から上昇傾向にあるべきです。チェック間の上下変動は正常です#

あるステップにおけるホールドアウト・チェックに対する評価システムの平均スコア。毎回同じ問題が出題され、訓練には使用されないため、訓練報酬よりも安定的で信頼できるシグナルとなります。検証報酬の上昇は学習効果が未知のデータにも適用されていることを示し、横ばいになった時点は、より短い実行時間で十分であったことを示します。

ステップ0一般的 すべての問題のベースライン#

訓練前のチェック。検証用問題に対する初期モデルの回答です。以降のすべてのチェックはこれと比較されます。ステップ0の時点ですでにスコアが高い問題は、改善を示す余地がほとんどありません。

上限一般的 1回の実行につき最大でも数個程度#

ステップ0以降ずっと1.00のスコアを出す問題。評価システムはそれ以上のスコアを付けられないため、変化を示すことができません。少数の場合は正常ですが、多い場合は評価システムまたは検証用問題が簡単すぎて進捗を測定できないことを意味します。

よくある間違い

  • 1つのカードのみを読み取ること。1回のチェックはサンプリングされた1つの回答にすぎません。チェックや問題全体を通したトレンドで判断してください。
  • 検証報酬が横ばいであるにもかかわらず、上昇する訓練報酬に信頼性を置くこと。モデルが訓練用プロンプトに過学習しているか、評価システムを出し抜いている可能性があります。
  • 上限の無視。終始1.00のスコアを出す問題は平均値を押し上げ、実際に変化があったかどうかを隠してしまいます。
  • 常に最終モデルを使用すること。途中でチェックのスコアが横ばいになった場合、その時点のチェックポイントでも十分な性能があり、次回の実行時間を短縮できます。
  • oシリーズモデル向けに手作業で作成した強化学習ファイルにシステムメッセージを記述すること。代わりに開発者(developer)メッセージを使用してください。

参考文献および関連資料

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

  1. 01Reinforcement fine-tuningOpenAI API docs · developers.openai.comホスト型RFTサービス:検証ファイル、訓練報酬と検証報酬、およびチェックポイント。
  2. 02GradersOpenAI API docs · developers.openai.comプロバイダーの評価システムの定義方法と、各行から読み取る内容。
  3. 03Fine-tune a model with reinforcement fine-tuning in Microsoft FoundryMicrosoft Learn · learn.microsoft.comAzure上の推論モデルの強化学習ファインチューニング(検証データを含む)。
  4. 04Scaling Laws for Reward Model OveroptimizationGao, Schulman & Hilton, 2022 · arXiv · arxiv.orgモデルが最適化の目標とするスコアが上昇する一方で、実際の品質が低下する理由。

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

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

営業へのお問い合わせ