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.
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:
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 \).
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:
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
MAGRPOTraineromite 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 esjoint_mode="cross"; el alias aceptado"crossed"genera combinaciones cartesianas pero no aplica la misma agregación de retorno por finalización.
num_agents: Número de agentes configurado, que debe coincidir con la configuración trainernum_turns: Número de turnos por episodenum_train_epochs: Número de entrenamientos epochsagent_learning_rate: Tasa de aprendizajelogging_steps: Intervalo de registro en pasosnum_generations: Número de generaciones para muestrear por prompt para cada agentemax_new_tokens: Número máximo de nuevas tokens para generartemperature: Temperatura para muestreotop_p: Top-p para muestreotop_k: Top-k para muestreodiscount: Campo de configuración conservado; la implementación actual de MAGRPO calcula retornos sin descuento y no utiliza este valorjoint_mode: Composición de acciones conjunta (alignedpara index-aligned,crosspara 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;Nonedeshabilita la terminación temprana)rollout_buffer_size: Número de muestras de nodos para almacenar por agente antes de una actualizacióntrain_batch_size: Número de muestras de nodos por paso del optimizador; predeterminadorollout_buffer_sizeadvantage_normalization: Si centrar y escalar las ventajas dentro de cada grupo de generación del nodo (predeterminadoTrue)eval_interval: La evaluación se ejecuta en índices de lote divisibles por N, incluyendo el primer lote de cada epoch;0deshabilita la evaluación periódicaeval_num_samples: Número de muestras para evaluar por ejecución de evaluacióneval_batch_size: Tamaño del lote de evaluación DataLoaderexternal_prompt_passthrough: Si utilizar indicaciones externas directamente en el entrenamiento de múltiples turnosadvantage_mode: Modo de base (mean,max,rloo,raw)parallel_training: Modo de ejecución del agente (noneomp)agent_devices: Ubicación del dispositivo del agente; requerido explícitamente paraparallel_training="mp"reference_kl_enabled: Si habilitar una penalización de referencia congelada KL (predeterminadoFalse)reference_kl_coef: Peso de la penalización de referencia (predeterminado0.1)reference_devices: Ubicación del dispositivo opcional para los modelos de referencia
agent_modeloagents: 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 deagentsnum_agents: Número de agentes creados a partir deagent_model(predeterminado2), configurado independientemente deargs. Cuando solo se suministraagents, su longitud determina el número de agentestokenizer: Compartido tokenizer o uno por agente; opcional para identificadores de modelo, requerido para modelos pre-cargadosreward_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 indicacionesargs: Instancia deMAGRPOConfig(opcional)train_dataset: Conjunto de datos requerido al llamar atrain()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 anum_turns > 1(el valor predeterminado es2)eval_logger: Callback opcional de métricas de tarea, llamado comoeval_logger(agent_completions_turns=..., batch_items=..., prompts=...); devuelve un diccionario de métricas para cada elemento evaluado y se utiliza coneval_aggregatoreval_aggregator: Callback opcional, llamado comoeval_aggregator(metrics, num_turns=...); las métricasturn_k/...devueltas se registran bajoeval/. 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_rangeno 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.
- MAReMax: Agente Multi-Agente REINFORCE con Máximo de Grupo (
MAReMaxConfigyMAReMaxTrainer). 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.
MAREINFORCETrainer,MARLOOTrainer, yMAReMaxTrainerse derivan decomlrl.trainers.reinforce.MAGRPOTrainer. sus clases de configuración correspondientes heredanMAGRPOConfig, con valores predeterminadosadvantage_modederaw,rloo, ymax, 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.
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, estableciendoadvantage_normalization=False.