Pular para o conteúdo principal

Documentation Index

Fetch the complete documentation index at: https://docs.monostate.ai/llms.txt

Use this file to discover all available pages before exploring further.

Treinamento PPO

Treine modelos de linguagem usando Proximal Policy Optimization (PPO) para aprendizado por reforço com feedback humano (RLHF).

Visão Geral

O treinamento PPO é um processo de 2 etapas:
  1. Treinar um Modelo de Recompensa - Treine um modelo para pontuar respostas (veja Reward Modeling)
  2. Executar Treinamento PPO - Use o modelo de recompensa para guiar a otimização da política

Início Rápido

aitraining llm --train \
  --model google/gemma-3-270m \
  --data-path ./prompts.jsonl \
  --project-name ppo-model \
  --trainer ppo \
  --rl-reward-model-path ./reward-model

Python API

from autotrain.trainers.clm.params import LLMTrainingParams
from autotrain.project import AutoTrainProject

params = LLMTrainingParams(
    model="google/gemma-3-270m",
    data_path="./prompts.jsonl",
    project_name="ppo-model",

    trainer="ppo",
    rl_reward_model_path="./reward-model",

    # PPO hyperparameters
    rl_gamma=0.99,
    rl_gae_lambda=0.95,
    rl_kl_coef=0.1,
    rl_clip_range=0.2,
    rl_num_ppo_epochs=4,

    epochs=1,
    batch_size=4,
    lr=1e-5,
)

project = AutoTrainProject(params=params, backend="local", process=True)
project.create()

Requisitos

O treinamento PPO requer --rl-reward-model-path (caminho para um modelo de recompensa treinado) ou --model-ref (modelo de referência para divergência KL). Pelo menos um deve ser especificado.

Parâmetros

Parâmetros Principais do PPO

ParâmetroFlag CLIPadrãoDescrição
rl_reward_model_path--rl-reward-model-pathNoneCaminho para modelo de recompensa (obrigatório)
rl_gamma--rl-gamma0.99Fator de desconto (0.9-0.99)
rl_gae_lambda--rl-gae-lambda0.95Lambda GAE para estimativa de vantagem (0.9-0.99)
rl_kl_coef--rl-kl-coef0.1Coeficiente de divergência KL (0.01-0.5)
rl_value_loss_coef--rl-value-loss-coef1.0Coeficiente de perda de valor (0.5-2.0)
rl_clip_range--rl-clip-range0.2Faixa de clipping do PPO (0.1-0.3)
rl_value_clip_range--rl-value-clip-range0.2Faixa de clipping da função de valor

Parâmetros de Treinamento

ParâmetroFlag CLIPadrãoDescrição
rl_num_ppo_epochs--rl-num-ppo-epochs4Épocas PPO por batch
rl_chunk_size--rl-chunk-size128Tamanho do chunk de treinamento
rl_mini_batch_size--rl-mini-batch-size8Tamanho do mini-batch
rl_optimize_device_cache--rl-optimize-device-cacheTrueOtimização de memória

Parâmetros de Geração

ParâmetroFlag CLIPadrãoDescrição
rl_max_new_tokens--rl-max-new-tokens128Máximo de tokens a gerar
rl_top_k--rl-top-k50Amostragem top-k
rl_top_p--rl-top-p1.0Amostragem top-p (núcleo)
rl_temperature--rl-temperature1.0Temperatura de geração

Parâmetros Avançados

ParâmetroFlag CLIPadrãoDescrição
rl_reward_fn--rl-reward-fnNoneFunção de recompensa: default, length_penalty, correctness, custom
rl_multi_objective--rl-multi-objectiveFalseHabilitar recompensas multi-objetivo
rl_reward_weights--rl-reward-weightsNonePesos JSON para multi-objetivo
rl_env_type--rl-env-typeNoneTipo de ambiente RL
rl_env_config--rl-env-configNoneConfiguração JSON do ambiente

Formato dos Dados

O treinamento PPO usa apenas prompts (o modelo gera respostas):
{"text": "What is machine learning?"}
{"text": "Explain quantum computing."}
{"text": "Write a haiku about coding."}

Tipos de Ambiente RL

Três tipos de ambiente estão disponíveis:
AmbienteDescrição
text_generationGeração de texto padrão com pontuação de recompensa
multi_objectiveMúltiplos componentes de recompensa combinados
preference_comparisonComparar respostas geradas

Recompensas Multi-Objetivo

Habilitar múltiplos sinais de recompensa:
params = LLMTrainingParams(
    ...
    trainer="ppo",
    rl_multi_objective=True,
    rl_env_type="multi_objective",
    rl_reward_weights='{"correctness": 1.0, "formatting": 0.1}',
)

Exemplo: Pipeline RLHF Completo

Etapa 1: Treinar Modelo de Recompensa

aitraining llm --train \
  --model google/gemma-3-270m \
  --data-path ./preferences.jsonl \
  --project-name reward-model \
  --trainer reward \
  --prompt-text-column prompt \
  --text-column chosen \
  --rejected-text-column rejected

Etapa 2: Executar Treinamento PPO

aitraining llm --train \
  --model google/gemma-3-270m \
  --data-path ./prompts.jsonl \
  --project-name ppo-model \
  --trainer ppo \
  --rl-reward-model-path ./reward-model \
  --rl-kl-coef 0.1 \
  --rl-clip-range 0.2

Melhores Práticas

  1. Comece com um bom modelo base - Faça fine-tuning com SFT antes do PPO
  2. Use um modelo de recompensa bem treinado - A qualidade das recompensas determina o sucesso do PPO
  3. Monitore a divergência KL - Muito alta significa que o modelo está divergindo demais do original
  4. Comece com hiperparâmetros padrão - Ajuste com base na dinâmica do treinamento
  5. Use taxas de aprendizado pequenas - PPO é sensível à taxa de aprendizado (1e-5 a 5e-6)

Próximos Passos

Reward Modeling

Treinar modelos de recompensa

DPO Training

Alternativa mais simples ao PPO

Treinamento GRPO

RL com ambientes personalizados

Módulo RL

Blocos de construção RL