本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
超參數參考
下表列出多迴轉 RL 訓練任務的所有可設定超參數。配方預設值包含如下。
| Category | 參數 | 預設 | Choice | 說明 |
|---|---|---|---|---|
| 批次 | 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、reforcee_pp、reforcee_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】 | 取樣前套用至 logit 的取樣溫度。 |
| 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】 | N/A | 運算 pass@k 指標的 k 值清單。 |
| val_metrics_config | success_threshold | 1 | N/A | 將推展計算為「成功」的獎勵閾值。 |
| Schedule | max_epochs | 1 | 【1、30】 | 總和會傳遞資料。 |
| Schedule | max_steps | 50 | [1, 1000] | 訓練反覆運算總計。 |
| Schedule | val_every | 10 | 【0、100】 | 評估間隔 (步驟)。 |
| 模型 | model_name_or_path | 必要 | 要微調的模型 (例如 "GPT-OSS-20B")。 | |
| 模型 | lora_rank | 32 | 【16,64】 | 控制轉接器容量的 LoRA 轉接器排名。 |
| 模型 | lora_alpha | 64 | 【16,128】 | LoRA 擴展係數。有效更新幅度 ∝ Alpha/rank。 |
| 模型 | 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 中平方梯度 (第二個時刻) 的執行平均值的指數衰減率。 |
| 模型 | 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 時,它是同步訓練。 |
調校超參數的最佳實務
當執行是扁平或折疊時,以下六個參數幾乎會說明所有說明。
學習率
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.0表示沒有變更。較低的閾值 (例如,0.8) 可防止政策積極地取消學習先前偏好的動作。閾值上限 (例如 1.2) 可防止它過度遞交到在一個批次中看起來不錯的動作。
-
具有 的 PPO
(clip_low_threshold, clip_high_threshold) = (0.8, 1.2)是任何第一次執行的安全基準。 -
CISPO 需要廣泛的非對稱剪輯。從
clip_low_threshold = 1.0、 開始clip_high_threshold = 6.0。CISPO 允許錯誤動作機率自由減少,並僅依賴上剪輯以防止不穩定。
如果觀察到訓練摺疊或訓練不足,建議調整剪輯閾值。
批次大小和群組大小
這兩個參數會共同判斷每個訓練步驟接收到多少有用的漸層訊號。
global_batch_size 控制一個最佳化工具步驟中包含多少唯一提示。較大的批次 (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 比例)。只有在其他項目都經過妥善調校,且獎勵曲線仍保持穩定時,才考慮增加 - 將兩者加倍 (64/128) 以增加容量,同時保持相同的有效學習率。 -
temperature = 1.0, sampling_top_p = 1.0 用於訓練。對於 RL 訓練,您想要在群組中跨推展進行多樣性,以便群組基準具有訊號。溫度 1.0 是良好的預設值。針對評估,請使用溫度 = 0.0 (貪婪解碼),讓評估曲線在執行之間具有決定性和可比較性。
-
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是預設值;多個 epoch 會重新使用相同的提示與新的推展,如果提示集很小,但風險過度適應窄提示分佈,這有助於。 -
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。