Zum Inhalt springen

verl - Volcano Engine RL für LLMs Cheatsheet

verl - Volcano Engine RL für LLMs Cheatsheet

verl (Volcano Engine Reinforcement Learning) ist ein Open-Source-, hochleistungsfähiges Framework für das Reinforcement-Learning-Post-Training von großen Sprachmodellen. Es ist die öffentliche Implementierung des HybridFlow-Papers, aufgebaut um ein Hybrid-Controller-Programmiermodell, das es Ihnen ermöglicht, komplexe RL-Datenflüsse auszudrücken — PPO, GRPO und andere — in wenigen Zeilen, während Berechnung von Datenabhängigkeiten entkoppelt wird. Es integriert sich mit FSDP, Megatron-LM, vLLM und SGLang und ist eines der am häufigsten verwendeten RL-Frameworks für LLMs.

RL-Post-Training ist rechenintensiv und empfindlich gegenüber Konfiguration. Validieren Sie eine Reward und einen kleinen Lauf, bevor Sie auf Multi-Node skalieren.

Installation

MethodeBefehl
pippip install verl
Von Quellegit clone https://github.com/volcengine/verl && cd verl && pip install -e .
DockerVerwenden Sie die offiziellen Images aus der Dokumentation (CUDA + vLLM vorinstalliert)
AnforderungenNVIDIA GPU(s), CUDA, PyTorch; vLLM oder SGLang für Rollout

Kernkonzepte

BegriffBedeutung
HybridFlowDas Controller-Modell: Ein einzelner Controller orchestriert verteilte Worker
RolloutGenerierungsphase, die Samples produziert (bereitgestellt von vLLM/SGLang)
Actor / CriticDie trainierte Policy und (für PPO) das Value-Modell
RewardSkalares Signal; von einem Reward-Modell oder einer benutzerdefinierten Funktion
PlacementWie Modelle auf GPU-Sets abgebildet werden (kosolokal oder geteilt)
RecipeEine vorgefertigte Trainingskonfiguration für einen Algorithmus

Unterstützte Algorithmen

AlgorithmusNotizen
PPOKlassisches Actor-Critic RLHF
GRPOGruppenrelativ, kein Critic-Modell erforderlich
ReMax / RLOOLeichte Baselines
DAPO / Dr.GRPOGRPO-Varianten
DPO-StilPreference-Optimierungsrezepte

Ausführung eines Trainingsjobs

verl wird durch Hydra-ähnliche Config-Overrides in der Befehlszeile gesteuert.

# GRPO-Beispiel (konzeptuell): Daten, Modell und Rollout-Backend angeben
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
Config-GruppeKontrollen
algorithm.*Algorithmus und Advantage-Estimator (z.B. adv_estimator=grpo)
data.*Trainings-/Val-Dateien, Batch-Größen, maximale Längen
actor_rollout_ref.model.*Basismodellpfad und Dtype
actor_rollout_ref.rollout.*Rollout-Backend (vllm / sglang) und Sampling
critic.*Critic-Modelleinstellungen (PPO)
trainer.*GPUs pro Node, Knotenanzahl, Logging, Checkpoints

Backends & Skalierung

KomponenteOptionen
Training-EngineFSDP, FSDP2, Megatron-LM
Rollout-EnginevLLM, SGLang
VerteilungRay-basierte Platzierung über GPUs/Nodes
Geräte-MappingCollocate Actor+Rollout oder über GPU-Sets verteilt

Reward & Daten

AufgabeWie
Benutzerdefinierte RewardStellen Sie ein Reward-Funktionsmodul über Config bereit
Reward-ModellVerweisen Sie reward_model.* auf ein Scoring-Modell
DatensatzformatParquet mit Prompt (und Antwort für überprüfbare Rewards)
Überprüfbare RewardsIntegrierte Unterstützung für Mathe/Code-Stil Exact-Match-Rewards

Überwachung

ToolIntegration
Weights & Biasestrainer.logger=['console','wandb']
TensorBoardUnterstützter Logger-Backend
Checkpointstrainer.save_freq, Fortsetzen von trainer.resume_mode

verl vs andere RL-Frameworks

AspektverlOpenRLHFART
Core-ModellHybridFlow-ControllerRay Actor SplitClient/Server
Training-EnginesFSDP + MegatronDeepSpeed/FSDPUnsloth
RolloutvLLM / SGLangvLLMvLLM
Beste EinsatzgebieteDurchsatz + FlexibilitätProduction RLHF in SkalierungAgents in Ihrem eigenen Code

Ressourcen