Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Hyperparameter-Referenz
In der folgenden Tabelle sind alle konfigurierbaren Hyperparameter für Multiturn-RL-Trainingsjobs aufgeführt. Die Standardwerte für Rezepte sind unten aufgeführt.
| Kategorie | Parameter | Standard | Choice | Erklärung |
|---|---|---|---|---|
| Batch | global_batch_size | 128 | {32, 64, 128} | Anzahl der eindeutigen Eingabeaufforderungen pro Trainingsschritt. |
| Batch | Gruppengröße | 8 | [2, 32] | Rollouts pro Aufforderung zur Berechnung gruppenbasierter Vorteile (GRPO/RLOO). |
| RL | vorteilhafte Methode | gruppenbasiert | monte_carlo, group_based, group_based_per_turn, rloo, reinforce_pp, reinforce_pp_baseline, opo, gro_passk, gpg | Methode zur Berechnung der Vorteile von Rollouts. |
| RL | loss_fn | pop | importance_sampling, ppo, cispo | Formulierung für den Verlust von RL. |
| RL | clip_low_threshold | 0.8 | [0, 1] | Untergrenze für die Kürzung des Versicherungswahrscheinlichkeitsverhältnisses π _new/π _old beim Ersatzverlust. PPO-style |
| RL | clip_high_threshold | 1.2 | [1, 10] | Obergrenze für die Begrenzung des politischen Wahrscheinlichkeitsverhältnisses beim Verlust. |
| sampling_params | temperature | 1 | [0, 2] | Die Probenentnahmetemperatur wurde vor der Probenahme auf die Logits angewendet. |
| sampling_params | Stichproben_top_p | 1 | [0, 1] | Nucleus-sampling abgeschnitten. Nur Stichproben aus der kleinsten Gruppe von Tokens, deren kumulative Wahrscheinlichkeit ≥ top_p ist. |
| sampling_params | Sampling_Max_Tokens | 4096 | [512, 8192] | Max. Anzahl der Tokens, die das Modell während des Rollouts pro Spielzug generieren kann. |
| val_sampling_params | Max_Tokens sammeln | 4096 | [512, 8192] | Max. Anzahl der Tokens, die das Modell während der Evaluierung pro Spielzug generieren kann. |
| val_metrics_config | übergeben_k_Werte | [1, 2, 4, 8, 16, 32] | n/a | Liste von k Werten für die Berechnung von Pass @k -Metriken. |
| val_metrics_config | Erfolgschwelle | 1 | n/a | Schwellenwert für die Belohnung, wenn ein Rollout als „erfolgreich“ gewertet wird. |
| Plan | max_epochs | 1 | [1, 30] | Insgesamt werden die Daten übergeben. |
| Plan | max_steps | 50 | [1, 1000] | Gesamtzahl der Trainingsiterationen. |
| Plan | val_every | 10 | [0, 100] | Bewertungsintervall (Schritte). |
| Modell | model_name_or_path | Erforderlich | Modell zur Feinabstimmung (z. B. "GPT-OSS-20B„). | |
| Modell | lora_rank | 32 | [16,64] | Der Rang des LoRa-Adapters, der die Adapterkapazität steuert. |
| Modell | lora_alpha | 64 | [16.128] | LoRa-Skalierungsfaktor. Effektive Aktualisierungsgröße ∝ Alpha/Rang. |
| Modell | learning_rate | 4,00 E-05 | (0, 1e-2] | Adam Lernrate. |
| Modell | adam_beta1 | 0.9 | [0, 0,999999] | Exponentielle Zerfallsrate für den laufenden Durchschnitt des Gradienten (erster Moment) in Adam. |
| Modell | adam_beta2 | 0,95 | [0, 0,999999] | Exponentielle Zerfallsrate für den laufenden Durchschnitt des quadratischen Gradienten (zweites Moment) in Adam. |
| Modell | adam_eps | 1,00 E-08 | [1e-16, 1e-2] | Kleine Konstante, die dem Nenner für numerische Stabilität in Adams Aktualisierungsregel hinzugefügt wurde. |
| Modell | adam_weight_decay | 0 | [0, 1] | Entkoppelter Gewichtszerfallskoeffizient (). AdamW-style |
| Modell | adam_grad_clip_norm | 1 | [0, 100] | Maximale globale Gradientennorm. |
| Rollout | rollout_max_concurrency | 96 | [32, 96] | Die maximalen Rollout-Prozesse während des Fluges können parallel ablaufen. |
| Rollout | Rollout_Timeout | 600 | [300, 86400] | Fehlerbehandlung: Zeit, nach der wir den Rollout-Fehler behandeln. |
| Rollout | rollout_max_retries | 3 | [1, 10] | Anzahl der Wiederholungsversuche für fehlgeschlagene Rollouts. |
| async_config | max_steps_off_policy | 3 | [0, 10] | Veralterungsschwelle bei asynchronem Training. Bei 0 handelt es sich um synchrones Training. |
Bewährte Methoden für die Optimierung von Hyperparametern
Wenn ein Lauf flach verläuft oder zusammenbricht, sind die folgenden sechs Parameter für fast die gesamte Erklärung verantwortlich.
Lernrate
Der learning_rate steuert, wie groß der Schritt des Optimierers bei jeder Trainingsiteration ist. Bei Multiturn-RL variiert das Gradientensignal pro Schritt je nach Aufgabe: In einer Umgebung mit geringer Prämie und binären Ergebnissen entstehen viele Gruppen, in denen alle Rollouts identisch abschneiden, sodass die gesamte Gruppe keinen Vorteil hat. Nur Gruppen mit gemischten Ergebnissen erzeugen ein Gradientensignal, sodass der nutzbare Gradient jedes Schritts verwässert wird. Die Lernrate muss niedriger sein, um dem schwächeren Signal gerecht zu werden, oder der Lauf benötigt mehr Schritte.
Eine Umgebung mit hoher Prämiendichte, in der Trajektorien innerhalb einer Gruppe zuverlässig unterschiedliche Punktzahlen erzielen, führt in den meisten Gruppen zu gleichbleibenden Vorteilen, die nicht gleich Null sind, und die voreingestellte Lernrate ist oft bereits ausreichend.
Die effektive Schrittgröße hängt auch von der LoRa-Konfiguration ab — die tatsächliche Aktualisierungsgröße ist also learning_rate × alpha/rank —, sodass eine feste Lernrate je nach Adapterkapazität unterschiedlich ausfällt.
Verlustfunktion und Clipping-Bereich
Wenn Sie mit MTRL noch nicht vertraut sind, ist Importance Sampling (importance_sampling) ein guter Ausgangspunkt, bevor Sie zu fortgeschrittenen Clipping-basierten Algorithmen übergehen. PPO und CISPO verwenden clip_low_threshold und clip_high_threshold beschränken das Wahrscheinlichkeitsverhältnis, policy_new(action|state) / policy_old(action|state) d. h. wie stark sich die Richtlinie in einem einzigen Trainingsschritt ändern darf.
Ein Verhältnis von 1.0 bedeutet keine Änderung. Der niedrigere Schwellenwert verhindert (zum Beispiel0.8), dass die Richtlinie Maßnahmen, die sie zuvor bevorzugt hat, aggressiv verlernt. Der obere Schwellenwert (z. B.1.2) verhindert, dass sie zu viele Aktionen durchführt, die in einem Batch gut aussahen.
-
PPO mit
(clip_low_threshold, clip_high_threshold) = (0.8, 1.2)ist die sichere Ausgangsbasis für jeden ersten Durchlauf. -
CISPO erfordert ein breites asymmetrisches Clipping. Beginne mit,.
clip_low_threshold = 1.0clip_high_threshold = 6.0CISPO ermöglicht es, die Wahrscheinlichkeit schlechter Aktionen nach Belieben zu verringern, und stützt sich ausschließlich auf den oberen Clip, um Instabilität zu vermeiden.
Es wird empfohlen, die Schwellenwerte für das Clipping anzupassen, wenn ein Trainingskollaps oder ein unzureichendes Training beobachtet wird.
Chargengröße und Gruppengröße
Diese beiden Parameter bestimmen gemeinsam, wie viel nützliches Gradientensignal jeder Trainingsschritt empfängt.
global_batch_sizesteuert, wie viele eindeutige Eingabeaufforderungen in einem Optimierungsschritt enthalten sind. Bei größeren Batches (128) werden bei mehr Eingabeaufforderungen durchschnittlich Farbverläufe gemessen, was zu glatteren Belohnungskurven und stabileren Aktualisierungen führt. Kleinere Chargen (32) sind pro Schritt günstiger und eignen sich für schnelle Iterationen, erzeugen jedoch lauschigere Farbverläufe. Für Produktionsläufe ist 128 eine gute Standardeinstellung; für Debugging oder Hyperparameter-Screening ist 32 ausreichend.
group_sizebestimmt, wie viele unabhängige Rollouts für jede Aufforderung generiert werden. Diese Rollouts werden miteinander verglichen, um die Vorteile zu ermitteln. Wenn alle Rollouts dieselbe Belohnung erhalten (alle erfolgreich oder alle scheitern), ist der Vorteil gleich Null und die Gruppe erzeugt kein Gradientensignal. Der Standardwert ist group_size = 8. Reduzieren Sie sie, wenn Sie genügend Vielfalt in der Gruppe haben, und erhöhen Sie sie, wenn das Umfeld mehr Vielfalt erfordert.
Gesamtzahl der Rollouts pro Schritt =global_batch_size × group_size. In Umgebungen mit geringer Prämie, in denen die meisten Gruppen kein Signal abwerfen, ist es oft effizienter, die Gruppengröße moderat zu halten und stattdessen die Batchgröße oder Schrittzahl zu erhöhen.
Off-policy Veralterung
max_steps_off_policySteuert beim asynchronen Training, wie veraltet ein Rollout sein darf, bevor er verworfen wird. Die Standardeinstellung verbirgt die Latenz am Ende des Rollout-Servers. 3 Aber veraltete Rollouts haben Wichtigkeitsverhältnisse, die erheblich davon abweichen, und wenn diese Verhältnisse die Clip-Grenzen erreichen1.0, liefern sie kein Gradientensignal.
Wird beim Debuggen von Collapse auf 0 gesetzt. Asynchrone Veralterung verstärkt sich mit wichtigkeitsgewichteten Aktualisierungen und kann die eigentlichen Ursachen verschleiern. Stellen Sie die Option auf0, stabilisieren Sie sie und aktivieren Sie sie erneut, sobald das Problem erkannt wurde. Für Umgebungen, in denen Rollouts schnell sind, ist max_steps_off_policy = 1 dies möglicherweise die bessere Standardeinstellung.
Maximale Anzahl an Tokens auswerten
sampling_max_tokensist die Generationsobergrenze pro Spielzug. Wenn die Obergrenze zu niedrig ist, werden die Antworten des Modells während des Nachdenkens gekürzt und es erhält eine Belohnung für einen unvollständigen Versuch. Die Richtlinie lernt dann, diese gekürzten Präfixe mit schlechten Ergebnissen zu verknüpfen, wodurch exploratives Verhalten unterdrückt wird, das mit mehr Spielraum erfolgreich gewesen wäre.
Die Standardeinstellung 4096 funktioniert für die meisten Aufgaben. Erhöhen Sie den Wert für Modelle mit zu langen Antworten auf 8192. thinking/reasoning Die Größenregel lautet: max_turns × (sampling_max_tokens + expected_tool_output) + prompt
≤ max_sequence_length mit einem gewissen Spielraum.
Diagnose: Monitorrollout/tokens/response_max. Wenn sich die Trajektorien genau an der Spitze ansammeln, wird das Modell unauffällig gekürzt und es besteht wahrscheinlich ein Signalverlust. val_sampling_params.sampling_max_tokenssollte dem Training entsprechen.
Konfiguration des Rollouts
Diese Parameter steuern, wie Rollouts erstellt werden und wie der Trainer mit langsamen oder fehlgeschlagenen Rollouts umgeht.
-
rollout_max_concurrency— Steuert, wie viele Rollouts gleichzeitig durchgeführt werden. Die Standardeinstellung von 96 funktioniert für die meisten Setups gut. Ein zu hoher Wert im asynchronen Modus führt zu veralteten Rollouts und kann die Inferenz-Engine überfordern. -
rollout_timeout— Wie lange (in Sekunden) muss man auf einen einzelnen Rollout warten, bevor er als gescheitert behandelt wird. Die Standardeinstellung von 600 ist für typische Umgebungen, in denen Tools verwendet werden, ausgelegt. Wenn der Wert zu niedrig ist, werden Rollouts gekürzt, die mit mehr Zeit erfolgreich gewesen wären. -
rollout_max_retries— Steuert Wiederholungsversuche bei fehlgeschlagenen Rollouts. Wenn die Rate permanenter Fehler ungefähr 1% übersteigt, liegt das Problem am Umgebungs-Setup und nicht an der Anzahl der Wiederholungen.
Unterstützende Parameter
-
LoRa-Kapazität (
lora_rankundlora_alpha). Die effektive Größe der Aktualisierung pro Schritt ist proportional zualpha/rank, was sich wiederum als Multiplikator auf die Lernrate auswirkt. Die Standardeinstellung istlora_rank = 32, lora_alpha = 64(ein Verhältnis von 2:1). Erwägen Sie, die Erhöhung nur dann zu erhöhen, wenn alles andere gut abgestimmt ist und die Belohnungskurve immer noch ein Plateau aufweist — verdoppeln Sie beide zusammen (64/128), um die Kapazität zu erhöhen und gleichzeitig die gleiche effektive Lernrate beizubehalten. -
Temperatur = 1,0, sampling_top_p = 1,0 für das Training. Für RL-Training möchten Sie, dass die Rollouts innerhalb einer Gruppe unterschiedlich sind, sodass die Gruppen-Baseline ein Signal hat. Temperatur 1,0 ist eine gute Standardeinstellung. Verwenden Sie für die Auswertung Temperatur = 0,0 (Greedy-Decodierung), sodass die Bewertungskurven deterministisch und in allen Durchläufen vergleichbar sind.
-
pass_k_values. Pass @1 ist die wichtigste Bewertungsmetrik. Pass @G (wobei G = group_size) ist eine nützliche Plausibilitätsprüfung: Wenn pass @G sehr hoch ist, sind die meisten Eingabeaufforderungen zu einfach; wenn pass @G sehr niedrig ist, sind die meisten Eingabeaufforderungen zu schwer und das Gruppensignal ist spärlich.
-
max_steps und max_epochs.
max_steps = 50für das Screening (genug, um zu sehen, ob sich die Kurve bewegt), 100 für die Produktion. Der Zusammenbruch von CISPO tritt in der Regel zwischen den Stufen 40—80 auf.max_epochs = 1ist die Standardeinstellung. In mehreren Epochen werden dieselben Eingabeaufforderungen mit neuen Rollouts wiederverwendet. Dies kann hilfreich sein, wenn die Anzahl der Eingabeaufforderungen klein ist, aber die Gefahr besteht, dass sie zu stark an eine enge Verteilung der Eingabeaufforderungen angepasst werden. -
adam_beta2 = 0,95. Niedriger als der SFT-Standardwert von 0,999. In RL sind Gradientenstatistiken instationär, sodass der Optimierer die aktuelle Gradientenvarianz aggressiver verfolgen muss.
-
weight_decay = 0,0. LoRa schränkt Updates bereits durch eine Low-Rank-Parametrisierung ein. Durch das Hinzufügen von Gewichtszerfall wird die Regularisierung auf eine Weise verschärft, die für die Feinabstimmung von RL nicht gut charakterisiert wurde.
-
adam_grad_clip_norm = 1,0. Kappt die globale Gradientennorm. Wenn der Kollaps mit großen Spitzen vor dem Clip korreliert, verringern Sie den Wert auf 0,5. Wenn die Norm für viele Schritte genau bei 1,0 liegt und die Belohnung flach ist, könnte der Clip der Engpass sein — erhöhen Sie den Wert vorsichtig auf 2,0.