REINFORCE ist eine Klasse von Policy-Gradient-Methoden, die die Policy direkt mithilfe von gesampelten Belohnungen optimieren. Diese Methoden werden häufig für LLM-Feinabstimmung verwendet, da sie einfach und effizient sind. Beispiele sind GRPO, Dr. GRPO, RLOO, ReMax, TreeRPO, und REINFORCE++. REINFORCE kann auf Multi-Agent-Einstellungen erweitert werden, in denen mehrere LLM-Agenten in jeder Runde antworten und ihre gemeinsamen Antworten eine gemeinsame Belohnung erhalten.
Alle MAREINFORCE trainers ein gemeinsames Trainingsschritt. Bei jedem rollout Agent sammelt \( K \) Antworten, bewertet der trainer Index-ausgerichtete gemeinsame Antworten mit einer gemeinsamen Belohnung, und jeder Agent gewichtet seine eigenen Log-Wahrscheinlichkeiten mit dem resultierenden gemeinsamen Vorteil, bevor ein gepufferter Optimierungsschritt durchgeführt wird.
MAREINFORCE#
Der Policy-Gradient-Surrogat für Multi-Agent REINFORCE (MAREINFORCE), vor Normalisierung der Vorteile oder Referenzregularisierung, kann wie folgt ausgedrückt werden:
REINFORCE-Methoden verwenden kein critic-Modell zur Wertschätzung. Ihre Policy-Gradient-Schätzungen können aufgrund von stochastischer Stichprobenziehung und langfristiger Rückverfolgung eine hohe Varianz aufweisen. Gängige Ansätze zur Reduzierung dieser Varianz umfassen die Verwendung einer aktionsunabhängigen Basislinie oder das Mittel aus mehr Stichproben, wie z. B. \( K \)-Stichproben bei jeder gemeinsamen Historie \( \mathbf{h}_t \).
MAGRPO#
Multi-Agent Gruppen-relative Policy Optimierung (MAGRPO) ist eine Implementierung von MAREINFORCE, inspiriert von GRPO, wobei die Gruppen-durchschnittliche Baseline der Mittelwert der \( K \)-Samples ist. Im Standard-aligned-Modus ist der Surrogate vor der Normalisierung des Vorteils:
Die gesampelte Mittelwert beinhaltet die Probe, die aktualisiert wird, daher ist es nicht die aktionsunabhängige Basis, die in der allgemeinen Form oben angenommen wird. Beim Training über mehrere Schritte erhält jeder Zweig die unmittelbare Belohnung plus den Mittelwert der Rückgabe seines Kindknotens, ohne einen Abzug anzuwenden. Im cross-Modus erhält jeder Agent stattdessen die Summe der Rückgaben über alle gemeinsamen Kombinationen, die diese Vervollständigung enthalten.
Standardmäßig zentriert und skaliert advantage_normalization=True die Vorteile innerhalb jeder Generierungsgruppe mit der Populationsstandardabweichung, wobei ein Mindest-Denominator von 1e-6 verwendet wird. Wenn die Referenz-KL-Regularisierung aktiviert ist, wird die abgetastete Referenzstrafe vor der Basislinie und Normalisierung subtrahiert.
Der aktuelle
MAGRPOTrainer-Verlust-Slice enthält die finale Vervollständigung token nicht, sodass seine implementierte Sequenz-Score-Differenz zur vollständigen Sequenz-Log-Wahrscheinlichkeit in der Surrogate oben ist. Die Standardeinstellung istjoint_mode="cross"; der akzeptierte"crossed"-Alias generiert kartesische Kombinationen, wendet aber nicht die gleiche Aggregation pro Vervollständigung an.
num_agents: Konfigurierte Anzahl von Agenten, die mit der trainer-Konfiguration übereinstimmen sollennum_turns: Anzahl der Turns pro episodenum_train_epochs: Anzahl der Trainings-epochsagent_learning_rate: Lernratelogging_steps: Protokollierungsintervall in Schrittennum_generations: Anzahl der zu sampelnden Generationen pro Prompt für jeden Agentenmax_new_tokens: Maximale Anzahl neuer tokens, die generiert werden könnentemperature: Temperatur für das Samplingtop_p: Top-p für das Samplingtop_k: Top-k für das Samplingdiscount: Beibehaltener Konfigurationswert; die aktuelle MAGRPO-Implementierung berechnet undiskontierte Renditen und verwendet diesen Wert nichtjoint_mode: Zusammensetzung von Aktionen (alignedfür index-ausgerichtete,crossfür kartesisches Produkt)early_termination_threshold: Ein Trainingszweig stoppt das Ausdehnen, wenn die mittlere unmittelbare Belohnung des Knotens diesen Schwellenwert überschreitet (Standard-0.2;Nonedeaktiviert das frühe Beenden)rollout_buffer_size: Anzahl der Knotensamples, die pro Agent vor einer Aktualisierung gepuffert werdentrain_batch_size: Anzahl der Knotensamples pro Optimierungs-Schritt; Standardrollout_buffer_sizeadvantage_normalization: Ob die Vorteile innerhalb jeder Generierungsgruppe des Knotens zentriert und skaliert werden sollen (StandardTrue)eval_interval: Evaluierung erfolgt bei Batchnummern, die durch N teilbar sind, einschließlich des ersten Batches von epoch;0deaktiviert die periodische Evaluierungeval_num_samples: Anzahl der Samples, die pro Evaluierungs-Schritt evaluiert werdeneval_batch_size: Batch-Größe für die Evaluierung DataLoaderexternal_prompt_passthrough: Ob externe Prompts direkt in der mehrstufigen Schulung verwendet werden sollenadvantage_mode: Baseline-Modus (mean,max,rloo,raw)parallel_training: Ausführungsmodus des Agenten (noneodermp)agent_devices: Agent-Geräteplatzierung; explizit erforderlich fürparallel_training="mp"reference_kl_enabled: Ob eine gefrorene Referenz KL-Strafe aktiviert werden soll (StandardFalse)reference_kl_coef: Gewicht der Referenz-Strafe (Standard0.1)reference_devices: Optionale Geräteplatzierung für Referenzmodelle
agent_modeloderagents: Modell-Identifier-String für homogene Agenten, oder eine Liste von Modell-Identifikatoren oder vorab geladenen Modellen; vorab geladene Modelle werden überagentsbereitgestelltnum_agents: Anzahl der vonagent_modelerstellten Agenten (Standard2), unabhängig vonargskonfiguriert. Wenn nuragentsangegeben wird, bestimmt seine Länge die Agentenzahltokenizer: Gemeinsame Verwendung von tokenizer oder eine pro Agent; optional für Modell-IDs, erforderlich für vorgeladene Modellereward_func: Aufruf, der eine Liste von Fließkommazahlen zurückgibt (erforderlich)reward_processor: Optionale Prozessor zur Anwendung auf Belohnungen (z. B. Skalierung)formatters: Einzelner Aufruf oder Liste von Agenten-Aufrufen für die Formatierung von Promptsargs: Instanz vonMAGRPOConfig(optional)train_dataset: Datensatz erforderlich, wenntrain()aufgerufen wirdeval_dataset: Evaluationsdatensatz (optional)model_config: Modellkonfigurations-Dictionary (optional)wandb_config: Konfiguration für das Logging von Weights & Biases (optional)external_transition: Funktion, die Übergänge zwischen den Schritten bereitstellt; erforderlich, wennnum_turns > 1(die Standardeinstellung ist2) verwendet wirdeval_logger: Optionaler Aufruf für Metriken, der alseval_logger(agent_completions_turns=..., batch_items=..., prompts=...)aufgerufen wird; gibt ein Metriken-Dictionary pro ausgewertetem Element zurück und wird miteval_aggregatorverwendeteval_aggregator: Optionaler Aufruf, der alseval_aggregator(metrics, num_turns=...)aufgerufen wird; die zurückgegebenenturn_k/...-Metriken werden untereval/protokolliert. Beide Evaluations-Aufrufe müssen für benutzerdefinierte Metriken bereitgestellt werden
MAGRPO speichert Samples in einem rollout-Puffer und berechnet ihre Log-Wahrscheinlichkeiten während der Aktualisierungen neu, ohne Importance Sampling oder Ratio Clipping. Samples können daher vor früheren Aktualisierungen aus demselben Puffer oder rollout-Baum liegen. Da der trainer kein critic-Modell hat, gilt
value_clip_rangenicht.
Der trainer verwendet eine feste Trainings-DataLoader-Batchgröße von 1 und benötigt mindestens
num_generations=2, einschließlich der Raw-Return-Variante. Standardmäßig verwendettrain_batch_size=rollout_buffer_size: jeder Agent mittelt die Verluste seiner gepufferten Knoten-Samples für einen Optimierungsschritt. Kleinere Mini-Batches erzeugen mehrere Optimierungsschritte; ein teilweise gefüllter Puffer wird am Ende jedes epoch-Schritts freigegeben.
Weitere Varianten#
CoMLRL bietet auch andere MAREINFORCE-Varianten mit unterschiedlichen Baselines:
- MARLOO: Multi-Agent REINFORCE Leave-One-Out. Die Baseline ist der Mittelwert der Rückgaben der anderen Generationen im selben Knoten-Sample-Gruppen, nicht der anderen Agenten.
- MAReMax: Multi-Agent REINFORCE mit Group Max (
MAReMaxConfigundMAReMaxTrainer). Die Basislinie ist der maximale gruppierte Rückgabwert am Knoten; diese Implementierung generiert keine separate, gierige Basislinienantwort.
MAREINFORCETrainer,MARLOOTrainer, undMAReMaxTrainerabgeleitet voncomlrl.trainers.reinforce.MAGRPOTrainer. Ihre entsprechenden Konfigurationsklassen erbenMAGRPOConfig, mit Standardwerten vonadvantage_modeundraw,rloo, entsprechend. Sie haben die gleichemax, Schnittstelle und Konfigurationsfelder trainer Schnittstelle und Konfigurationsfelder.
Die vier trainers unterscheiden sich nur darin, dass von dem gemeinsamen Rückgabwert eine Basislinie subtrahiert wird. Für einen Knoten mit \( K=4 \) gemeinsamen Antworten vergleicht die Animation unten ihre Vorteile vor der Normalisierung: MAREINFORCE behält den Rohrückgabwert, wie in REINFORCE; MAGRPO subtrahiert den gruppierten Mittelwert, wie in GRPO; MARLOO subtrahiert den Mittelwert der \( K-1 \)-Rückgabwerte, wie in RLOO, was die MAGRPO-Vorteile mit \( K/(K-1) \) skaliert; und MAReMax subtrahiert den gruppierten Maximalwert, sodass keine Antwort einen positiven Vorteil erhält.
Die varianten Formeln beschreiben Vorteile vor der Normalisierung. Alle Varianten erben von
advantage_normalization=True, die auch Rohrückgabwerte und Max-Basislinien-Vorteile neu zentriert. Mit Ausnahme des Standardabweichungs-Bodens und der numerischen Genauigkeit erzeugen die vier Modi dann die gleichen normalisierten Vorteile. Benutzer können die oben gezeigten Basislinienunterschiede beibehalten, einschließlich des Rohrückgab-Estimators MAREINFORCE, indem sieadvantage_normalization=Falsefestlegen.