本文へ移動
cccskills
無料GitHub で公開

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.

インストール方法を見る

含まれるファイル(5)

  • 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

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

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Especialista em construir experiências 3D para a web - Three.js, React Three Fiber, Spline, WebGL e cenas 3D interativas. Cobre configuradores de produtos, portfólios 3D, websites imersivos e adição de profundidade às experiências web. Use quando: website 3D, three.js, WebGL, react three fiber, experiência 3D.

日本語の概要は準備中です。原文の説明を表示しています。

artubss/SKILLS-CLAUDE-CODE112026年5月17日 更新

Quando o usuário quer planejar, projetar ou implementar um teste A/B ou experimento. Também use quando o usuário menciona "teste A/B", "split test", "experimento", "testar essa mudança", "copy variante", "teste multivariado" ou "hipótese". Para implementação de rastreamento, veja analytics-tracking.

日本語の概要は準備中です。原文の説明を表示しています。

artubss/SKILLS-CLAUDE-CODE112026年5月17日 更新

Auditar e melhorar a acessibilidade web seguindo as diretrizes WCAG 2.1. Use quando solicitado para "melhorar acessibilidade", "auditoria a11y", "conformidade WCAG", "suporte a leitor de tela", "navegação por teclado" ou "tornar acessível".

日本語の概要は準備中です。原文の説明を表示しています。

artubss/SKILLS-CLAUDE-CODE112026年5月17日 更新

Testes e benchmarking de agentes LLM incluindo testes comportamentais, avaliação de capacidades, métricas de confiabilidade e monitoramento em produção—onde até os melhores agentes alcançam menos de 50% em benchmarks do mundo real. Use quando: testes de agentes, avaliação de agentes, benchmark de agentes, confiabilidade de agentes, teste de agentes.

日本語の概要は準備中です。原文の説明を表示しています。

artubss/SKILLS-CLAUDE-CODE112026年5月17日 更新

Criar, gerenciar e orquestrar agentes de IA usando o CLI AI Maestro. Use quando o usuário pedir para "criar agente", "listar agentes", "deletar agente", "hibernar agente", "despertar agente", "instalar plugin", "mostrar agente", "reiniciar agente" ou qualquer tarefa de gerenciamento do ciclo de vida do agente.

日本語の概要は準備中です。原文の説明を表示しています。

artubss/SKILLS-CLAUDE-CODE112026年5月17日 更新

Gerencie múltiplos agentes CLI locais via sessões tmux (iniciar/parar/monitorar/atribuir) com agendamento compatível com cron.

日本語の概要は準備中です。原文の説明を表示しています。

artubss/SKILLS-CLAUDE-CODE112026年5月17日 更新

artubss のスキルをすべて見る

このスキルの問題を報告する