К основному содержанию
скилл CX Codex

openrlhf-training — скилл для Claude Code: RLHF-обучение на Ray и vLLM

Скилл для запуска PPO, GRPO, RLOO и DPO на моделях от 7B до 70B+. Пригодится, когда обучение идёт на нескольких GPU или узлах.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add Orchestra-Research/AI-Research-SKILLs --skill openrlhf-training -a claude-code
npx skills add Orchestra-Research/AI-Research-SKILLs --skill openrlhf -a claude-code
Открыть на GitHub

Что делает openrlhf-training

Скилл даёт агенту готовые команды для OpenRLHF — фреймворка обучения с подкреплением на Ray и vLLM. Внутри три сценария: полный конвейер SFT → reward model → PPO, обучение GRPO без критики и DPO без reward-модели. Для каждого есть строка запуска с флагами.

Установка идёт через Docker-контейнер nvcr.io/nvidia/pytorch:25.02-py3, затем pip install openrlhf[vllm]. Перед этим скилл советует снести конфликтующие пакеты: xgboost, transformer_engine, flash_attn, pynvml. Кластер поднимается командой ray start --head, задания отправляются через ray job submit. Если модель не влезает в память, уберите --colocate_all_models и разведите роли по разным GPU.

Есть отдельный разбор типовых сбоев: DeepSpeed с индексом GPU вне диапазона лечится переменной RAY_EXPERIMENTAL_NOSET_CUDA_VISIBLE_DEVICES=1, нестабильность обучения — переходом на Hybrid Engine с --vllm_enable_sleep и --deepspeed_enable_sleep. Для одноузлового обучения с простым API авторы советуют смотреть в сторону TRL.

Какие задачи решает

  • запустить PPO на модели 70B с распределением по нескольким узлам
  • обучить reward-модель на датасете предпочтений через DPO
  • перейти с PPO на GRPO и убрать модель критика
  • поднять Ray-кластер и отправить задание обучения через ray job submit
  • разобраться, почему DeepSpeed падает с индексом GPU вне диапазона

Примеры запросов агенту

  • покажи, как запустить PPO-обучение через openrlhf-training на 8 GPU
  • настрой GRPO без критики для Llama-3-8B по инструкции скилла
  • помоги разобрать OOM при обучении большой модели в OpenRLHF

Как установить openrlhf-training

1Через Skills CLI (Vercel)

npx skills add Orchestra-Research/AI-Research-SKILLs --skill openrlhf-training -a claude-code
npx skills add Orchestra-Research/AI-Research-SKILLs --skill openrlhf -a claude-code

2Вручную: положить файлы

~/.claude/skills/openrlhf/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/openrlhf/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о openrlhf-training

Как установить openrlhf-training в Claude?

Выполните npx skills add Orchestra-Research/AI-Research-SKILLs --skill openrlhf-training -a claude-code. Альтернативная команда — npx skills add Orchestra-Research/AI-Research-SKILLs --skill openrlhf -a claude-code. Файл скилла окажется в ~/.claude/skills/openrlhf/SKILL.md.

Что делает openrlhf-training?

Даёт агенту команды для обучения моделей методами PPO, GRPO, RLOO и DPO на фреймворке OpenRLHF. Внутри — сценарии полного конвейера, разбор ошибок и выбор алгоритма.

Какие зависимости нужны для работы?

OpenRLHF, Ray, vLLM, torch, transformers и deepspeed. Установка идёт в Docker-контейнере с PyTorch, где сначала удаляют конфликтующие пакеты.

Исходный текст

SKILL.md · MIT
---
name: openrlhf-training
description: High-performance RLHF framework with Ray+vLLM acceleration. Use for PPO, GRPO, RLOO, DPO training of large models (7B-70B+). Built on Ray, vLLM, ZeRO-3. 2× faster than DeepSpeedChat with distributed architecture and GPU resource sharing.
version: 1.0.0
author: Orchestra Research
license: MIT
tags: [Post-Training, OpenRLHF, RLHF, PPO, GRPO, RLOO, DPO, Ray, vLLM, Distributed Training, Large Models, ZeRO-3]
dependencies: [openrlhf, ray, vllm, torch, transformers, deepspeed]
---

# OpenRLHF - High-Performance RLHF Training

## Quick start

OpenRLHF is a Ray-based RLHF framework optimized for distributed training with vLLM inference acceleration.

