Pular para o conteúdo principal

Módulo de Treinamento RL

O AITraining inclui um módulo abrangente de aprendizado por reforço para cenários avançados de treinamento de LLM.
Os comandos CLI (--trainer ppo, --trainer dpo, --trainer reward) usam implementações da biblioteca TRL para estabilidade. O módulo autotrain.trainers.rl documentado aqui fornece blocos de construção de nível inferior para pipelines de treinamento RL personalizados.

Visão Geral

O módulo RL fornece:
  • PPO Trainer - Proximal Policy Optimization com penalidade KL e GAE
  • DPO Trainer - Otimização Direta de Preferências a partir de dados de preferência
  • Modelos de Recompensa - Modelos de recompensa padrão, pareados e multi-objetivo
  • Ambientes RL - Ambientes de geração de texto, matemática, código e comparação de preferências
  • Pipeline Assíncrono - Treinamento forward-backward com acúmulo de gradiente

Treinamento PPO

Configuração

Arquitetura PPO

A implementação PPO usa um wrapper PPOModel que adiciona um cabeçalho de valor a qualquer LM causal:

Controlador KL Adaptativo

O AdaptiveKLController ajusta automaticamente o coeficiente de penalidade KL para manter a divergência KL próxima ao alvo:

Loop de Treinamento

Recursos Principais

Treinamento DPO

Treine diretamente a partir de dados de preferência sem um modelo de recompensa separado.

Configuração

Dataset de Preferência

PreferenceDataset deve ser importado diretamente de autotrain.trainers.rl.dpo pois não é exportado no __init__.py principal.

DPO Sem Referência

Para treinamento sem modelo de referência:

Modelos de Recompensa

Modelo de Recompensa Padrão

Treinamento em Preferências

Modelo de Recompensa Pareado

Para comparação direta de preferências usando modelo Bradley-Terry:

Modelo de Recompensa Multi-Objetivo

Combine múltiplos sinais de recompensa:

Ambientes RL

Dataclasses de Ambiente

Ambiente de Geração de Texto

Ambiente Multi-Objetivo

Ambiente de Comparação de Preferências

Para coleta de dados RLHF e DPO:

Ambientes Integrados

Pipeline Forward-Backward

Treinamento assíncrono com acúmulo de gradiente:

Funções de Perda Integradas

O pipeline suporta várias funções de perda integradas:

Funções de Perda Personalizadas

Cliente de Alto Nível

AsyncTrainingClient deve ser importado diretamente de autotrain.trainers.rl.forward_backward pois não é exportado no __init__.py principal.

Checkpointing

Amostragem

Gere amostras durante o treinamento:

Melhores Práticas

Treinamento PPO

  1. Comece com coeficiente KL pequeno - Deixe o controlador adaptativo ajustar
  2. Use acúmulo de gradiente - Tamanhos de batch efetivos maiores são mais estáveis
  3. Monitore divergência KL - Deve permanecer próximo ao alvo
  4. Aqueça a função de valor - Treine o crítico antes do PPO completo

Treinamento DPO

  1. Dados de preferência de alta qualidade - Qualidade importa mais que quantidade
  2. Taxa de aprendizado baixa - 1e-6 a 1e-5 recomendado
  3. Suavização de rótulo - 0.1 pode melhorar robustez
  4. Avalie frequentemente - Acompanhe precisão e margem de recompensa

Modelagem de Recompensa

  1. Dados balanceados - Exemplos escolhido/rejeitado iguais
  2. Prompts diversos - Cubra casos de uso esperados
  3. LoRA para eficiência - Fine-tuning eficiente de modelos grandes
  4. Multi-objetivo - Separe sinais de segurança e utilidade

Integração CLI

Para uso em produção, o CLI fornece interfaces mais simples usando implementações TRL:

Próximos Passos

PPO Training

Guia CLI para PPO

DPO Training

Guia CLI para DPO

Reward Modeling

Treinar modelos de recompensa

ORPO Training

Otimização de Preferências por Razão de Chances