Ir al contenido
CoMLRL
Aprendizaje por refuerzo multi-LLM RL

Multi-agente REINFORCE

Traducido automáticamente con translategemma:4b Original en inglés

REINFORCE es una clase de métodos de gradiente de política que optimiza la política directamente utilizando recompensas muestreadas. Estos métodos se utilizan ampliamente para el ajuste fino de LLM debido a su simplicidad y eficiencia. Ejemplos incluyen GRPO, Dr. GRPO, RLOO, ReMax, TreeRPO, y REINFORCE++. REINFORCE se puede extender a entornos multi-agente, donde múltiples agentes LLM responden en cada turno y sus respuestas conjuntas reciben una recompensa compartida.

Todos los MAREINFORCE trainers comparten un único bucle de entrenamiento. En cada nodo rollout, cada agente muestrea respuestas \( K \), el trainer puntúa las respuestas conjuntas alineadas con índices utilizando una recompensa compartida, y cada agente pondera sus propias probabilidades logarítmicas por las ventajas compartidas resultantes antes de un paso optimizador en búfer.

Flujo de entrenamiento de MAREINFORCE Cada muestra conjunta obtiene una recompensa compartida; su ventaja pondera el gradiente de política de cada agente.

MAREINFORCE#

El surrogate de gradiente de política para Multi-agente REINFORCE (MAREINFORCE), antes de la normalización de ventaja o la regularización de referencia, se puede expresar como:

\[ J(\theta_i) = \mathbb{E}_{\mathbf{o}_0 \sim \mathcal{D}, \mathbf{h}_t \sim \boldsymbol{\pi}_{\boldsymbol{\theta}}} \Bigg[\sum_{t=0}^{H-1} R_t \cdot \log \pi_{\theta_i}(a_{i,t}\mid h_{i,t})\Bigg], \]
donde \( R_t \) es la recompensa en el turno \( t \) y \( H \) es el horizonte (es decir, el número de turnos de diálogo). La expectativa se toma sobre las observaciones iniciales del conjunto de datos \( \mathcal{D} \) y el historial de acciones conjuntas de todos episodes los siguientes agentes \( \boldsymbol{\pi}_{\boldsymbol{\theta}} \).

Los métodos REINFORCE no utilizan un modelo critic para la estimación de valores. Sus estimaciones de gradiente de política pueden tener alta varianza debido a la muestreo estocástico y la asignación de crédito a largo plazo. Los enfoques comunes para reducir esta varianza incluyen el uso de una base independiente de la acción o el promedio sobre más muestras, como las muestras \( K \) en cada historial conjunto \( \mathbf{h}_t \).

\[ J(\theta_i) = \mathbb{E}_{\mathbf{o}_0 \sim \mathcal{D}, \mathbf{h}_t \sim \boldsymbol{\pi}_{\boldsymbol{\theta}}} \Bigg[\frac{1}{K}\sum_{k=1}^{K} \sum_{t=0}^{H-1} \left(R^{k}_t - b(\mathbf{h}_t)\right) \cdot \log \pi_{\theta_i}(a^{k}_{i,t}\mid h_{i,t})\Bigg], \]
donde la línea de base \( b(\mathbf{h}_t) \) es independiente de la acción.

MAGRPO#

La Optimización de Política Relativa de Grupo para Agentes (MAGRPO) es una instancia de MAREINFORCE inspirada en GRPO, donde la base promedio de grupo es la media de las devoluciones de \( K \) muestras. En el modo conjunto aligned predeterminado, su sustituto antes de la normalización de la ventaja es:

\[ J(\theta_i) = \mathbb{E}_{\mathbf{o}_0 \sim \mathcal{D}, \mathbf{h}_t \sim \boldsymbol{\pi}_{\boldsymbol{\theta}}} \Bigg[\frac{1}{K}\sum_{k=1}^{K}\sum_{t=0}^{H-1} \left(R^{k}_t - \frac{1}{K}\sum_{l=1}^{K}R^{l}_t\right) \cdot \log \pi_{\theta_i}(a^{k}_{i,t}\mid h_{i,t})\Bigg]. \]

La media de grupo muestreada incluye la muestra que se está actualizando, por lo que no es la base independiente de la acción asumida en la expresión general anterior. En el entrenamiento de múltiples turnos, la devolución de cada rama es la recompensa inmediata más la media de devolución de su nodo hijo, sin aplicar descuento. En el modo cross, cada agente recibe la suma de las devoluciones sobre todas las combinaciones conjuntas que contienen esa finalización.

