Skip to content
Back to skills

Post Training Openrlhf

ASecurity

Framework RLHF de alta performance com aceleração Ray+vLLM. Use para treinamento PPO, GRPO, RLOO, DPO de modelos grandes (7B-70B+). Construído em Ray, vLLM, ZeRO-3. 2× mais rápido que DeepSpeedChat com arquitetura distribuída e compartilhamento de recursos GPU.

  • 11 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 8, 2026
devopspythongobashnodedockergitapiperformance

Works with

  • cli
  • api

Security analysis

A96/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro scans all 5 files and shows the line behind each finding

Scanned September 8, 2026

npx -y skills add artubss/SKILLS-CLAUDE-CODE --skill post-training-openrlhf --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Post Training Openrlhf?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Post Training Openrlhf
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/artubss-post-training-openrlhf/badge)](https://www.skillsdirectory.com/skills/artubss-post-training-openrlhf)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: openrlhf-training
description: Framework RLHF de alta performance com aceleração Ray+vLLM. Use para treinamento PPO, GRPO, RLOO, DPO de modelos grandes (7B-70B+). Construído em Ray, vLLM, ZeRO-3. 2× mais rápido que DeepSpeedChat com arquitetura distribuída e compartilhamento de recursos GPU.
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 - Treinamento RLHF de Alta Performance

## Início rápido

OpenRLHF é um framework RLHF baseado em Ray otimizado para treinamento distribuído com aceleração de inferência vLLM.

**Instalação**:
```bash
# Inicie contêiner Docker
docker run --runtime=nvidia -it --rm --shm-size="10g" --cap-add=SYS_ADMIN \
  -v $PWD:/openrlhf nvcr.io/nvidia/pytorch:25.02-py3 bash

# Desinstale conflitos
sudo pip uninstall xgboost transformer_engine flash_attn pynvml -y

# Instale OpenRLHF com vLLM
pip install openrlhf[vllm]
```

**Treinamento PPO** (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
```

**Treinamento GRPO** (Group Normalized Policy Optimization):
```bash
# Mesmo comando que PPO, mas adicione:
--advantage_estimator group_norm
```

## Fluxos de trabalho comuns

### Fluxo de trabalho 1: Pipeline RLHF completo (SFT → Reward Model → PPO)

**Etapa 1: Treine modelo de reward** (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
```

**Etapa 2: Treinamento PPO**:
```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
```

### Fluxo de trabalho 2: Treinamento GRPO (sem modelo critic necessário)

Alternativa eficiente em memória ao 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
```

**Parâmetros-chave do GRPO**:
- `--advantage_estimator group_norm` - Ativa GRPO
- `--use_kl_loss` - Perda KL do paper GRPO
- `--kl_estimator k3` - Função de perda (k2 ≈ k1)
- `--no_advantage_std_norm` - Desabilita normalização de desvio padrão

### Fluxo de trabalho 3: Treinamento DPO (otimização de preferência)

Alternativa mais simples sem modelo de reward:

```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
```

## Quando usar vs alternativas

**Use OpenRLHF quando**:
- Treinar modelos grandes (7B-70B+) com RL
- Precisa de aceleração de inferência vLLM
- Quer arquitetura distribuída com Ray
- Tem cluster GPU multi-nó
- Precisa de PPO/GRPO/RLOO/DPO em um único framework

**Seleção de algoritmo**:
- **PPO**: Controle máximo, melhor para rewards complexos
- **GRPO**: Eficiente em memória, sem critic necessário
- **RLOO**: PPO modificado com KL por token
- **REINFORCE++**: Mais estável que GRPO, mais rápido que PPO
- **DPO**: Mais simples, sem modelo de reward necessário

**Use alternativas em vez disso**:
- **TRL**: Treinamento em nó único, API mais simples
- **veRL**: Framework da ByteDance para modelos 671B
- **DeepSpeedChat**: Integrado ao ecossistema DeepSpeed

## Problemas comuns

**Problema: OOM em GPU com modelos grandes**

Desabilite colocalização de modelos:
```bash
# Remova a flag --colocate_all_models
# Aloque GPUs separadas para cada modelo
--actor_num_gpus_per_node 8 \
--critic_num_gpus_per_node 8 \
--reward_num_gpus_per_node 8 \
--ref_num_gpus_per_node 8
```

**Problema: Índice GPU fora do intervalo no DeepSpeed**

Configure variável de ambiente:
```bash
export RAY_EXPERIMENTAL_NOSET_CUDA_VISIBLE_DEVICES=1
```

**Problema: Instabilidade no treinamento**

Use Hybrid Engine em vez de assíncrono:
```bash
--colocate_all_models \
--vllm_enable_sleep \
--deepspeed_enable_sleep
```

Ajuste coeficiente KL:
```bash
--init_kl_coef 0.05  # Aumente de 0.01
```

**Problema: Geração lenta durante PPO**

Ative aceleração vLLM:
```bash
--vllm_num_engines 4 \
--vllm_tensor_parallel_size 2 \
--vllm_gpu_memory_utilization 0.5
```

## Tópicos avançados

**Compartilhamento de GPU do Hybrid Engine**: Veja [references/hybrid-engine.md](references/hybrid-engine.md) para sleep mode vLLM, sleep mode DeepSpeed e alocação ideal de nós.

**Comparação de algoritmos**: Veja [references/algorithm-comparison.md](references/algorithm-comparison.md) para benchmarks e hiperparâmetros de PPO vs GRPO vs RLOO vs REINFORCE++.

**Configuração multi-nó**: Veja [references/multi-node-training.md](references/multi-node-training.md) para configuração de cluster Ray e tolerância a falhas.

**Funções de reward customizadas**: Veja [references/custom-rewards.md](references/custom-rewards.md) para ajuste fino reforçado e RLHF de agentes.

## Requisitos de hardware

- **GPU**: NVIDIA A100/H100 recomendado
- **VRAM**:
  - Modelo 7B: 8× A100 40GB (Hybrid Engine)
  - Modelo 70B: 48× A100 80GB (vLLM:Actor:Critic = 1:1:1)
- **Multi-nó**: Cluster Ray com InfiniBand recomendado
- **Docker**: Container PyTorch NVIDIA 25.02+

**Performance**:
- 2× mais rápido que DeepSpeedChat
- Aceleração de inferência vLLM
- Hybrid Engine minimiza tempo ocioso de GPU

## Recursos

- Docs: https://github.com/OpenRLHF/OpenRLHF
- Paper: https://arxiv.org/abs/2405.11143
- Examples: https://github.com/OpenRLHF/OpenRLHF/tree/main/examples
- Discord: Suporte da comunidade

Files in this skill

  • SKILL.md8.6 KB
  • references/algorithm-comparison.md9.6 KB
  • references/custom-rewards.md15.5 KB
  • references/hybrid-engine.md7.1 KB
  • references/multi-node-training.md10.8 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…