Configuração¶
Para usuários que desejam usar Docker ou outra plataforma de orquestração de contêineres, veja este documento primeiro.
Instalação¶
Para usuários no Windows 10 ou superior, há um guia de instalação baseado em Docker e WSL disponível neste documento.
Método de instalação via pip¶
Você pode instalar o SimpleTuner usando pip, o que é recomendado para a maioria dos usuários:
# for CUDA
pip install 'simpletuner[cuda]'
# for CUDA 13 / Blackwell (NVIDIA B-series GPUs)
pip install 'simpletuner[cuda13]' --extra-index-url https://download.pytorch.org/whl/cu130
# for CUDA 13 with TransformerEngine FP8 support
pip install 'simpletuner[cuda13-transformerengine]' --extra-index-url https://download.pytorch.org/whl/cu130
# for ROCm
pip install 'simpletuner[rocm]' --extra-index-url https://download.pytorch.org/whl/rocm7.1
# for Apple Silicon
pip install 'simpletuner[apple]'
# for CPU-only (not recommended)
pip install 'simpletuner[cpu]'
# for JPEG XL support (optional)
pip install 'simpletuner[jxl]'
# development requirements (optional, only for submitting PRs or running tests)
pip install 'simpletuner[dev]'
Método via repositório Git¶
Para desenvolvimento local ou testes, você pode clonar o repositório SimpleTuner e configurar o venv do Python:
git clone --branch=release https://github.com/bghira/SimpleTuner.git
cd SimpleTuner
# if python --version shows 3.11 or 3.12, you may want to upgrade to 3.13.
python3.13 -m venv .venv
source .venv/bin/activate
ℹ️ Você pode usar seu próprio caminho de venv personalizado definindo
export VENV_PATH=/path/to/.venvno arquivoconfig/config.env.
Nota: Estamos instalando a branch release aqui; a branch main pode conter recursos experimentais que talvez tenham melhores resultados ou menor uso de memória.
Instale o SimpleTuner com detecção automática de plataforma:
# Basic installation (auto-detects CUDA/ROCm/Apple)
pip install -e .
# With JPEG XL support
pip install -e .[jxl]
Nota: O setup.py detecta automaticamente sua plataforma (CUDA/ROCm/Apple) e instala as dependências apropriadas.
Etapas adicionais para NVIDIA Hopper / Blackwell¶
Opcionalmente, hardware Hopper (ou mais recente) pode usar o FlashAttention3 para melhorar o desempenho de inferência e treinamento ao usar torch.compile.
Você precisará executar a seguinte sequência de comandos no diretório do SimpleTuner, com seu venv ativo:
git clone https://github.com/Dao-AILab/flash-attention
pushd flash-attention
pushd hopper
python setup.py install
popd
popd
⚠️ Gerenciar a build do flash_attn é pouco suportado no SimpleTuner no momento. Isso pode quebrar em atualizações, exigindo que você refaça esse procedimento manualmente de tempos em tempos.
Etapas adicionais para AMD ROCm¶
O seguinte deve ser executado para um AMD MI300X ser utilizável:
apt install amd-smi-lib
pushd /opt/rocm/share/amd_smi
python3 -m pip install --upgrade pip
python3 -m pip install .
popd
ℹ️ Padrões de aceleração ROCm: Quando o SimpleTuner detecta um build do PyTorch com HIP habilitado ele exporta automaticamente
PYTORCH_TUNABLEOP_ENABLED=1(a menos que você já tenha definido) para que os kernels TunableOp estejam disponíveis. Em dispositivos MI300/gfx94x também definimosHIPBLASLT_ALLOW_TF32=1por padrão, habilitando os caminhos TF32 do hipBLASLt sem exigir ajustes manuais de ambiente.
Todas as plataformas¶
- 2a. Opção Um (Recomendada): Execute
simpletuner configure - 2b. Opção Dois: Copie
config/config.json.exampleparaconfig/config.jsone depois preencha os detalhes.
⚠️ Para usuários localizados em países onde o Hugging Face Hub não é facilmente acessível, você deve adicionar
HF_ENDPOINT=https://hf-mirror.comao seu~/.bashrcou~/.zshrcdependendo de qual$SHELLseu sistema usa.
Treinamento com múltiplas GPUs¶
SimpleTuner agora inclui detecção e configuração automática de GPUs através da WebUI. Ao primeiro carregamento, você será guiado por uma etapa de onboarding que detecta suas GPUs e configura o Accelerate automaticamente.
Detecção automática da WebUI (Recomendada)¶
Quando você iniciar a WebUI pela primeira vez ou usar simpletuner configure, encontrará uma etapa de onboarding "Accelerate GPU Defaults" que:
- Detecta automaticamente todas as GPUs disponíveis no seu sistema
- Mostra detalhes das GPUs incluindo nome, memória e IDs de dispositivo
- Recomenda configurações ideais para treinamento multi-GPU
-
Oferece três modos de configuração:
-
Modo Automático (Recomendado): Usa todas as GPUs detectadas com a contagem de processos ideal
- Modo Manual: Selecione GPUs específicas ou defina uma contagem de processos personalizada
- Modo Desativado: Treinamento apenas com uma GPU
Como funciona:
- O sistema detecta seu hardware de GPU via CUDA/ROCm
- Calcula --num_processes ideal com base nos dispositivos disponíveis
- Define CUDA_VISIBLE_DEVICES automaticamente quando GPUs específicas são selecionadas
- Salva suas preferências para futuras execuções de treinamento
Configuração manual¶
Se não estiver usando a WebUI, você pode controlar a visibilidade das GPUs diretamente no seu config.json:
Isso restringirá o treinamento às GPUs 0, 1 e 2, iniciando 3 processos.
- Se você estiver usando
--report_to='wandb'(o padrão), o seguinte ajudará você a reportar suas estatísticas:
Siga as instruções exibidas para localizar sua chave de API e configurá-la.
Depois disso, todas as suas sessões de treinamento e dados de validação estarão disponíveis no Weights & Biases.
ℹ️ Se você quiser desativar os relatórios do Weights & Biases ou do Tensorboard, use
--report-to=none
- Inicie o treinamento com simpletuner; os logs serão gravados em
debug.log
⚠️ Neste ponto, se você usou
simpletuner configure, está pronto! Caso contrário, esses comandos funcionarão, mas é necessária configuração adicional. Veja o tutorial para mais informações.
Executar testes unitários¶
Para executar testes unitários e garantir que a instalação foi concluída com sucesso:
Avançado: múltiplos ambientes de configuração¶
Para usuários que treinam vários modelos ou precisam alternar rapidamente entre diferentes conjuntos de dados ou configurações, duas variáveis de ambiente são verificadas na inicialização.
Para usá-las:
envterá como padrãodefault, que aponta para o diretório típicoSimpleTuner/config/que este guia ajudou você a configurar- Usar
simpletuner train env=pixartusará o diretórioSimpleTuner/config/pixartpara encontrarconfig.env config_backendterá como padrãoenv, que usa o arquivoconfig.envtípico que este guia ajudou você a configurar- Opções suportadas:
env,json,tomloucmdse você depende de executartrain.pymanualmente - Usar
simpletuner train config_backend=jsonprocurará porSimpleTuner/config/config.jsonem vez deconfig.env - Da mesma forma,
config_backend=tomlusaráconfig.env
Você pode criar config/config.env que contém um ou ambos estes valores:
Eles serão lembrados nas execuções subsequentes. Note que estes podem ser adicionados além das opções de multiGPU descritas acima.
Dados de Treinamento¶
Um conjunto de dados publicamente disponível está disponível no Hugging Face Hub com aproximadamente 10k imagens com legendas como nomes de arquivo, prontas para uso com SimpleTuner.
Você pode organizar as imagens em uma única pasta ou organizá-las de forma ordenada em subdiretórios.
Diretrizes de seleção de imagens¶
Requisitos de qualidade: - Sem artefatos de JPEG ou imagens borradas - modelos modernos detectam isso - Evite ruído granulado de sensor CMOS (aparecerá em todas as imagens geradas) - Sem marcas d'água, selos ou assinaturas (serão aprendidos) - Quadros de filme geralmente não funcionam devido à compressão (use stills de produção)
Especificações técnicas: - Imagens idealmente divisíveis por 64 (permite reutilização sem redimensionar) - Misture imagens quadradas e não quadradas para capacidades equilibradas - Use conjuntos de dados variados e de alta qualidade para melhores resultados
Geração de legendas¶
O SimpleTuner fornece scripts de legendagem para renomear arquivos em massa. Formatos de legenda suportados:
- Nome do arquivo como legenda (padrão)
- Arquivos de texto com --caption_strategy=textfile
- JSONL, CSV ou arquivos de metadados avançados
Ferramentas de legendagem recomendadas: - InternVL2: Melhor qualidade, mas lento (conjuntos pequenos) - BLIP3: Melhor opção leve com boa aderência às instruções - Florence2: Mais rápido, mas alguns não gostam dos resultados
Tamanho do lote de treinamento¶
Seu tamanho máximo de lote depende de VRAM e resolução:
Princípios-chave: - Use o maior tamanho de lote possível sem problemas de VRAM - Maior resolução = mais VRAM = menor tamanho de lote - Se o tamanho de lote 1 a 128x128 não funcionar, o hardware é insuficiente
Requisitos de dataset para múltiplas GPUs¶
Ao treinar com múltiplas GPUs, seu dataset precisa ser grande o suficiente para o tamanho de lote efetivo:
Exemplo: Com 4 GPUs e train_batch_size=4, você precisa de pelo menos 16 amostras por bucket de proporção.
Soluções para conjuntos de dados pequenos:
- Use --allow_dataset_oversubscription para ajustar repetições automaticamente
- Defina repeats manualmente na configuração do dataloader
- Reduza o tamanho de lote ou a contagem de GPUs
Veja DATALOADER.md para detalhes completos.
Publicando no Hugging Face Hub¶
Para enviar modelos ao Hub automaticamente ao finalizar, adicione ao config/config.json:
Faça login antes do treinamento:
Depuração¶
Ative logs detalhados adicionando ao config/config.env:
Um arquivo debug.log será criado na raiz do projeto com todas as entradas de log.