Unsloth: finetune um LLM em uma placa grande public
Unsloth é uma biblioteca Python livre (Apache 2.0 para o núcleo, mais de 76.000 estrelas no GitHub) que reescreve as etapas pesadas do fine-tuning LoRA e QLoRA: até duas vezes mais rápido com 70% menos VRAM, segundo o desenvolvedor. Sua documentação indica um mínimo de 6 GB para um modelo de 8 bilhões em QLoRA de 4 bits: uma placa de 12 GB é suficiente, e depois a exportação em GGUF permite usar o modelo no Ollama.
O Unsloth torna viável o fine-tuning de um modelo aberto em uma placa de vídeo de uso doméstico: os mesmos métodos usados em outras ferramentas, mas com kernels de cálculo reescritos que reduzem o tempo e a memória necessários. Assim, um modelo com 7 ou 8 bilhões de parâmetros pode ser ajustado em uma placa de 12 GB, e o resultado é exportado em GGUF para rodar no Ollama. Resta a pergunta que vem antes de tudo: você realmente precisa fazer fine-tuning?
#A questão a resolver antes de instalar qualquer coisa
Sim, é possível fazer fine-tuning de um modelo de 7 ou 8 bilhões de parâmetros em uma placa de vídeo de consumo: a documentação do Unsloth indica um mínimo de 5 a 6 GB de VRAM com QLoRA de 4 bits, então uma placa de 12 GB é adequada, com margem para o contexto e o lote. O Unsloth reescreve as etapas mais pesadas do fine-tuning com LoRA e QLoRA para, segundo o desenvolvedor, chegar a ser duas vezes mais rápido com 70% menos VRAM, números que se aplicam apenas a alguns notebooks. O resultado pode ser exportado em GGUF para rodar no Ollama. Mas a verdadeira pergunta vem antes da instalação: o fine-tuning muda o comportamento de um modelo (tom, formato, registro), não mantém seus conhecimentos atualizados. Se você quer que ele conheça seus documentos, construa primeiro um sistema de busca documental. Considere também que a preparação do conjunto de dados leva mais tempo que o treinamento.
O fine-tuning altera a forma como um modelo se comporta. A busca documental muda o que ele sabe no momento de responder. Confundir os dois faz você perder semanas.
| Sua necessidade | A resposta certa |
|---|---|
| Respostas com base em seus documentos | Uma cadeia RAG: os documentos podem mudar todos os dias |
| Saída com formato constante | Fine-tuning, ou geração com restrições |
| Um tom próprio, uma linguagem da área profissional | Fine-tuning |
| O vocabulário de um domínio especializado | Fine-tuning, com exemplos suficientes |
| Informações que mudam com frequência | RAG, sempre: treinar novamente por causa de um preço não faz sentido |
| Respostas mais curtas ou mais longas | O prompt de sistema primeiro; nunca treinar para isso |
- Fine-tuning ou RAG: a árvore de decisão detalhada
- LoRA e QLoRA: como realmente funcionam
- Um exemplo completo de fine-tuning LoRA
- Avaliar se um RAG faria melhor, com números
#O que o Unsloth muda de fato
Seu ChatGPT privado e gratuito na sua máquina em 1 hora — LM Studio, Ollama, Open WebUI, seus documentos, sem nuvem.
- Espaço online vitalício
- PDF + arquivos
- Atualizações vitalícias
O método não é novo: congelamos os pesos do modelo e treinamos apenas matrizes finas adicionadas a cada peso, cerca de 1% dos parâmetros segundo o guia do Unsloth. O LoRA mantém o modelo original em 16 bits, o QLoRA o quantiza em 4 bits, economizando 75% de memória. É a abordagem padrão, não pertence ao Unsloth.
O que a biblioteca oferece é a implementação, com kernels de cálculo reescritos para as etapas pesadas. O projeto existe em três formas: Unsloth Desktop, um aplicativo nativo, Unsloth Studio, uma interface web, e Unsloth Core, a versão controlada por código mencionada neste artigo. É publicado sob duas licenças: Apache 2.0 para o núcleo e AGPL-3.0 para alguns componentes opcionais, como a interface Studio. O projeto afirma treinar modelos de linguagem, de difusão, de síntese de voz e de embeddings duas vezes mais rápido com 70% menos VRAM, sem perda de precisão. Nas arquiteturas com mistura de especialistas (MoE), o ganho publicado aumenta ainda mais: até 12 vezes mais rápido com mais de 35% de VRAM economizada em alguns modelos recentes. Como todos os números divulgados pelos desenvolvedores, esses descrevem o melhor caso: o próprio README mostra que o “duas vezes, 70%” vale apenas para alguns notebooks.
| Notebook | Velocidade anunciada | VRAM anunciada |
|---|---|---|
| Llama 3.1 (8B) Alpaca | 2 vezes mais rápido | 70 % menos |
| gpt-oss (20B) | 2 vezes mais rápido | 70 % menos |
| Qwen3.5 (4B), visão | 1,5 vezes mais rápido | 60 % a menos |
| Gemma 4 (E2B), visão | 1,5 vezes mais rápido | 50% a menos |
| Orpheus-TTS (3B) | 1,5 vezes mais rápido | 50% a menos |
| embeddinggemma (300M) | 2 vezes mais rápido | 20 % a menos |
#Qual placa para qual modelo
| Tamanho do modelo | QLoRA (4 bits) | LoRA (16 bits) | Interpretação para uma placa de consumo |
|---|---|---|---|
| 3 bilhões | 3,5 | 8 | Confortável em qualquer placa recente em QLoRA |
| 7 bilhões | 5 | 19 | QLoRA em 8 GB; LoRA de 16 bits exige uma placa de 24 GB |
| 8 bilhões | 6 | 22 | QLoRA com 8 GB ou mais; 12 GB deixam margem |
| 14 bilhões | 8,5 | 33 | QLoRA em 12 GB; LoRA de 16 bits fora do alcance de uma placa de 24 GB |
| 27 bilhões | 22 | 64 | QLoRA em 24 GB, sem margem; LoRA de 16 bits impossível em uma única placa |
| 32 bilhões | 26 | 76 | Acima de 24 GB, mesmo com QLoRA |
| 70 bilhões | 41 | 164 | Fora do alcance de uma placa voltada ao consumidor |
A documentação especifica que esses números são mínimos absolutos: conforme o modelo, pode ser necessário mais. Ela indica que o tamanho do lote excessivo é uma causa frequente de saturação de memória, devendo ser reduzido para 1, 2 ou 3, e recomenda um comprimento de contexto de 2048 para os primeiros testes.
| Plataforma | O que diz a documentação |
|---|---|
| NVIDIA, com Unsloth Core | Linux e Windows; capacidade de computação mínima de 7.0 (V100, T4, RTX 20 e seguintes, A100, H100), Blackwell e DGX Spark incluídos. As GTX 1070 e 1080 funcionam, mas lentamente. |
| AMD e Intel | Guias dedicados; o treinamento funciona nessas GPUs, tanto com Core quanto com Studio. |
| Mac | Unsloth Studio suporta treinamento, MLX e inferência GGUF (macOS 12 ou superior). Para Core, o suporte a Apple Silicon (MLX) está indicado como "em preparação". |
| Sem GPU | O Studio funciona para conversas com modelos GGUF e para preparação de dados, não para treinamento. |
| Várias GPUs | Suportado pelo Accelerate e pelo DeepSpeed (FSDP, DDP), com configuração manual; a opção device_map="balanced" distribui um modelo grande demais entre várias placas. |
#O conjunto de dados é o verdadeiro trabalho
Um fine-tuning nunca falha devido à biblioteca. Ele falha devido aos dados.
- Formato
- Um conjunto de dados com duas colunas, pergunta e resposta, geralmente na estrutura de conversa esperada pelo modelo. O guia recomenda começar com um modelo Instruct: ele aceita diretamente os templates de conversa (ChatML, ShareGPT) e exige menos dados do que um modelo base. A consistência conta mais que o volume.
- Quantidade
- O guia do Unsloth recomenda, como mínimo absoluto, 100 linhas e mais de 1.000 linhas para resultados melhores. O tom e o formato mudam com poucos exemplos; um comportamento realmente adequado ao domínio de negócio exige mais exemplos, coerentes entre si.
- Qualidade
- O modelo imita o que lhe é mostrado, incluindo os erros. Um defeito sistemático nos dados torna-se um defeito sistemático no modelo.
- Conjunto de controle
- Exemplos que o modelo nunca viu durante o treinamento. Sem eles, impossível distinguir aprendizado de simples memorização.
- Sem código
- O Unsloth Studio oferece Data Recipes, que transformam PDF, CSV ou DOCX em conjuntos de dados por meio de um fluxo visual, com pré-visualização antes de iniciar a construção completa.
#Do adaptador ao modelo utilizável
O processo se divide em três etapas: carregar um modelo em 4 bits, treiná-lo com um dos notebooks oficiais e exportá-lo. O primeiro bloco de código carrega o modelo e adiciona os adaptadores LoRA; o treinamento propriamente dito é feito com um dos notebooks do Unsloth, que o guia recomenda copiar para o seu ambiente local.
O sufixo do nome importa. De acordo com o guia, um modelo cujo nome termina em unsloth-bnb-4bit usa uma quantização dinâmica de 4 bits do Unsloth: ela consome um pouco mais de VRAM do que uma quantização padrão do BitsAndBytes, mas oferece uma precisão significativamente superior. Um nome que termina apenas em bnb-4bit indica a versão padrão. O guia acrescenta que o treinamento e a disponibilização do modelo se beneficiam do uso da mesma precisão: disponibilizá-lo em 4 bits significa treiná-lo em 4 bits.
| Parâmetro | Valor no guia | O que você precisa saber |
|---|---|---|
| per_device_train_batch_size | 2 | Maior: melhor utilização da GPU, mas o preenchimento torna o treinamento mais lento; preferir gradient_accumulation_steps |
| gradient_accumulation_steps | 4 | Simula um lote maior sem memória adicional |
| max_steps | 60 | Valor para um teste rápido; para um treinamento real, substituir por num_train_epochs entre 1 e 3 |
| learning_rate | 2e-4 | Mais baixo para um ajuste mais lento e preciso: experimentar 1e-4, 5e-5 ou 2e-5 |
| max_seq_length | 2048 | Comprimento recomendado para os testes. Definir um valor maior “para ter folga” reserva memória para sequências ausentes dos seus dados: medir primeiro o comprimento real dos seus exemplos |
- 01TreinarO resultado é um adaptador LoRA, de cerca de 100 MB no exemplo do Unsloth, não um modelo completo.
- 02AvaliarCompare com o conjunto de controle e com o modelo original. Ser “melhor” é algo que se demonstra, não que se presume. O guia observa que as ferramentas de avaliação automática podem não refletir bem seus critérios.
- 03Mesclar ou manter separadoO adaptador pode permanecer separado e ser trocado, ou ser fundido nos pesos: model.save_pretrained_merged com save_method="merged_16bit".
- 04Exportar para GGUF e quantizarmodel.save_pretrained_gguf gera o arquivo, com q4_k_m, q8_0 ou f16 à sua escolha. É isso que permite executar o resultado com Ollama ou llama.cpp em hardware comum.
#As armadilhas comuns
- Começar com um modelo base sem saber
- O guia recomenda modelos Instruct: eles aceitam templates de conversa e exigem menos dados. Um modelo base exige um formato diferente (Alpaca, Vicuna) e mais exemplos.
- Esquecer o template de conversa
- Exemplos formatados de forma diferente da esperada pelo modelo resultam em treinamento tecnicamente bem-sucedido e praticamente inútil.
- Medir nos exemplos de treinamento
- É esse erro que leva a anunciar resultados espetaculares e entregar modelos decepcionantes.
- Acreditar que substituirá a pesquisa documental
- O que ensinamos ao modelo fica desatualizado no dia em que suas informações mudam, e o modelo não cita suas fontes. Para fatos que evoluem, a pesquisa documental continua mais segura.
- Subestimar a limpeza dos exemplos
- Duplicatas quase idênticas no conjunto de dados enviesam o treinamento para esses casos específicos sem que isso seja indicado nas métricas monitoradas.
- Mudar vários ajustes ao mesmo tempo
- Modificar a taxa de aprendizado, o rank do adaptador e o comprimento da sequência em uma mesma tentativa impede de saber qual produziu a mudança observada.
#Casos de uso concretos
- Atendimento ao cliente com tom constante
- Um modelo ajustado com base em interações reais responde com a voz da marca, sem instruções de estilo repetidas em cada prompt.
- Extração em formato estrito
- Fazer fine-tuning com exemplos de entrada e saída define o formato de saída de maneira mais confiável do que apenas um prompt, o que é útil antes de enviar o resultado a um sistema em uma etapa posterior.
Um ponto em comum nesses casos: cada um pode ser medido. Antes de iniciar um treinamento, defina o critério de sucesso em uma frase verificável — por exemplo: 'o formato JSON é respeitado em pelo menos 95% das saídas do conjunto de controle' — em vez de uma impressão geral de melhora. É esse critério, e não a intuição, que dirá se o resultado justifica o tempo investido.
- Fonte: repositório oficial Unsloth (funções, hardware, licença dupla)
- Fonte: pré-requisitos e VRAM mínima por tamanho do modelo
- Fonte: guia de fine-tuning do Unsloth
- Fonte: exportação para GGUF e problemas de template
- Fonte: dados de desempenho dos modelos MoE
#O custo real, além do preço da placa
A placa de vídeo é apenas um dos itens de custo. Coletar e limpar exemplos coerentes, criar um conjunto de avaliação que o modelo nunca verá e depois comparar cada versão com o modelo original costuma pesar mais do que o treinamento em si, que o guia do Unsloth ilustra com um teste de 60 passos.
É por isso que o Unsloth, por mais rápido que seja no treinamento, não reduz a duração de um projeto tanto quanto se espera: ele elimina o gargalo técnico, não o trabalho com os dados.
#FAQ
O Unsloth é gratuito?+
Qual placa usar para ajustar um modelo de 7 bilhões de parâmetros?+
Quantos exemplos são necessários?+
O modelo obtido funciona no Ollama?+
Funciona com AMD, no Mac ou sem GPU?+
O fine-tuning tornará o modelo especialista nos meus dados?+
Hardware recomendado: RTX 5070 Ti 16 GB — placa NVIDIA de 16 GB, suficiente para fazer o ajuste fino de um modelo 7–8B com QLoRA. Todo o hardware de IA →
Um comentário, um erro ou uma observação? Avise-nos; isso ajuda a melhorar o guia para todos.