Saltar al contenido principal

Módulo de Entrenamiento RL

AITraining incluye un módulo completo de aprendizaje por refuerzo para escenarios avanzados de entrenamiento de LLM.
Los comandos CLI (--trainer ppo, --trainer dpo, --trainer reward) usan implementaciones de la biblioteca TRL para estabilidad. El módulo autotrain.trainers.rl documentado aquí proporciona bloques de construcción de nivel inferior para pipelines de entrenamiento RL personalizados.

Visión General

El módulo RL proporciona:
  • PPO Trainer - Proximal Policy Optimization con penalización KL y GAE
  • DPO Trainer - Optimización Directa de Preferencias desde datos de preferencia
  • Modelos de Recompensa - Modelos de recompensa estándar, pareados y multi-objetivo
  • Entornos RL - Entornos de generación de texto, matemáticas, código y comparación de preferencias
  • Pipeline Asíncrono - Entrenamiento forward-backward con acumulación de gradiente

Entrenamiento PPO

Configuración

Arquitectura PPO

La implementación PPO usa un wrapper PPOModel que añade una cabeza de valor a cualquier LM causal:

Controlador KL Adaptativo

El AdaptiveKLController ajusta automáticamente el coeficiente de penalización KL para mantener la divergencia KL cerca del objetivo:

Bucle de Entrenamiento

Características Clave

Entrenamiento DPO

Entrena directamente desde datos de preferencia sin un modelo de recompensa separado.

Configuración

Dataset de Preferencia

PreferenceDataset debe ser importado directamente de autotrain.trainers.rl.dpo ya que no está exportado en el __init__.py principal.

DPO Sin Referencia

Para entrenamiento sin modelo de referencia:

Modelos de Recompensa

Modelo de Recompensa Estándar

Entrenamiento en Preferencias

Modelo de Recompensa Pareado

Para comparación directa de preferencias usando modelo Bradley-Terry:

Modelo de Recompensa Multi-Objetivo

Combina múltiples señales de recompensa:

Entornos RL

Dataclasses de Entorno

Entorno de Generación de Texto

Entorno Multi-Objetivo

Entorno de Comparación de Preferencias

Para recolección de datos RLHF y DPO:

Entornos Integrados

Pipeline Forward-Backward

Entrenamiento asíncrono con acumulación de gradiente:

Funciones de Pérdida Integradas

El pipeline soporta varias funciones de pérdida integradas:

Funciones de Pérdida Personalizadas

Cliente de Alto Nivel

AsyncTrainingClient debe ser importado directamente de autotrain.trainers.rl.forward_backward ya que no está exportado en el __init__.py principal.

Checkpointing

Muestreo

Genera muestras durante el entrenamiento:

Mejores Prácticas

Entrenamiento PPO

  1. Comienza con coeficiente KL pequeño - Deja que el controlador adaptativo ajuste
  2. Usa acumulación de gradiente - Tamaños de batch efectivos más grandes son más estables
  3. Monitorea divergencia KL - Debe permanecer cerca del objetivo
  4. Calienta la función de valor - Entrena el crítico antes de PPO completo

Entrenamiento DPO

  1. Datos de preferencia de alta calidad - La calidad importa más que la cantidad
  2. Tasa de aprendizaje baja - 1e-6 a 1e-5 recomendado
  3. Suavizado de etiquetas - 0.1 puede mejorar robustez
  4. Evalúa frecuentemente - Rastrea precisión y margen de recompensa

Modelado de Recompensas

  1. Datos balanceados - Ejemplos elegido/rechazado iguales
  2. Prompts diversos - Cubre casos de uso esperados
  3. LoRA para eficiencia - Fine-tuning eficiente de modelos grandes
  4. Multi-objetivo - Separa señales de seguridad y utilidad

Integración CLI

Para uso en producción, el CLI proporciona interfaces más simples usando implementaciones TRL:

Próximos Pasos

PPO Training

Guía CLI para PPO

DPO Training

Guía CLI para DPO

Reward Modeling

Entrenar modelos de recompensa

ORPO Training

Optimización de Preferencias por Razón de Probabilidades