verl - Hoja de Referencia de RL de Volcano Engine para LLMs
verl (Volcano Engine Reinforcement Learning) es un framework de código abierto y alto rendimiento para el post-entrenamiento mediante aprendizaje por refuerzo de modelos de lenguaje grandes. Es la implementación pública del artículo HybridFlow, construido en torno a un modelo de programación de controlador híbrido que te permite expresar flujos de datos de RL complejos — PPO, GRPO y otros — en pocas líneas mientras desacopla el cómputo de las dependencias de datos. Se integra con FSDP, Megatron-LM, vLLM y SGLang, y es uno de los frameworks de RL más usados para LLMs.
El post-entrenamiento con RL consume mucho cómputo y es sensible a la configuración. Valida una recompensa y una ejecución pequeña antes de escalar a varios nodos.
Instalación
| Método | Comando |
|---|
| pip | pip install verl |
| Desde el código fuente | git clone https://github.com/volcengine/verl && cd verl && pip install -e . |
| Docker | usa las imágenes oficiales referenciadas en la documentación (CUDA + vLLM preinstalados) |
| Requisitos | GPU(s) NVIDIA, CUDA, PyTorch; vLLM o SGLang para el rollout |
Conceptos Centrales
| Término | Significado |
|---|
| HybridFlow | El modelo de controlador: un único controlador orquesta los workers distribuidos |
| Rollout | Fase de generación que produce muestras (servida por vLLM/SGLang) |
| Actor / Critic | La política que se entrena y (para PPO) el modelo de valor |
| Reward | Señal escalar; de un modelo de recompensa o una función personalizada |
| Placement | Cómo se asignan los modelos a conjuntos de GPU (colocados o divididos) |
| Recipe | Una configuración de entrenamiento lista para usar para un algoritmo |
Algoritmos Soportados
| Algoritmo | Notas |
|---|
| PPO | RLHF clásico actor-crítico |
| GRPO | Relativo a grupo, no requiere modelo crítico |
| ReMax / RLOO | Líneas base ligeras |
| DAPO / Dr.GRPO | Variantes de GRPO |
| Estilo DPO | Recetas de optimización de preferencias |
Ejecutar un Trabajo de Entrenamiento
verl se controla mediante sustituciones de configuración estilo Hydra en la línea de comandos.
# Ejemplo GRPO (conceptual): apunta a los datos, el modelo y el backend de rollout
python3 -m verl.trainer.main_ppo \
algorithm.adv_estimator=grpo \
data.train_files=$DATA/train.parquet \
data.val_files=$DATA/val.parquet \
actor_rollout_ref.model.path=Qwen/Qwen2.5-7B-Instruct \
actor_rollout_ref.rollout.name=vllm \
trainer.n_gpus_per_node=8 \
trainer.nnodes=1
| Grupo de configuración | Controla |
|---|
algorithm.* | Algoritmo y estimador de ventaja (p. ej. adv_estimator=grpo) |
data.* | Archivos de entrenamiento/validación, tamaños de lote, longitudes máximas |
actor_rollout_ref.model.* | Ruta del modelo base y dtype |
actor_rollout_ref.rollout.* | Backend de rollout (vllm / sglang) y muestreo |
critic.* | Configuración del modelo crítico (PPO) |
trainer.* | GPU por nodo, número de nodos, registro, checkpoints |
Backends y Escalado
| Componente | Opciones |
|---|
| Motor de entrenamiento | FSDP, FSDP2, Megatron-LM |
| Motor de rollout | vLLM, SGLang |
| Distribución | Asignación basada en Ray entre GPU/nodos |
| Mapeo de dispositivos | Colocar actor+rollout, o dividir entre conjuntos de GPU |
Recompensa y Datos
| Tarea | Cómo |
|---|
| Recompensa personalizada | Proporciona un módulo de función de recompensa vía configuración |
| Modelo de recompensa | Apunta reward_model.* a un modelo de puntuación |
| Formato de dataset | Parquet con prompt (y respuesta para recompensas verificables) |
| Recompensas verificables | Soporte integrado para recompensas estilo exact-match de matemáticas/código |
Monitoreo
| Herramienta | Integración |
|---|
| Weights & Biases | trainer.logger=['console','wandb'] |
| TensorBoard | Backend de logger soportado |
| Checkpoints | trainer.save_freq, reanudar desde trainer.resume_mode |
verl frente a Otros Frameworks de RL
| Aspecto | verl | OpenRLHF | ART |
|---|
| Modelo central | Controlador HybridFlow | División de actores Ray | Cliente/servidor |
| Motores de entrenamiento | FSDP + Megatron | DeepSpeed/FSDP | Unsloth |
| Rollout | vLLM / SGLang | vLLM | vLLM |
| Mejor para | Rendimiento + flexibilidad | RLHF de producción a escala | Agentes en tu propio código |
Recursos