ArtificialGuyBR

Home / Blog / Training LoRAs

Treinar LoRA em Hardware Limitado

Caminhos gratuitos no Colab, configurações AMD ROCm e orientação de VRAM para treinar LoRA.

9 sources cited Training LoRAs

Treinar LoRA em Hardware Limitado

Treinar uma LoRA em hardware limitado significa escolher entre três caminhos: nuvem para potência bruta com limite de tempo, AMD para permanência com custo de configuração, ou local com controle estritamente limitado pela VRAM. Este guia mapeia o que cada nível realmente suporta.

TL;DR

  • Colab gratuito: use GPUs em nuvem por algumas horas. Use o guia de dataset de LoRA para preparar os dados e depois treine sem custo.
  • AMD ROCm: treine localmente em RX 6800 XT ou superior. Desinstale bitsandbytes e xformers primeiro — os scripts não iniciam caso contrário.
  • Níveis de VRAM local: 6 GB para SD1.5 em 512×512. 12 GB desbloqueia SDXL. 24 GB dá liberdade total. Ative --gradient_checkpointing e precisão mista.

O que significa "hardware limitado" para treinamento de LoRA?

O hardware é limitado quando a VRAM — e não o tempo de computação — é a restrição determinante. A documentação do kohya-ss observa que o treinamento de LoRA em SDXL "requer muita VRAM" e que "mesmo com 24GB de VRAM, você pode ficar sem memória dependendo das configurações" (fonte). O que parece "limitado" depende do modelo base: SD1.5 treina em 512×512, enquanto SDXL tem como padrão 1024×1024. Para instruções detalhadas passo a passo, veja o fluxo de trabalho de treinamento do kohya-ss.

Posso treinar uma LoRA de graça no Google Colab?

O Google Colab oferece acesso gratuito a GPUs em nuvem (~20 horas/semana, relatado pela comunidade). Use dois notebooks: o guia de dataset para baixar imagens e curar tags, e depois o notebook XL Trainer para o treinamento com kohya-ss (kohya_ss GUI). Um usuário da comunidade relatou ~10 horas no total, de ponta a ponta, para uma LoRA de SDXL, com a maior parte do tempo gasta na preparação do dataset (fonte).

Alguém validou o treinamento de LoRAs em GPUs AMD?

Uma configuração AMD usa os LoRA Easy Training Scripts do Derrian no Ubuntu 24.02 com ROCm 6.2 e Python 3.10.14. O autor relata uma LoRA de alta qualidade em ~40 minutos em uma RX 6900XT (70 imagens, 8 epochs, otimizador CAME) (fonte). Isso é competitivo com GPUs intermediárias em nuvem, embora a configuração tenha demorado significativamente mais.

Crítico: desinstale bitsandbytes e xformers antes de treinar. Se qualquer um deles estiver presente, os scripts não iniciam (fonte). O otimizador CAME fica em custom_scheduler/LoraEasyCustomOptimizer/came.py (fonte). Instale o Python 3.10.14 via pyenv (o Ubuntu 24.02 vem com 3.12). Use o PyTorch com o índice ROCm: pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm6.1 (fonte).

Quais níveis de VRAM existem e o que cada um consegue treinar?

A documentação do kohya-ss não publica uma tabela de VRAM versus tamanho de batch, mas parâmetros confirmados de relatos da comunidade dão isto: VRAM | Modelo | Resolução | Tamanho de batch | Flags necessárias | Fonte

|---|---|---|---|---|---

6 GB | SD1.5 | 512×512 | 1–2 | --gradient_checkpointing, --sdpa | kohya-ss 8–12 GB | SD1.5 / SDXL | 512–768 | 2–4 | --cache_latents, --mixed_precision bf16 | kohya-ss 16–24 GB | SDXL | 768–1024 | 4–8 | --cache_text_encoder_outputs, --mixed_precision bf16 | kohya-ss Cada flag de economia de memória tem um custo: --gradient_checkpointing reduz a VRAM à custa de um treinamento mais lento. --cache_latents desativa as augmentations de imagem. --cache_text_encoder_outputs elimina o cálculo do text encoder e exige --network_train_unet_only para manter o treinamento válido. Cada configuração é uma troca de recursos, não uma otimização gratuita.