**Installation**:
```bash
# Launch Docker container
docker run --runtime=nvidia -it --rm --shm-size="10g" --cap-add=SYS_ADMIN \
  -v $PWD:/openrlhf nvcr.io/nvidia/pytorch:25.02-py3 bash

# Uninstall conflicts
sudo pip uninstall xgboost transformer_engine flash_attn pynvml -y

# Install OpenRLHF with vLLM
pip install openrlhf[vllm]
```

**PPO Training** (Hybrid Engine):
```bash
ray start --head --node-ip-address 0.0.0.0 --num-gpus 8

ray job submit --address="http://127.0.0.1:8265" \
  --runtime-env-json='{"working_dir": "/openrlhf"}' \
  -- python3 -m openrlhf.cli.train_ppo_ray \
  --ref_num_nodes 1 --ref_num_gpus_per_node 8 \
  --reward_num_nodes 1 --reward_num_gpus_per_node 8 \
  --critic_num_nodes 1 --critic_num_gpus_per_node 8 \
  --actor_num_nodes 1 --actor_num_gpus_per_node 8 \
  --vllm_num_engines 4 --vllm_tensor_parallel_size 2 \
  --colocate_all_models \
  --vllm_gpu_memory_utilization 0.5 \
  --pretrain OpenRLHF/Llama-3-8b-sft-mixture \
  --reward_pretrain OpenRLHF/Llama-3-8b-rm-700k \
  --save_path ./output/llama3-8b-rlhf \
  --micro_train_batch_size 8 --train_batch_size 128 \
  --micro_rollout_batch_size 16 --rollout_batch_size 1024 \
  --max_epochs 1 --prompt_max_len 1024 --generate_max_len 1024 \
  --zero_stage 3 --bf16 \
  --actor_learning_rate 5e-7 --critic_learning_rate 9e-6 \
  --init_kl_coef 0.01 --normalize_reward \
  --gradient_checkpointing --packing_samples \
  --vllm_enable_sleep --deepspeed_enable_sleep
```

**GRPO Training** (Group Normalized Policy Optimization):
```bash
# Same command as PPO, but add:
--advantage_estimator group_norm
```

## Common workflows

### Workflow 1: Full RLHF pipeline (SFT → Reward Model → PPO)

**Step 1: Train reward model** (DPO):
```bash
deepspeed --module openrlhf.cli.train_rm \
  --save_path ./output/llama3-8b-rm \
  --save_steps -1 --logging_steps 1 \
  --eval_steps -1 --train_batch_size 256 \
  --micro_train_batch_size 1 --pretrain meta-llama/Meta-Llama-3-8B \
  --bf16 --max_epochs 1 --max_len 8192 \
  --zero_stage 3 --learning_rate 9e-6 \
  --dataset OpenRLHF/preference_dataset_mixture2_and_safe_pku \
  --apply_chat_template --chosen_key chosen \
  --rejected_key rejected --flash_attn --gradient_checkpointing
```

**Step 2: PPO training**:
```bash
ray start --head --node-ip-address 0.0.0.0 --num-gpus 8

ray job submit --address="http://127.0.0.1:8265" \
  -- python3 -m openrlhf.cli.train_ppo_ray \
  --ref_num_nodes 1 --ref_num_gpus_per_node 8 \
  --reward_num_nodes 1 --reward_num_gpus_per_node 8 \
  --critic_num_nodes 1 --critic_num_gpus_per_node 8 \
  --actor_num_nodes 1 --actor_num_gpus_per_node 8 \
  --vllm_num_engines 4 --vllm_tensor_parallel_size 2 \
  --colocate_all_models \
  --pretrain OpenRLHF/Llama-3-8b-sft-mixture \
  --reward_pretrain ./output/llama3-8b-rm \
  --save_path ./output/llama3-8b-ppo \
  --micro_train_batch_size 8 --train_batch_size 128 \
  --micro_rollout_batch_size 16 --rollout_batch_size 1024 \
  --max_epochs 1 --prompt_max_len 1024 --generate_max_len 1024 \
  --zero_stage 3 --bf16 \
  --actor_learning_rate 5e-7 --critic_learning_rate 9e-6 \
  --init_kl_coef 0.01 --normalize_reward \
  --vllm_enable_sleep --deepspeed_enable_sleep
```

### Workflow 2: GRPO training (no critic model needed)

