Entrenamiento PPO
Entrena modelos de lenguaje usando Proximal Policy Optimization (PPO) para aprendizaje por refuerzo con retroalimentación humana (RLHF).También disponible: RL explicado en Portugués
Visión General
El entrenamiento PPO es un proceso de 2 pasos:- Entrenar un Modelo de Recompensa - Entrena un modelo para puntuar respuestas (ver Reward Modeling)
- Ejecutar Entrenamiento PPO - Usa el modelo de recompensa para guiar la optimización de la política
Inicio Rápido
Python API
Requisitos
Parámetros
Parámetros Principales de PPO
| Parámetro | Flag CLI | Por Defecto | Descripción |
|---|---|---|---|
rl_reward_model_path | --rl-reward-model-path | None | Ruta al modelo de recompensa (requerido) |
rl_gamma | --rl-gamma | 0.99 | Factor de descuento (0.9-0.99) |
rl_gae_lambda | --rl-gae-lambda | 0.95 | Lambda GAE para estimación de ventaja (0.9-0.99) |
rl_kl_coef | --rl-kl-coef | 0.1 | Coeficiente de divergencia KL (0.01-0.5) |
rl_value_loss_coef | --rl-value-loss-coef | 1.0 | Coeficiente de pérdida de valor (0.5-2.0) |
rl_clip_range | --rl-clip-range | 0.2 | Rango de recorte PPO (0.1-0.3) |
rl_value_clip_range | --rl-value-clip-range | 0.2 | Rango de recorte de función de valor |
Parámetros de Entrenamiento
| Parámetro | Flag CLI | Por Defecto | Descripción |
|---|---|---|---|
rl_num_ppo_epochs | --rl-num-ppo-epochs | 4 | Épocas PPO por batch |
rl_chunk_size | --rl-chunk-size | 128 | Tamaño de chunk de entrenamiento |
rl_mini_batch_size | --rl-mini-batch-size | 8 | Tamaño de mini-batch |
rl_optimize_device_cache | --rl-optimize-device-cache | True | Optimización de memoria |
Parámetros de Generación
| Parámetro | Flag CLI | Por Defecto | Descripción |
|---|---|---|---|
rl_max_new_tokens | --rl-max-new-tokens | 128 | Máximo de tokens a generar |
rl_top_k | --rl-top-k | 50 | Muestreo top-k |
rl_top_p | --rl-top-p | 1.0 | Muestreo top-p (núcleo) |
rl_temperature | --rl-temperature | 1.0 | Temperatura de generación |
Parámetros Avanzados
| Parámetro | Flag CLI | Por Defecto | Descripción |
|---|---|---|---|
rl_reward_fn | --rl-reward-fn | None | Función de recompensa: default, length_penalty, correctness, custom |
rl_multi_objective | --rl-multi-objective | False | Habilitar recompensas multi-objetivo |
rl_reward_weights | --rl-reward-weights | None | Pesos JSON para multi-objetivo |
rl_env_type | --rl-env-type | None | Tipo de entorno RL |
rl_env_config | --rl-env-config | None | Configuración JSON del entorno |
Formato de Datos
El entrenamiento PPO usa solo prompts (el modelo genera respuestas):Tipos de Entorno RL
Tres tipos de entorno están disponibles:| Entorno | Descripción |
|---|---|
text_generation | Generación de texto estándar con puntuación de recompensa |
multi_objective | Múltiples componentes de recompensa combinados |
preference_comparison | Comparar respuestas generadas |
Recompensas Multi-Objetivo
Habilitar múltiples señales de recompensa:Ejemplo: Pipeline RLHF Completo
Paso 1: Entrenar Modelo de Recompensa
Paso 2: Ejecutar Entrenamiento PPO
Mejores Prácticas
- Comienza con un buen modelo base - Haz fine-tuning con SFT antes de PPO
- Usa un modelo de recompensa bien entrenado - La calidad de las recompensas determina el éxito de PPO
- Monitorea la divergencia KL - Demasiado alta significa que el modelo está divergiendo demasiado del original
- Comienza con hiperparámetros por defecto - Ajusta según la dinámica del entrenamiento
- Usa tasas de aprendizaje pequeñas - PPO es sensible a la tasa de aprendizaje (1e-5 a 5e-6)
Próximos Pasos
Reward Modeling
Entrenar modelos de recompensa
DPO Training
Alternativa más simple a PPO
Entrenamiento GRPO
RL con entornos personalizados
Módulo RL
Bloques de construcción RL