Por defecto, advantage_normalization=True centra y escala las ventajas dentro de cada grupo de generación del nodo utilizando la desviación estándar de la población, con un mínimo denominador de 1e-6. Si la regularización de referencia KL está habilitada, la penalización de referencia muestreada se resta de las devoluciones antes de aplicar la base y la normalización.

La porción actual de pérdida MAGRPOTrainer omite la finalización token, por lo que su puntuación de secuencia implementada difiere de la probabilidad de secuencia completa en el surrogate anterior. La configuración estándar es joint_mode="cross"; el alias aceptado "crossed" genera combinaciones cartesianas pero no aplica la misma agregación de retorno por finalización.

MAGRPOConfig Parámetros
  • num_agents: Número de agentes configurado, que debe coincidir con la configuración trainer
  • num_turns: Número de turnos por episode
  • num_train_epochs: Número de entrenamientos epochs
  • agent_learning_rate: Tasa de aprendizaje
  • logging_steps: Intervalo de registro en pasos
  • num_generations: Número de generaciones para muestrear por prompt para cada agente
  • max_new_tokens: Número máximo de nuevas tokens para generar
  • temperature: Temperatura para muestreo
  • top_p: Top-p para muestreo
  • top_k: Top-k para muestreo
  • discount: Campo de configuración conservado; la implementación actual de MAGRPO calcula retornos sin descuento y no utiliza este valor
  • joint_mode: Composición de acciones conjunta (aligned para index-aligned, cross para producto cartesiano)
  • early_termination_threshold: Una rama de entrenamiento deja de expandirse cuando la recompensa inmediata promedio del nodo excede este umbral (predeterminado -0.2; None deshabilita la terminación temprana)
  • rollout_buffer_size: Número de muestras de nodos para almacenar por agente antes de una actualización
  • train_batch_size: Número de muestras de nodos por paso del optimizador; predeterminado rollout_buffer_size
  • advantage_normalization: Si centrar y escalar las ventajas dentro de cada grupo de generación del nodo (predeterminado True)
  • eval_interval: La evaluación se ejecuta en índices de lote divisibles por N, incluyendo el primer lote de cada epoch; 0 deshabilita la evaluación periódica
  • eval_num_samples: Número de muestras para evaluar por ejecución de evaluación
  • eval_batch_size: Tamaño del lote de evaluación DataLoader
  • external_prompt_passthrough: Si utilizar indicaciones externas directamente en el entrenamiento de múltiples turnos
  • advantage_mode: Modo de base (mean, max, rloo, raw)
  • parallel_training: Modo de ejecución del agente (none o mp)
  • agent_devices: Ubicación del dispositivo del agente; requerido explícitamente para parallel_training="mp"
  • reference_kl_enabled: Si habilitar una penalización de referencia congelada KL (predeterminado False)
  • reference_kl_coef: Peso de la penalización de referencia (predeterminado 0.1)
  • reference_devices: Ubicación del dispositivo opcional para los modelos de referencia
MAGRPOTrainer Parámetros
  • agent_model o agents: Cadena de identificador de modelo para agentes homogéneos, o una lista de identificadores de modelo o modelos pre-cargados; los modelos pre-cargados se suministran a través de agents
  • num_agents: Número de agentes creados a partir de agent_model (predeterminado 2), configurado independientemente de args. Cuando solo se suministra agents, su longitud determina el número de agentes
  • tokenizer: Compartido tokenizer o uno por agente; opcional para identificadores de modelo, requerido para modelos pre-cargados
  • reward_func: Función que devuelve una lista de flotantes (requerido)
  • reward_processor: Procesador opcional para aplicar a las recompensas (p. ej., escalado)
  • formatters: Función o lista de funciones por agente para el formato de indicaciones
  • args: Instancia de MAGRPOConfig (opcional)
  • train_dataset: Conjunto de datos requerido al llamar a train()
  • eval_dataset: Conjunto de evaluación (opcional)
  • model_config: Diccionario de configuración del modelo (opcional)
  • wandb_config: Configuración para el registro de Weights & Biases (opcional)
  • external_transition: Función que proporciona las transiciones entre turnos; requerido al llamar a num_turns > 1 (el valor predeterminado es 2)
  • eval_logger: Callback opcional de métricas de tarea, llamado como eval_logger(agent_completions_turns=..., batch_items=..., prompts=...); devuelve un diccionario de métricas para cada elemento evaluado y se utiliza con eval_aggregator
  • eval_aggregator: Callback opcional, llamado como eval_aggregator(metrics, num_turns=...); las métricas turn_k/... devueltas se registran bajo eval/. Ambos callbacks de evaluación deben ser suministrados para métricas personalizadas

