Zum Inhalt springen

OpenRLHF Cheatsheet

OpenRLHF Cheatsheet

OpenRLHF ist ein hochleistungsfähiges, Open-Source-RLHF-Framework für Skalierung. Aufgebaut auf Ray für verteilte Terminplanung, vLLM für schnelle Generierung und DeepSpeed/ZeRO für Training trennt es die Actor-, Critic-, Reward- und Reference-Modelle über GPUs, damit Sie große Modelle (70B+) effizient trainieren können. Es implementiert ein breites Menü an Algorithmen — PPO, GRPO, REINFORCE++, RLOO — plus dynamisches Sampling und asynchrones agentem RL.

Reinforcement Learning in Skalierung ist operativ anspruchsvoll. Beginnen Sie auf einem einzelnen Node mit einem kleinen Modell, bestätigen Sie, dass die Reward-Trends korrekt sind, und skalieren Sie dann mit Ray auf.

Installation

MethodeBefehl
pippip install openrlhf
Mit vLLM Extraspip install openrlhf[vllm]
Von Quellegit clone https://github.com/OpenRLHF/OpenRLHF && cd OpenRLHF && pip install -e .
DockerVerwenden Sie das Referenz-Image des Projekts (CUDA + Abhängigkeiten vorinstalliert)
AnforderungenNVIDIA GPU(s), CUDA, Ray, DeepSpeed, vLLM

Architektur

KomponenteRolle
ActorDas trainierte Policy-Modell
CriticValue-Modell (PPO)
Reward-ModellBewertet generierte Responses
Reference-ModellEingefrorene Baseline für die KL-Strafe
RayPlant und platziert diese Modelle über GPUs
vLLM-EngineBeschleunigt die Rollout-/Generierungsphase

Häufige Trainings-Einstiegspunkte

OpenRLHF liefert CLI-Module pro Algorithmus; Starten Sie mit deepspeed oder ray.

BefehlZweck
openrlhf.cli.train_sftÜberwachtes Fine-Tuning
openrlhf.cli.train_rmReward-Modell-Training
openrlhf.cli.train_ppoPPO (Single-Controller)
openrlhf.cli.train_ppo_rayPPO/GRPO verteilt mit Ray + vLLM
openrlhf.cli.train_dpoDirect Preference Optimization

PPO/GRPO mit Ray (Skizze)

ray start --head --node-ip-address 0.0.0.0

python3 -m openrlhf.cli.train_ppo_ray \
  --pretrain Qwen/Qwen2.5-7B-Instruct \
  --reward_pretrain OpenRLHF/Llama-3-8b-rm-mixture \
  --advantage_estimator group_norm \
  --vllm_num_engines 2 --vllm_tensor_parallel_size 1 \
  --actor_num_gpus_per_node 4 \
  --colocate_actor_ref \
  --prompt_data your/prompts --input_key prompt \
  --save_path ./ckpt --use_wandb $WANDB_API_KEY
FlagKontrollen
--pretrainBasis-/Actor-Modell
--reward_pretrainReward-Modellpfad
--advantage_estimator group_normWählt GRPO-ähnliche Gruppennormalisierung
--vllm_num_enginesAnzahl der vLLM-Rollout-Engines
--actor_num_gpus_per_nodeGPU-Zuteilung für den Actor
--colocate_actor_refPlatzieren Sie Actor + Reference zusammen, um GPUs zu sparen

Algorithmen

AlgorithmusFlag/Module
PPOStandard in train_ppo*
GRPO--advantage_estimator group_norm
REINFORCE++--advantage_estimator reinforce Familie
RLOO--advantage_estimator rloo
DPO / KTODedizierte train_dpo / train_kto Module

Skalierung & Leistung

TechnikFlag/Notiz
ZeRO-Stufe--zero_stage 3 für große Modelle
Offload--adam_offload zum Auslagern des Optimizer-Status auf CPU
Flash Attention--flash_attn
Colocation--colocate_actor_ref, --colocate_critic_reward
Dynamisches SamplingIn das System integriert, um Sampling-Effizienz zu verbessern

OpenRLHF vs verl vs ART

AspektOpenRLHFverlART
FoundationRay + DeepSpeed + vLLMHybridFlow + FSDP/MegatronClient/Server + Unsloth
StärkeProduction RLHF, breite AlgosDurchsatz + FlexibilitätAgents in Ihrem eigenen Code
MultimodalVLM RLHF (OpenRLHF-M)UnterstütztText-fokussiert
Beste EinsatzgebieteSkalierbare RLHF-PipelinesResearch-DurchsatzSingle-Agent On-the-Job RL

Ressourcen