Memory-efficient alternative to PPO:

```bash
ray job submit --address="http://127.0.0.1:8265" \
  -- python3 -m openrlhf.cli.train_ppo_ray \
  --advantage_estimator group_norm \
  --ref_num_nodes 1 --ref_num_gpus_per_node 8 \
  --reward_num_nodes 1 --reward_num_gpus_per_node 8 \
  --actor_num_nodes 1 --actor_num_gpus_per_node 8 \
  --vllm_num_engines 4 --vllm_tensor_parallel_size 2 \
  --colocate_all_models \
  --pretrain OpenRLHF/Llama-3-8b-sft-mixture \
  --reward_pretrain OpenRLHF/Llama-3-8b-rm-700k \
  --save_path ./output/llama3-8b-grpo \
  --micro_train_batch_size 8 --train_batch_size 128 \
  --micro_rollout_batch_size 16 --rollout_batch_size 1024 \
  --max_epochs 1 --bf16 \
  --actor_learning_rate 5e-7 \
  --init_kl_coef 0.01 --use_kl_loss --kl_estimator k3 \
  --normalize_reward --no_advantage_std_norm
```

**Key GRPO parameters**:
- `--advantage_estimator group_norm` - Enables GRPO
- `--use_kl_loss` - KL loss from GRPO paper
- `--kl_estimator k3` - Loss function (k2 ≈ k1)
- `--no_advantage_std_norm` - Disables std normalization

### Workflow 3: DPO training (preference optimization)

Simpler alternative without reward model:

```bash
deepspeed --module openrlhf.cli.train_dpo \
  --save_path ./output/llama3-8b-dpo \
  --save_steps -1 --logging_steps 1 \
  --eval_steps -1 --train_batch_size 256 \
  --micro_train_batch_size 2 --pretrain meta-llama/Meta-Llama-3-8B \
  --bf16 --max_epochs 1 --max_len 8192 \
  --zero_stage 3 --learning_rate 5e-7 --beta 0.1 \
  --dataset OpenRLHF/preference_dataset_mixture2_and_safe_pku \
  --apply_chat_template --chosen_key chosen \
  --rejected_key rejected --flash_attn --gradient_checkpointing
```

## When to use vs alternatives

**Use OpenRLHF when**:
- Training large models (7B-70B+) with RL
- Need vLLM inference acceleration
- Want distributed architecture with Ray
- Have multi-node GPU cluster
- Need PPO/GRPO/RLOO/DPO in one framework

**Algorithm selection**:
- **PPO**: Maximum control, best for complex rewards
- **GRPO**: Memory-efficient, no critic needed
- **RLOO**: Modified PPO with per-token KL
- **REINFORCE++**: More stable than GRPO, faster than PPO
- **DPO**: Simplest, no reward model needed

**Use alternatives instead**:
- **TRL**: Single-node training, simpler API
- **veRL**: ByteDance's framework for 671B models
- **DeepSpeedChat**: Integrated with DeepSpeed ecosystem

## Common issues

**Issue: GPU OOM with large models**

Disable model colocation:
```bash
# Remove --colocate_all_models flag
# Allocate separate GPUs for each model
--actor_num_gpus_per_node 8 \
--critic_num_gpus_per_node 8 \
--reward_num_gpus_per_node 8 \
--ref_num_gpus_per_node 8
```

**Issue: DeepSpeed GPU index out of range**

Set environment variable:
```bash
export RAY_EXPERIMENTAL_NOSET_CUDA_VISIBLE_DEVICES=1
```

**Issue: Training instability**

Use Hybrid Engine instead of async:
```bash
--colocate_all_models \
--vllm_enable_sleep \
--deepspeed_enable_sleep
```

Adjust KL coefficient:
```bash
--init_kl_coef 0.05  # Increase from 0.01
```

**Issue: Slow generation during PPO**

Enable vLLM acceleration:
```bash
--vllm_num_engines 4 \
--vllm_tensor_parallel_size 2 \
--vllm_gpu_memory_utilization 0.5
```

## Advanced topics

**Hybrid Engine GPU sharing**: See [references/hybrid-engine.md](references/hybrid-engine.md) for vLLM sleep mode, DeepSpeed sleep mode, and optimal node allocation.

**Algorithm comparison**: See [references/algorithm-comparison.md](references/algorithm-comparison.md) for PPO vs GRPO vs RLOO vs REINFORCE++ benchmarks and hyperparameters.

