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 wrapperPPOModel que adiciona um cabeçalho de valor a qualquer LM causal:
Controlador KL Adaptativo
OAdaptiveKLController 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
- Comece com coeficiente KL pequeno - Deixe o controlador adaptativo ajustar
- Use acúmulo de gradiente - Tamanhos de batch efetivos maiores são mais estáveis
- Monitore divergência KL - Deve permanecer próximo ao alvo
- Aqueça a função de valor - Treine o crítico antes do PPO completo
Treinamento DPO
- Dados de preferência de alta qualidade - Qualidade importa mais que quantidade
- Taxa de aprendizado baixa - 1e-6 a 1e-5 recomendado
- Suavização de rótulo - 0.1 pode melhorar robustez
- Avalie frequentemente - Acompanhe precisão e margem de recompensa
Modelagem de Recompensa
- Dados balanceados - Exemplos escolhido/rejeitado iguais
- Prompts diversos - Cubra casos de uso esperados
- LoRA para eficiência - Fine-tuning eficiente de modelos grandes
- 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