Ir al contenido

verl - Hoja de Referencia de RL de Volcano Engine para LLMs

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étodoComando
pippip install verl
Desde el código fuentegit clone https://github.com/volcengine/verl && cd verl && pip install -e .
Dockerusa las imágenes oficiales referenciadas en la documentación (CUDA + vLLM preinstalados)
RequisitosGPU(s) NVIDIA, CUDA, PyTorch; vLLM o SGLang para el rollout

Conceptos Centrales

TérminoSignificado
HybridFlowEl modelo de controlador: un único controlador orquesta los workers distribuidos
RolloutFase de generación que produce muestras (servida por vLLM/SGLang)
Actor / CriticLa política que se entrena y (para PPO) el modelo de valor
RewardSeñal escalar; de un modelo de recompensa o una función personalizada
PlacementCómo se asignan los modelos a conjuntos de GPU (colocados o divididos)
RecipeUna configuración de entrenamiento lista para usar para un algoritmo

Algoritmos Soportados

AlgoritmoNotas
PPORLHF clásico actor-crítico
GRPORelativo a grupo, no requiere modelo crítico
ReMax / RLOOLíneas base ligeras
DAPO / Dr.GRPOVariantes de GRPO
Estilo DPORecetas 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ónControla
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

ComponenteOpciones
Motor de entrenamientoFSDP, FSDP2, Megatron-LM
Motor de rolloutvLLM, SGLang
DistribuciónAsignación basada en Ray entre GPU/nodos
Mapeo de dispositivosColocar actor+rollout, o dividir entre conjuntos de GPU

Recompensa y Datos

TareaCómo
Recompensa personalizadaProporciona un módulo de función de recompensa vía configuración
Modelo de recompensaApunta reward_model.* a un modelo de puntuación
Formato de datasetParquet con prompt (y respuesta para recompensas verificables)
Recompensas verificablesSoporte integrado para recompensas estilo exact-match de matemáticas/código

Monitoreo

HerramientaIntegración
Weights & Biasestrainer.logger=['console','wandb']
TensorBoardBackend de logger soportado
Checkpointstrainer.save_freq, reanudar desde trainer.resume_mode

verl frente a Otros Frameworks de RL

AspectoverlOpenRLHFART
Modelo centralControlador HybridFlowDivisión de actores RayCliente/servidor
Motores de entrenamientoFSDP + MegatronDeepSpeed/FSDPUnsloth
RolloutvLLM / SGLangvLLMvLLM
Mejor paraRendimiento + flexibilidadRLHF de producción a escalaAgentes en tu propio código

Recursos