MAGRPO recopila muestras en un búfer rollout y vuelve a calcular sus probabilidades logarítmicas durante las actualizaciones, sin muestreo de importancia ni recorte de ratio. Las muestras pueden, por lo tanto, preceder a actualizaciones anteriores del mismo búfer o árbol rollout. Dado que el trainer no tiene critic modelo, value_clip_range no aplica.

El trainer utiliza un entrenamiento fijo DataLoader tamaño del lote de 1 y requiere al menos num_generations=2, incluyendo para la variante de retorno bruto. Por defecto, train_batch_size=rollout_buffer_size: cada agente calcula el promedio de las pérdidas de las muestras de nodos almacenadas en búfer para un solo paso del optimizador. Mini-batches más pequeños producen múltiples pasos del optimizador; un búfer parcial se vacía al final de cada uno epoch.

Otras variantes#

CoMLRL también proporciona otras variantes de MAREINFORCE con diferentes baselines:

  • MARLOO: Multi-Agente REINFORCE Leave-One-Out. La baseline es la media de las recompensas de las otras generaciones en el mismo grupo de muestras del nodo, no de los otros agentes.
\[ J(\theta_i) = \mathbb{E}_{\mathbf{o}_0 \sim \mathcal{D}, \mathbf{h}_t \sim \boldsymbol{\pi}_{\boldsymbol{\theta}}} \Bigg[\frac{1}{K}\sum_{k=1}^{K}\sum_{t=0}^{H-1} \left(R^{k}_t - \frac{1}{K-1}\sum_{l=1, l\neq k}^{K}R^{l}_t\right) \cdot \log \pi_{\theta_i}(a^{k}_{i,t}\mid h_{i,t})\Bigg]. \]
  • MAReMax: Agente Multi-Agente REINFORCE con Máximo de Grupo (MAReMaxConfig y MAReMaxTrainer). La línea base es el valor de retorno del grupo muestreado máximo en el nodo; esta implementación no genera una respuesta de línea base codiciosa separada.
\[ J(\theta_i) = \mathbb{E}_{\mathbf{o}_0 \sim \mathcal{D}, \mathbf{h}_t \sim \boldsymbol{\pi}_{\boldsymbol{\theta}}} \Bigg[\frac{1}{K}\sum_{k=1}^{K}\sum_{t=0}^{H-1} \left(R^{k}_t - \mathrm{max}_l\, R^l_t \right) \cdot \log \pi_{\theta_i}(a^{k}_{i,t}\mid h_{i,t})\Bigg]. \]

MAREINFORCETrainer, MARLOOTrainer, y MAReMaxTrainer se derivan de comlrl.trainers.reinforce.MAGRPOTrainer. sus clases de configuración correspondientes heredan MAGRPOConfig, con valores predeterminados advantage_mode de raw, rloo, y max, respectivamente. Comparten la misma trainer interfaz y campos de configuración.

Las cuatro variantes trainers difieren solo en la línea base restada del retorno compartido. Para un nodo con respuestas conjuntas \( K=4 \), la animación a continuación compara sus ventajas antes de la normalización: MAREINFORCE mantiene el retorno original, como en REINFORCE; MAGRPO resta la media del grupo, como en GRPO; MARLOO resta la media de los retornos \( K-1 \), como en RLOO, que escala las ventajas de MAGRPO por \( K/(K-1) \); y MAReMax resta el máximo del grupo, por lo que ninguna respuesta recibe una ventaja positiva.

Baselines en variantes de MAREINFORCE Cada fila resta una baseline diferente de las mismas recompensas compartidas; las barras sombreadas marcan las ventajas antes de la normalización.

Las fórmulas variantes describen ventajas antes de la normalización. Todas las variantes heredan advantage_normalization=True, que vuelve a centrar incluso los retornos originales y las ventajas basadas en el máximo. Excepto por el suelo de la desviación estándar y la precisión numérica, las cuatro modalidades producen las mismas ventajas normalizadas. Los usuarios pueden mantener las diferencias de línea base mostradas anteriormente, incluida la estimación de retorno original MAREINFORCE, estableciendo advantage_normalization=False.