REINFORCE est une classe de méthodes de gradient de politique qui optimise directement la politique en utilisant des retours échantillonnés. Ces méthodes sont largement utilisées pour le réglage fin de LLM en raison de leur simplicité et de leur efficacité. Des exemples incluent GRPO, Dr. GRPO, RLOO, ReMax, TreeRPO, et REINFORCE++. REINFORCE peut être étendu aux environnements multi-agent, où plusieurs agents LLM réagissent à chaque tour et leurs réponses conjointes reçoivent une récompense partagée.
Tous MAREINFORCE trainers un seul cycle d’entraînement. À chaque rollout nœud, chaque agent échantillonne \( K \) réponses, le trainer calcule les scores des réponses conjointes alignées par index avec une récompense partagée, et chaque agent pondère ses propres probabilités logarithmiques par les avantages partagés résultants avant une étape d’optimiseur tamponnée.
MAREINFORCE#
Le surrogate de gradient de politique pour Multi-Agent REINFORCE (MAREINFORCE), avant la normalisation des avantages ou la régularisation de référence, peut être exprimé comme :
Les méthodes REINFORCE n’utilisent pas un modèle critic pour l’estimation de la valeur. Leurs estimations de gradient de politique peuvent avoir une grande variance en raison de l’échantillonnage stochastique et de l’attribution à long terme. Les approches courantes pour réduire cette variance comprennent l’utilisation d’une base indépendante de l’action ou la moyenne sur plus d’échantillons, comme les échantillons \( K \) à chaque historique conjoint \( \mathbf{h}_t \).
MAGRPO#
L’optimisation de la politique multi-agent, relative au groupe (Multi-Agent Group-Relative Policy Optimization) (MAGRPO) est une implémentation de MAREINFORCE inspirée de GRPO, où la base moyenne du groupe est la moyenne des retours des échantillons \( K \). Dans le mode conjoint par défaut aligned, sa surrogate avant la normalisation de l’avantage est:
La moyenne du groupe échantillonnée inclut l’échantillon mis à jour, il ne s’agit donc pas de la base indépendante de l’action supposée dans l’expression générale ci-dessus. Dans l’entraînement multi-tours, le retour de chaque branche est sa récompense immédiate plus la moyenne des retours de son nœud enfant, sans facteur d’actualisation. Dans le mode cross, chaque agent reçoit la somme des retours sur toutes les combinaisons conjointes contenant cette complétion.
Par défaut, advantage_normalization=True centre et met à l’échelle les avantages au sein de chaque groupe de génération à l’aide de l’écart type de la population, avec un dénominateur minimum de 1e-6. Si la régularisation de référence KL est activée, la pénalité de référence échantillonnée est soustraite des retours avant que la base et la normalisation ne soient appliquées.
La tranche de perte
MAGRPOTraineractuelle omet la complétion finale token, de sorte que son score de séquence mis en œuvre diffère de la probabilité de séquence complète dans le substitut ci-dessus. La configuration canonique estjoint_mode="cross"; l’alias accepté"crossed"génère des combinaisons cartésiennes, mais n’applique pas la même agrégation de retour par complétion.
num_agents: Nombre d’agents configuré, qui doit correspondre à la configuration trainernum_turns: Nombre de tours par episodenum_train_epochs: Nombre d’époques d’entraînement epochsagent_learning_rate: Taux d’apprentissagelogging_steps: Intervalle de journalisation en pasnum_generations: Nombre de générations à échantillonner par requête pour chaque agentmax_new_tokens: Nombre maximal de nouvelles tokens à générertemperature: Température pour l’échantillonnagetop_p: Top-p pour l’échantillonnagetop_k: Top-k pour l’échantillonnagediscount: Champ de configuration conservé ; l’implémentation actuelle MAGRPO calcule des retours non dépréciés et ne l’utilise pasjoint_mode: Composition d’actions conjointes (alignedpour l’alignement sur l’index,crosspour le produit cartésien)early_termination_threshold: Une branche d’entraînement cesse de s’étendre lorsque la récompense immédiate moyenne du nœud dépasse ce seuil (valeur par défaut-0.2;Nonedésactive l’arrêt précoce)rollout_buffer_size: Nombre d’échantillons de nœuds à mettre en mémoire par agent avant une mise à jourtrain_batch_size: Nombre d’échantillons de nœuds par étape de l’optimiseur ; valeur par défautrollout_buffer_sizeadvantage_normalization: Que centrer et mettre à l’échelle les avantages au sein de chaque groupe de génération du nœud (valeur par défautTrue)eval_interval: Les évaluations se déroulent aux indices de lots divisibles par N, y compris le premier lot de chaque epoch ;0désactive l’évaluation périodiqueeval_num_samples: Nombre d’échantillons à évaluer par exécution d’évaluationeval_batch_size: Taille du lot d’évaluation DataLoaderexternal_prompt_passthrough: Utiliser directement les invites externes dans l’entraînement multi-toursadvantage_mode: Mode de base (mean,max,rloo,raw)parallel_training: Mode d’exécution de l’agent (noneoump)agent_devices: Placement de l’appareil ; requis explicitement pourparallel_training="mp"reference_kl_enabled: Activer une pénalité de référence gelée KL (valeur par défautFalse)reference_kl_coef: Poids de la pénalité de référence (valeur par défaut0.1)reference_devices: Placement de l’appareil optionnel pour les modèles de référence
agent_modelouagents: Chaîne d’identifiant de modèle pour les agents homogènes, ou une liste d’identifiants de modèles ou de modèles préchargés ; les modèles préchargés sont fournis viaagentsnum_agents: Nombre d’agents créés à partir deagent_model(valeur par défaut2), configuré indépendamment deargs. Lorsque seulagentsest fourni, sa longueur détermine le nombre d’agentstokenizer: Partagé tokenizer ou un par agent ; facultatif pour les identifiants de modèles, requis pour les modèles préchargésreward_func: Fonction qui renvoie une liste de nombres à virgule flottante (requis)reward_processor: Fonction optionnelle à appliquer aux récompenses (par exemple, mise à l’échelle)formatters: Fonction unique ou liste de fonctions par agent pour le formatage des invitesargs: Instance deMAGRPOConfig(facultatif)train_dataset: Ensemble de données requis lors de l’appel àtrain()eval_dataset: Ensemble de données d’évaluation (facultatif)model_config: Dictionnaire de configuration du modèle (facultatif)wandb_config: Configuration de la journalisation pour Weights & Biases (facultatif)external_transition: Fonction fournissant les transitions entre les tours; requis lors de l’appel ànum_turns > 1(la valeur par défaut est2)eval_logger: Callback facultatif pour les métriques de tâche, appelé commeeval_logger(agent_completions_turns=..., batch_items=..., prompts=...); renvoie un dictionnaire de métriques pour chaque élément évalué et est utilisé aveceval_aggregatoreval_aggregator: Callback facultatif, appelé commeeval_aggregator(metrics, num_turns=...); les métriquesturn_k/...renvoyées sont enregistrées souseval/. Les deux callbacks d’évaluation doivent être fournis pour les métriques personnalisées
MAGRPO collecte des échantillons dans un tampon rollout et recalcule leurs probabilités logarithmiques lors des mises à jour, sans importance ni troncage des ratios. Les échantillons peuvent donc prédater les mises à jour antérieures du même tampon ou de l’arbre rollout. Puisque le trainer n’a pas de modèle critic,
value_clip_rangen’est pas applicable.
Le trainer utilise une formation fixe DataLoader taille de lot de 1 et nécessite au moins
num_generations=2, y compris pour la variante de retour brut. Par défaut,train_batch_size=rollout_buffer_size: chaque agent calcule la moyenne des pertes des échantillons de nœuds en mémoire tampon pour une étape d’optimisation. Des mini-lots plus petits produisent plusieurs étapes d’optimisation ; un tampon partiel est vidé à la fin de chaque epoch.
Autres variantes#
CoMLRL fournit également d’autres variantes MAREINFORCE avec différentes bases:
- MARLOO: Multi-Agent REINFORCE Leave-One-Out. La base est la moyenne des retours des autres générations dans le même groupe d’échantillons du nœud, et non des autres agents.
- MAReMax: Agent multi-agent REINFORCE avec Max par groupe (
MAReMaxConfigetMAReMaxTrainer). La valeur de référence est le retour maximal du groupe échantillonné au nœud ; cette implémentation ne génère pas de réponse de référence égoïste séparée.
MAREINFORCETrainer,MARLOOTrainer, etMAReMaxTrainerdérivent decomlrl.trainers.reinforce.MAGRPOTrainer. Leurs classes de configuration correspondantes héritentMAGRPOConfig, avec des valeurs par défautadvantage_modedesraw,rloo, etmax, respectivement. Elles partagent la même trainer interface et champs de configuration.
Les quatre trainers diffèrent uniquement par la valeur de référence soustraite. Pour un nœud avec des réponses conjointes \( K=4 \), l’animation ci-dessous compare leurs avantages avant la normalisation : MAREINFORCE conserve le retour brut, comme dans REINFORCE ; MAGRPO soustrait la moyenne du groupe, comme dans GRPO ; MARLOO soustrait la moyenne des autres \( K-1 \), comme dans RLOO, ce qui met à l’échelle les avantages MAGRPO par \( K/(K-1) \) ; et MAReMax soustrait le maximum du groupe, de sorte qu’aucune réponse ne reçoive un avantage positif.
Les formules variant décrivent les avantages avant la normalisation. Toutes les variantes héritent de
advantage_normalization=True, qui recentre même les retours bruts et les avantages basés sur le maximum. À l’exception de la limite de l’écart type et de la précision numérique, les quatre modes produisent ensuite les mêmes avantages normalisés. Les utilisateurs peuvent conserver les différences de référence affichées ci-dessus, y compris l’estimateur de retour brut MAREINFORCE, en définissantadvantage_normalization=False.