**Multi-node setup**: See [references/multi-node-training.md](references/multi-node-training.md) for Ray cluster configuration and fault tolerance.

**Custom reward functions**: See [references/custom-rewards.md](references/custom-rewards.md) for reinforced fine-tuning and agent RLHF.

## Hardware requirements

- **GPU**: NVIDIA A100/H100 recommended
- **VRAM**:
  - 7B model: 8× A100 40GB (Hybrid Engine)
  - 70B model: 48× A100 80GB (vLLM:Actor:Critic = 1:1:1)
- **Multi-node**: Ray cluster with InfiniBand recommended
- **Docker**: NVIDIA PyTorch container 25.02+

**Performance**:
- 2× faster than DeepSpeedChat
- vLLM inference acceleration
- Hybrid Engine minimizes GPU idle time

## Resources

- Docs: https://github.com/OpenRLHF/OpenRLHF
- Paper: https://arxiv.org/abs/2405.11143
- Examples: https://github.com/OpenRLHF/OpenRLHF/tree/main/examples
- Discord: Community support



© Orchestra Research · MIT · Orchestra-Research/AI-Research-SKILLs

Похожие скиллы

Всё по теме «ИИ и ML» →
grpo-rlvr-training Seth Hobson Скилл помогает настроить обучение моделей рассуждениям через GRPO и RLVR с проверяемыми наградами. Пригодится для задач с тестами, схемами и точными ответами. CX Codex 2 600установок trl-training huggingface Помогает писать и отлаживать постобучение языковых моделей через TRL: SFT, DPO, GRPO, KTO и обучение модели награды. CX Codex +1 909установок stable-baselines3 K-Dense-AI Скилл для обучения агентов с подкреплением на Stable Baselines3. Поддерживает PPO, SAC, DQN и другие алгоритмы, работает с пользовательскими средами Gymnasium и векторизованными окружениями. CX Codex +1 1 900установок spark-training-gotchas Seth Hobson Диагностирует 10 частых сбоев при обучении моделей на NVIDIA DGX Spark. Помогает найти утечки памяти, троттлинг и ошибки CUDA перед долгими запусками. CX Codex 2 500установок nemo-automodel-distributed-training NVIDIA Подсказывает, какую стратегию распределённого обучения выбрать в NeMo AutoModel и какие поля YAML выставить. Пригодится, когда модель не влезает в одну GPU. CX Codex +1 2 000установок nemo-mbridge-mlm-bridge-training NVIDIA Скилл помогает запускать обучение Megatron-LM и Megatron Bridge, сравнивать кривые потерь и разбирать расхождения после изменений. CX Codex +1 1 800установок

Из того же набора66

awq-quantization Скилл для 4-битной квантизации весов LLM по методу AWQ: ускоряет инференс и снижает расход памяти GPU. CX Codex +1 958установок clip Помогает применять CLIP для классификации изображений, поиска по смыслу и сопоставления картинки с текстом без дообучения. CX Codex +1 957установок pytorch-fsdp2 Учит агента добавлять PyTorch FSDP2 в цикл обучения: инициализация, шардирование, mixed precision и распределённые чекпоинты. CX Codex +1 958установок nanogpt Скилл помогает разбирать и запускать учебную реализацию GPT на PyTorch. Он пригодится для экспериментов с трансформерами и обучения на своих текстах. CX Codex +1 956установок distributed-llm-pretraining-torchtitan Помогает настраивать предобучение LLM через torchtitan с 4D-параллелизмом (FSDP2, TP, PP, CP). Пригодится при запуске Llama 3.1 или DeepSeek V3 на кластерах от 8 до 512+ GPU. CX Codex +1 954установок transformer-lens-interpretability Скилл помогает исследовать внутренние механизмы трансформеров через TransformerLens: кэшировать активации, изучать внимание и проводить activation patching. CX Codex +1 954установок modal-serverless-gpu Скилл, который помогает запускать ML-задачи на серверных GPU Modal: обучение, инференс, батчи. Пригодится, когда не хочется поднимать кластер самому. CX Codex +1 954установок sglang Скилл учит агента разворачивать SGLang, настраивать кэширование префиксов RadixAttention и запускать генерацию по JSON-схемам и регулярным выражениям. CX Codex +1 954установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой