翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ハイパーパラメータリファレンス
次の表に、マルチターン RL トレーニングジョブの設定可能なすべてのハイパーパラメータを示します。レシピのデフォルトは次のとおりです。
| Category | パラメータ | デフォルト | 選択 | 説明 |
|---|---|---|---|---|
| バッチ | global_batch_size | 128 | {32、64、128} | トレーニングステップあたりの一意のプロンプトの数。 |
| バッチ | group_size | 8 | [2、32] | グループベースの利点 (GRPO / RLOO) を計算するために使用されるプロンプトあたりのロールアウト。 |
| RL | advantage_method | group_based | monte_carlo、group_based、group_based_per_turn、rloo、enforced_pp、enforced_pp_baseline、opo、grpo_passk、gpg | ロールアウトの利点を計算する方法。 |
| RL | loss_fn | ppo | importance_sampling、ppo、cispo | RL 損失の定式。 |
| RL | clip_low_threshold | 0.8 | [0, 1] | PPO スタイルの代理損失でポリシー確率比 π_new/π_old をクリッピングするための下限。 |
| RL | clip_high_threshold | 1.2 | [1、10] | 損失のポリシー確率比をクリッピングするための上限。 |
| sampling_params | 温度 | 1 | [0、2] | サンプリング前にログに適用されるサンプリング温度。 |
| sampling_params | sampling_top_p | 1 | [0, 1] | Nucleus サンプリングカットオフ。累積確率 ≥ top_p のトークンの最小セットからのサンプルのみ。 |
| sampling_params | sampling_max_tokens | 4096 | [512、8192] | ロールアウト中にモデルがターンごとに生成できるトークンの最大数。 |
| val_sampling_params | sampling_max_tokens | 4096 | [512、8192] | モデルが評価中にターンごとに生成できるトークンの最大数。 |
| val_metrics_config | pass_k_values | [1、2、4、8、16、32] | 該当なし | pass@k メトリクスを計算するための k 値のリスト。 |
| val_metrics_config | success_threshold | 1 | 該当なし | ロールアウトを「成功」としてカウントするための報酬しきい値。 |
| スケジュール | max_epochs | 1 | [1、30] | 合計パスオーバーデータ。 |
| スケジュール | 最大ステップ | 50 | [1、1000] | トレーニングの反復の合計。 |
| スケジュール | val_every | 10 | [0、100] | 評価間隔 (ステップ)。 |
| モデル | model_name_or_path | 必須 | 微調整するモデル (例: "GPT-OSS-20B")。 | |
| モデル | lora_rank | 32 | [16,64] | アダプター容量を制御する LoRA アダプターのランク。 |
| モデル | lora_alpha | 64 | [16,128] | LoRA スケーリング係数。有効更新マグニチュード ∝ アルファ/ランク。 |
| モデル | learning_rate | 4.00E-05 | (0、1e-2] | Adam 学習レート。 |
| モデル | adam_beta1 | 0.9 | [0, 0.999999] | Adam での勾配 (最初の瞬間) の実行平均の指数減衰率。 |
| モデル | adam_beta2 | 0.95 | [0, 0.999999] | Adam の二乗勾配 (2 番目のモーメント) の実行平均の指数減衰率。 |
| モデル | adam_eps | 1.00E-08 | [1e-16、1e-2] | Adam の更新ルールで数値安定性のために分母に小さな定数が追加されました。 |
| モデル | adam_weight_decay | 0 | [0, 1] | 分離重み減衰係数 (AdamW スタイル)。 |
| モデル | adam_grad_clip_norm | 1 | [0、100] | グローバル勾配の最大基準。 |
| ロールアウト | rollout_max_concurrency | 96 | [32、96] | 最大インフライトロールアウトプロセスは並行して発生する可能性があります。 |
| ロールアウト | rollout_timeout | 600 | [300、86400] | 障害処理: ロールアウト障害として扱うまでの時間。 |
| ロールアウト | rollout_max_retries | 3 | [1、10] | 失敗したロールアウトの再試行回数。 |
| async_config | max_steps_off_policy | 3 | [0, 10] | 非同期トレーニングの古さのしきい値。0 の場合、同期トレーニングです。 |
ハイパーパラメータを調整するためのベストプラクティス
実行がフラットまたは折りたたまれている場合、次の 6 つのパラメータはほぼすべての説明を考慮します。
学習率
は、オプティマイザが各トレーニング反復で実行するステップの大きさlearning_rateを制御します。マルチターン RL では、ステップあたりの勾配シグナルはタスクによって異なります。バイナリ結果を持つスパース報酬環境は、すべてのロールアウトスコアが同一である多くのグループを生成し、グループ全体にゼロの利点をもたらします。結果が混在するグループのみが勾配信号を生成するため、各ステップの有用な勾配が薄められます。弱いシグナルに合わせて学習レートを下げるか、実行により多くのステップが必要です。
グループ内の軌道が確実に異なるスコアを取得する高密度の報酬環境では、ほとんどのグループで一貫したゼロ以外の利点が得られ、デフォルトの学習レートではすでに十分です。
有効なステップサイズは、実際の更新の大きさである LoRA 設定にも依存learning_rate × alpha/rankするため、固定学習レートはアダプターの容量に応じて異なります。
損失関数とクリッピング範囲
MTRL を初めて使用する場合は、高度なクリッピングベースのアルゴリズムに移行する前の出発点として重要度サンプリング (importance_sampling) が適しています。PPO と CISPO は clip_low_thresholdと clip_high_threshold を使用して確率比を制限しますpolicy_new(action|state) / policy_old(action|state)。つまり、1 つのトレーニングステップでポリシーを変更できる量です。
の比率は、変更がない1.0ことを意味します。しきい値 ( など0.8) が低いと、ポリシーは以前に優先したアクションを積極的に学習解除できなくなります。上限しきい値 (例: 1.2) は、1 つのバッチで正常に見えたアクションへのオーバーコミットを防ぎます。
-
を使用した PPO
(clip_low_threshold, clip_high_threshold) = (0.8, 1.2)は、初回実行時の安全なベースラインです。 -
CISPO には、広範な非対称クリッピングが必要です。
clip_low_threshold = 1.0、 から始めますclip_high_threshold = 6.0。CISPO では、不正なアクションが発生する確率を自由に減らすことができ、不安定さを防ぐために上部のクリップのみに依存します。
トレーニングの折りたたみまたはトレーニング不足が観察された場合は、クリッピングしきい値を微調整することをお勧めします。
バッチサイズとグループサイズ
これら 2 つのパラメータは、各トレーニングステップが受け取る有用な勾配シグナルを共同で決定します。
global_batch_size は、1 つのオプティマイザステップに含まれる一意のプロンプトの数を制御します。より多くのプロンプトの平均勾配が大きいバッチ (128) は、より滑らかな報酬曲線とより安定した更新を生成します。小さいバッチ (32) はステップごとに安価で、高速反復に役立ちますが、ノイズの多い勾配を生成します。本番稼働では、128 が良いデフォルトです。デバッグまたはハイパーパラメータスクリーニングでは、32 が問題ありません。
group_size は、プロンプトごとに生成される独立したロールアウトの数を決定します。これらのロールアウトは、コンピューティング上の利点を得るために相互に比較されます。すべてのロールアウトが同じ報酬を受け取る場合 (すべて成功またはすべて失敗)、利点はゼロであり、グループは勾配信号を生成しません。デフォルトは group_size = 8 です。グループに十分な多様性がある場合は減らし、環境がより多くの多様性を必要とする場合は増やします。
ステップあたりの合計ロールアウト数 = global_batch_size × group_size。ほとんどのグループがゼロシグナルを生成するスパース報酬設定では、グループサイズを中程度に保ち、代わりにバッチサイズまたはステップ数を増やす方が効率的です。
ポリシー外の古さ
非同期トレーニングでは、 は、ロールアウトが破棄される前に古いロールアウトを許可する方法max_steps_off_policyを制御します。のデフォルトは、ロールアウトサーバーテールレイテンシーを3非表示にします。ただし、古いロールアウトには、 から大幅に逸脱する重要度の比率があり1.0、それらの比率がクリップの境界に達すると、勾配信号は発生しません。
デバッグ折りたたみ時に を 0 に設定します。重要度が加重された更新を伴う非同期の古さは、根本原因を隠す可能性があります。を に設定し0、安定してから、問題が理解されたら再度有効にします。ロールアウトが速い環境では、 がデフォルトとして適しているmax_steps_off_policy = 1場合があります。
最大トークンのサンプリング
sampling_max_tokens はターンごとの生成上限です。上限が小さすぎると、モデルのレスポンスは思考の途中で切り捨てられ、不完全な試行に対して報酬を受け取ります。その後、ポリシーは、切り捨てられたプレフィックスを誤った結果に関連付けることを学習し、より多くの余地があれば成功したはずの探索的な動作を抑制します。
デフォルトの 4096 は、ほとんどのタスクで機能します。過度に長い思考/理由のある応答を持つモデルの場合は、 を 8192 に引き上げます。サイジングルールは、マージンmax_turns × (sampling_max_tokens + expected_tool_output) + prompt ≤ max_sequence_lengthのある です。
診断: をモニタリングしますrollout/tokens/response_max。軌道が正確に上限に達すると、モデルはサイレントに切り捨てられ、シグナルが失われる可能性があります。 はトレーニングと一致するval_sampling_params.sampling_max_tokens必要があります。
ロールアウト設定
これらのパラメータは、ロールアウトの生成方法と、トレーナーが低速または失敗したロールアウトを処理する方法を制御します。
-
rollout_max_concurrency— 一度に処理されるロールアウトの数を制御します。デフォルトの 96 は、ほとんどのセットアップに適しています。非同期モードで高すぎると、ロールアウトが古くなり、推論エンジンが過負荷になる可能性があります。 -
rollout_timeout— 単一のロールアウトが失敗として扱われるまでの待機時間 (秒単位)。デフォルトの 600 は、一般的なツールを使用する環境向けにサイズ設定されています。これを低すぎると、より多くの時間がかかった場合に成功したはずのロールアウトが切り捨てられます。 -
rollout_max_retries— 失敗したロールアウトの再試行を制御します。永続的な障害率が約 1% を超える場合、問題は再試行回数ではなく環境設定にあります。
パラメータのサポート
-
LoRA 容量 (
lora_rankおよびlora_alpha)。ステップあたりの有効な更新マグニチュードはalpha/rank、学習レートの乗数として機能する に比例します。デフォルトはlora_rank = 32, lora_alpha = 64(2:1 の比率) です。他のすべてが十分に調整され、報酬曲線が依然として安定している場合にのみ、 を増やすことを検討してください。両方を 2 倍に (64/128) して、同じ効果的な学習レートを維持しながら容量を追加します。 -
temperature = 1.0、sampleing_top_p = 1.0 for training。RL トレーニングでは、グループベースラインがシグナルを持つように、グループ内のロールアウト間で多様性が必要です。温度 1.0 は良いデフォルトです。評価には、温度 = 0.0 (greedy デコード) を使用して、評価曲線が決定論的であり、実行間で同等になるようにします。
-
pass_k_values。Pass@1 はヘッドライン評価メトリクスです。Pass@G (G = group_size) は便利なサニティチェックです。pass@G が非常に高い場合、ほとんどのプロンプトは簡単すぎます。pass@G が非常に低い場合、ほとんどのプロンプトは硬すぎて、グループシグナルはスパースです。
-
max_steps と max_epochs。スクリーニング
max_steps = 50用 (曲線が移動しているかどうかを十分に確認)、本番稼働用は 100。CISPO の折りたたみはステップ 40~80 の間に出現する傾向があります。max_epochs = 1がデフォルトです。複数のエポックが新しいロールアウトで同じプロンプトを再使用します。これは、プロンプトセットが小さいが、狭いプロンプト分散に過剰適合するリスクがある場合に役立ちます。 -
adam_beta2 = 0.95。SFT のデフォルトである 0.999 より小さい。RL では、勾配統計は非定常であるため、オプティマイザは最近の勾配分散をより積極的に追跡する必要があります。
-
weight_decay = 0.0。LoRA はすでに、低ランクのパラメータ化による更新を制限しています。重み減衰を追加すると、RL ファインチューニングのために十分に特徴付けられていない方法で正規化が複合されます。
-
adam_grad_clip_norm = 1.0。グローバル勾配標準の上限を設定します。折りたたみが大きなクリップ前スパイクと相関する場合は、0.5 にドロップします。多くのステップで基準が正確に 1.0 で、報酬が平坦である場合、クリップがボトルネックになる可能性があります。注意して 2.0 に引き上げてください。