Treinamento LLM
O comandoaitraining llm treina modelos de linguagem grandes com suporte para múltiplos trainers e técnicas.
Início Rápido
Trainers Disponíveis
| Trainer | Descrição |
|---|---|
default / sft / generic | Fine-tuning supervisionado |
dpo | Otimização Direta de Preferências |
orpo | Otimização de Razão de Chances de Preferências |
ppo | Otimização de Política Proximal |
grpo | Otimização de Política Relativa de Grupo (ambientes personalizados) |
reward | Treinamento de modelo de recompensa |
distillation | Distilação de conhecimento |
generic é um alias para default. Todos os três (default, sft, generic) produzem o mesmo comportamento.Grupos de Parâmetros
Os parâmetros são organizados em grupos lógicos:Parâmetros Básicos
| Parameter | Description | Default |
|---|---|---|
--model | Base model to fine-tune | google/gemma-3-270m |
--data-path | Path to training data | data |
--project-name | Output directory name | project-name |
--train-split | Training data split | train |
--valid-split | Validation data split | None |
Sempre especifique esses parâmetros: Embora
--model, --data-path e --project-name tenham padrões, você deve sempre defini-los explicitamente para seu caso de uso. O parâmetro --project-name define a pasta de saída - use um caminho como --project-name ./models/my-experiment para controlar onde o modelo treinado é salvo.Configuração de Treinamento
| Parameter | Description | Default |
|---|---|---|
--trainer | Training method | default |
--epochs | Number of training epochs | 1 |
--batch-size | Training batch size | 2 |
--lr | Learning rate | 3e-5 |
--mixed-precision | fp16/bf16/None | None |
--gradient-accumulation | Accumulation steps | 4 |
--warmup-ratio | Warmup ratio | 0.1 |
--optimizer | Optimizer | adamw_torch |
--scheduler | LR scheduler | linear |
--weight-decay | Weight decay | 0.0 |
--max-grad-norm | Max gradient norm | 1.0 |
--seed | Random seed | 42 |
Checkpointing e Avaliação
| Parameter | Description | Default |
|---|---|---|
--eval-strategy | When to evaluate (epoch, steps, no) | epoch |
--save-strategy | When to save (epoch, steps, no) | epoch |
--save-steps | Save every N steps (if save-strategy=steps) | 500 |
--save-total-limit | Max checkpoints to keep | 1 |
--logging-steps | Log every N steps (-1 for auto) | -1 |
--resume-from-checkpoint | Resume from checkpoint path, or auto to detect latest | None |
Performance e Memória
| Parameter | Description | Default |
|---|---|---|
--auto-find-batch-size | Automatically find optimal batch size | False |
--disable-gradient-checkpointing | Disable memory optimization | False |
--unsloth | Use Unsloth for faster training (SFT only, llama/mistral/gemma/qwen2) | False |
--use-sharegpt-mapping | Use Unsloth’s ShareGPT mapping | False |
--use-flash-attention-2 | Use Flash Attention 2 for faster training | False |
--attn-implementation | Attention implementation (eager, sdpa, flash_attention_2) | None |
Requisitos do Unsloth: Unsloth funciona apenas com trainers
sft/default e arquiteturas de modelo específicas (llama, mistral, gemma, qwen2). Veja Integração Unsloth para detalhes.Backend e Distribuição
| Parameter | Description | Default |
|---|---|---|
--backend | Where to run (local, spaces) | local |
--distributed-backend | Distribution backend (ddp, deepspeed) | None |
--ddp-timeout | DDP/NCCL timeout in seconds | 7200 |
Comportamento Multi-GPU: Com múltiplas GPUs e
--distributed-backend não definido, DDP é usado automaticamente. Defina --distributed-backend deepspeed para otimização DeepSpeed Zero-3. O treinamento é iniciado via Accelerate.Parâmetros PEFT/LoRA
| Parameter | Description | Default |
|---|---|---|
--peft | Enable LoRA training | False |
--lora-r | LoRA rank | 16 |
--lora-alpha | LoRA alpha | 32 |
--lora-dropout | LoRA dropout | 0.05 |
--target-modules | Modules to target | all-linear |
--quantization | int4/int8 quantization | None |
--merge-adapter | Merge LoRA after training | True |
Processamento de Dados
| Parameter | Description | Default |
|---|---|---|
--text-column | Text column name | text |
--block-size | Max sequence length | -1 (model default) |
--model-max-length | Maximum model input length | Auto-detect from model |
--padding | Padding side (left or right) | right |
--add-eos-token | Append EOS token | True |
--chat-template | Chat template to use | Auto by trainer |
--packing | Enable sequence packing (requires flash attention) | None |
--auto-convert-dataset | Auto-detect and convert dataset format | False |
--max-samples | Limit dataset size for testing | None |
--save-processed-data | Save processed data: auto, local, hub, both, none | auto |
Seleção Automática de Template de Chat: Trainers SFT/DPO/ORPO/Reward usam
tokenizer (template integrado do modelo) por padrão. Use --chat-template none para treinamento de texto simples.Salvamento de Dados Processados: Por padrão (
auto), dados processados são salvos localmente em {project}/data_processed/. Se o dataset fonte era do Hub, também é enviado como dataset privado. Colunas originais são renomeadas para _original_* para prevenir conflitos.Exemplos de Treinamento
SFT with LoRA
Treinamento DPO
Para DPO, você deve especificar os nomes das colunas para prompt, resposta escolhida e resposta rejeitada:Treinamento ORPO
ORPO combina SFT e otimização de preferências:Treinamento GRPO
Treine com Group Relative Policy Optimization usando seu próprio ambiente de recompensa:GRPO gera múltiplas completações por prompt, pontua-as através do seu ambiente (0-1), e otimiza a política. Veja Treinamento GRPO para detalhes da interface do ambiente.
Distilação de Conhecimento
Treine um modelo menor para imitar um maior:Padrões de distilação:
--distill-temperature 3.0, --distill-alpha 0.7, --distill-max-teacher-length 512Logging e Monitoramento
Weights & Biases (Padrão)
O logging W&B com visualizador LEET está habilitado por padrão. O visualizador LEET mostra métricas de treinamento em tempo real diretamente no seu terminal.TensorBoard
Push para Hugging Face Hub
Faça upload do seu modelo treinado:O repositório é criado como privado por padrão. Por padrão, o repositório será nomeado
{username}/{project-name}.Nome de Repositório Personalizado ou Organização
Use--repo-id para fazer upload para um repositório específico, útil para:
- Fazer upload para uma organização em vez da sua conta pessoal
- Usar um nome de repo diferente do seu
project-namelocal
| Parâmetro | Descrição | Padrão |
|---|---|---|
--push-to-hub | Habilitar upload para o Hub | False |
--hub-private / --no-hub-private | Criar repo como privado ou publico | True (privado) |
--username | Usuário HF (para nomeação padrão do repo) | None |
--token | Token de API do HF | None |
--repo-id | ID completo do repo (ex: org/model-name) | {username}/{project-name} |
Opções Avançadas
Varreduras de Hiperparâmetros
Avaliação Aprimorada
Ver Todos os Parâmetros
Veja todos os parâmetros para um trainer específico:Próximos Passos
Configurações YAML
Use arquivos de configuração
Treinamento DPO
Mergulho profundo em DPO
LoRA/PEFT
Fine-tuning eficiente
Distilação
Distilação de conhecimento
Treinamento GRPO
RL com ambientes personalizados