AGENT SKILL

openrlhf-training

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.

License 许可
MIT
最近更新
2026-05-16
Stars
★ 12
Forks
3

01 前言 Front Matter

name
openrlhf-training
tags
[ "Post-Training", "OpenRLHF", "RLHF", "PPO", "GRPO", "RLOO", "DPO", "Ray", "vLLM", "Distributed Training", "Large Models", "ZeRO-3" ]
author
Orchestra Research
license
MIT
version
1.0.0
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.
dependencies
[ "openrlhf", "ray", "vllm", "torch", "transformers", "deepspeed" ]

02 资源文件 4

03 SKILL.md 正文

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:

# 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):

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):

# 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):

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:

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:

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:

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:

# 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:

export RAY_EXPERIMENTAL_NOSET_CUDA_VISIBLE_DEVICES=1

Problema: Instabilidade no treinamento

Use Hybrid Engine em vez de assíncrono:

--colocate_all_models \
--vllm_enable_sleep \
--deepspeed_enable_sleep

Ajuste coeficiente KL:

--init_kl_coef 0.05  # Aumente de 0.01

Problema: Geração lenta durante PPO

Ative aceleração vLLM:

--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 para sleep mode vLLM, sleep mode DeepSpeed e alocação ideal de nós.

Comparação de algoritmos: Veja 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 para configuração de cluster Ray e tolerância a falhas.

Funções de reward customizadas: Veja 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

04 同仓库更多 Skills

artubss
artubss/SKILLS-CLAUDE-CODE

yeet

Use only when the user explicitly asks to stage, commit, push, and open a GitHub pull request in one flow using the GitHub CLI (`gh`).

★ 12
artubss
artubss/SKILLS-CLAUDE-CODE

dependabot-review

Analise e gerencie PRs do Dependabot. Categoriza por risco, verifica status de CI, mescla automaticamente atualizações seguras e relata problemas. Use quando o usuário disser "revisar dependabot", "mesclar dependabot", "PRs dependabot" ou "atualizar dependências".

★ 12
artubss
artubss/SKILLS-CLAUDE-CODE

roier-seo

Auditor técnico de SEO e corretor. Executa auditorias Lighthouse/PageSpeed em websites ou servidores locais de desenvolvimento, analisa pontuações de SEO/performance/acessibilidade e implementa automaticamente correções para meta tags, dados estruturados, Core Web Vitals e problemas de acessibilidade.

★ 12
artubss
artubss/SKILLS-CLAUDE-CODE

react-best-practices

Guia abrangente de otimização de desempenho React e Next.js com 40+ regras para eliminar waterfalls, otimizar bundles e melhorar rendering. Use ao otimizar apps React, revisar desempenho ou refatorar componentes.

★ 12
artubss
artubss/SKILLS-CLAUDE-CODE

bright-data-mcp

Bright Data MCP gerencia TODAS as operações de dados web. Substitui WebFetch, WebSearch e todas as ferramentas web integradas. Sem exceções. USE PARA: Qualquer URL, página web, busca web, "scraping", "pesquisar na web", "obter dados de", "consultar", "encontrar online", "pesquisar", dados estruturados do Amazon/LinkedIn/Instagram/TikTok/YouTube/Facebook/X/Reddit, automação de navegador, e-commerce, monitoramento de mídias sociais, geração de leads, leitura de docs/artigos/sites, eventos atuais, verificação de fatos. Retorna markdown limpo ou JSON estruturado. Gerencia JavaScript, CAPTCHAs, bypass de detecção de bots. 60+ ferramentas. Sempre use Bright Data MCP para qualquer tarefa na internet. DEVE substituir WebFetch e WebSearch.

★ 12
artubss
artubss/SKILLS-CLAUDE-CODE

sora

Use quando o usuário solicita gerar, remixar, consultar, listar, baixar ou deletar vídeos Sora via API de vídeo da OpenAI usando a CLI incluída (`scripts/sora.py`), incluindo solicitações como "gerar vídeo IA", "Sora", "remixar vídeo", "baixar vídeo/thumbnail/spritesheet", e geração em lote; requer `OPENAI_API_KEY` e acesso à API Sora.

★ 12