Pular para o conteúdo principal

Treinamento Distribuído

O AITraining suporta treinamento multi-GPU através do Accelerate, com otimização opcional DeepSpeed Zero-3 para modelos grandes.

Requisitos

Backends de Distribuição

Início Rápido

DDP (Padrão)

Com múltiplas GPUs, DDP é usado automaticamente:

DeepSpeed

Para modelos grandes, use DeepSpeed Zero-3:

Python API

Configuração YAML

Como Funciona

Launch Accelerate

O treinamento é iniciado através do Accelerate:
  1. AITraining detecta GPUs disponíveis
  2. Inicia treinamento via accelerate launch
  3. Para DeepSpeed, adiciona flags --use_deepspeed e Zero-3
  4. Registra accelerate env para depuração

Configurações DDP

Ao usar DDP:
  • ddp_find_unused_parameters=False é definido para performance
  • Cada GPU processa uma porção do batch
  • Gradientes são sincronizados entre GPUs

DeepSpeed Zero-3

Ao usar DeepSpeed:
  • Parâmetros do modelo são fragmentados entre GPUs
  • Usa --deepspeed_multinode_launcher standard para multi-nó
  • Configuração Zero-3 é aplicada automaticamente
  • Salvamento de modelo usa accelerator.get_state_dict() com unwrapping

Treinamento Multi-Nó

Para treinamento DeepSpeed multi-nó:
A flag --deepspeed_multinode_launcher standard é passada automaticamente.

Comportamento Específico por Tarefa

Treinamento LLM

  • Padrão: DDP quando múltiplas GPUs detectadas
  • DeepSpeed: Definir explicitamente --distributed-backend deepspeed

Seq2Seq e VLM

  • Seleciona automaticamente DeepSpeed para casos de muitas GPUs
  • Usa DDP multi-GPU para combinações PEFT + quantização + bf16

Checkpointing com DeepSpeed

Ao usar DeepSpeed, o salvamento de adaptador PEFT é tratado de forma diferente. O SavePeftModelCallback não é usado; em vez disso, o salvamento usa accelerator.get_state_dict(trainer.deepspeed) e desenrola o modelo.

Seleção de GPU

Controle quais GPUs usar:

Solução de Problemas

Verificar Ambiente Accelerate

Problemas Comuns

Próximos Passos

LoRA/PEFT

Fine-tuning eficiente

Quantization

Reduzir uso de memória