Quais configurações devo escolher para o meu nível de hardware?

Os parâmetros centrais de treinamento seguem a mesma lógica em todos os caminhos. A tabela consolida os valores recomendados: Parâmetro | SD1.5 | SDXL | Por que importa | Fonte

|---|---|---|---|---

Resolução | 512 | 1024 | Resolução maior aumenta a VRAM de forma linear; use a resolução nativa a menos que você tenha folga | kohya-ss network_dim | 8–32 | 16–64 | Um dim maior adiciona expressividade, mas também tamanho de arquivo | comunidade network_alpha | dim/2 | dim/2 | Controla o escalonamento da taxa de aprendizado. A documentação do kohya-ss recomenda metade do dim como padrão | kohya-ss unet_lr | 1e-4 a 5e-4 | 1e-4 a 5e-4 | Valores maiores treinam mais rápido, mas arriscam artefatos | comunidade text_encoder_lr | 2e-5 a 1e-4 | 1e-5 a 2e-5 | Deve ser de metade a um quinto da taxa de aprendizado do unet | comunidade lr_scheduler | constant / cosine | constant / cosine | constant é o mais simples; cosine_with_restarts adiciona redefinições periódicas que alguns treinadores preferem | kohya-ss batch_size | 1–2 | 4–8 | Limitado pela VRAM. Aumente gradient_accumulation_steps para um batch efetivo maior | kohya-ss epochs | 8–10 | 6–8 | Menos repetições e mais epochs dão controle mais fino. Salve cada epoch para comparar checkpoints | comunidade Quando a VRAM está apertada, AdamW8bit é o otimizador mais comum. Prodigy ajusta automaticamente a taxa de aprendizado (defina em torno de 1.0), mas não pode ser combinado com LoRA+. Adafactor é descrito como "ainda mais eficiente em memória", mas exige configuração mais cuidadosa.

Para quantas etapas devo treinar?

Fluxos de trabalho testados pela comunidade convergem para 250–1000 etapas totais. A fórmula:

(imagens × repetições × epochs) ÷ batch_size = etapas totais

Exemplos para SDXL: 10 imagens × 10 repetições × 10 epochs ÷ 2 de batch = 500 etapas. 100 imagens × 1 repetição × 10 epochs ÷ 4 de batch = 250 etapas. SD1.5 geralmente precisa de aproximadamente o dobro das repetições para atingir contagens de etapas comparáveis (fonte).

Menos etapas deixam o treinamento subdesenvolvido; a LoRA não produz efeito visível. Etapas demais arriscam distorção. Estilos podem precisar de mais epochs em taxas de aprendizado mais baixas do que personagens. Salve cada epoch e depois escolha o melhor checkpoint a olho.

Erros comuns e correções

Sintoma | Causa | Correção

|---|---|---

O treinamento nunca inicia na AMD | bitsandbytes ou xformers no venv | pip uninstall xformers bitsandbytes antes de treinar Imagens geradas distorcidas | Taxa de aprendizado alta demais ou repetições demais | Baixe unet_lr para 1e-4, reduza as repetições, compare checkpoints anteriores A LoRA não tem efeito visível | Subtreinada — LR baixa demais ou etapas insuficientes | Aumente unet_lr até 5e-4, ou adicione mais epochs Perda NaN | Problema de precisão mista ou pico de LR | Com fp16, adicione --no_half_vae para SDXL. Com Prodigy, adicione safeguard_warmup=True Funciona só com um prompt exato | Overfitting por dataset pequeno ou tagging ruim | Expanda o dataset com poses/ângulos/fundos variados; reduza a poda de tags verbosas Sessão do Colab desconecta | Tempo limite por inatividade ou recuperação de recursos | Salve cada epoch. Use --lowram se RAM < VRAM Para um diagnóstico sistemático além desta tabela, veja o fluxo de trabalho de depuração do treinamento de LoRA e o guia de comparação de otimizadores.

Frequently asked questions (FAQ)