Avançado 14 minFine-tuning

Unsloth: finetune um LLM em uma placa grande public

Resposta direta

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?

Por Mohamed Meguedmi·Atualização 2026-09-29·Testado no Windows, macOS e Linux

#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.

O que você quer, e a ferramenta correspondente
Sua necessidadeA resposta certa
Respostas com base em seus documentosUma cadeia RAG: os documentos podem mudar todos os dias
Saída com formato constanteFine-tuning, ou geração com restrições
Um tom próprio, uma linguagem da área profissionalFine-tuning
O vocabulário de um domínio especializadoFine-tuning, com exemplos suficientes
Informações que mudam com frequênciaRAG, sempre: treinar novamente por causa de um preço não faz sentido
Respostas mais curtas ou mais longasO prompt de sistema primeiro; nunca treinar para isso
i
Se a resposta honesta for 'quero que ele conheça nossa documentação'
Pare aqui e implemente primeiro uma busca documental. Ela é atualizada com a adição de um arquivo e cita suas fontes, o que o fine-tuning não faz. O guia do Unsloth, aliás, defende outra interpretação: segundo ele, o fine-tuning pode incorporar conhecimento e reproduzir tudo o que o RAG faz, mas o inverso não é verdadeiro. Isso é verdade em princípio; a justificativa prática para usar RAG está em outros aspectos: na atualização, na rastreabilidade e no custo de um novo treinamento a cada mudança.

#O que o Unsloth muda de fato

O kit IA Local

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.

Ganhos anunciados pelo Unsloth conforme o notebook (números do desenvolvedor)
NotebookVelocidade anunciadaVRAM anunciada
Llama 3.1 (8B) Alpaca2 vezes mais rápido70 % menos
gpt-oss (20B)2 vezes mais rápido70 % menos
Qwen3.5 (4B), visão1,5 vezes mais rápido60 % a menos
Gemma 4 (E2B), visão1,5 vezes mais rápido50% a menos
Orpheus-TTS (3B)1,5 vezes mais rápido50% a menos
embeddinggemma (300M)2 vezes mais rápido20 % a menos

#Qual placa para qual modelo

Mínimos publicados por Unsloth para fine-tuning (GB de VRAM)
Tamanho do modeloQLoRA (4 bits)LoRA (16 bits)Interpretação para uma placa de consumo
3 bilhões3,58Confortável em qualquer placa recente em QLoRA
7 bilhões519QLoRA em 8 GB; LoRA de 16 bits exige uma placa de 24 GB
8 bilhões622QLoRA com 8 GB ou mais; 12 GB deixam margem
14 bilhões8,533QLoRA em 12 GB; LoRA de 16 bits fora do alcance de uma placa de 24 GB
27 bilhões2264QLoRA em 24 GB, sem margem; LoRA de 16 bits impossível em uma única placa
32 bilhões2676Acima de 24 GB, mesmo com QLoRA
70 bilhões41164Fora 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.

Hardware compatível de acordo com a documentação do Unsloth
PlataformaO que diz a documentação
NVIDIA, com Unsloth CoreLinux 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 IntelGuias dedicados; o treinamento funciona nessas GPUs, tanto com Core quanto com Studio.
MacUnsloth 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 GPUO Studio funciona para conversas com modelos GGUF e para preparação de dados, não para treinamento.
Várias GPUsSuportado 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.
i
Verifique a versão atual da página
Este cenário muda rápido: o README anuncia agora o treinamento em GPU AMD sob Windows, WSL e Linux, e uma aplicação de desktop. Verifique a documentação atual antes de comprar equipamentos.
!
Studio exposto na rede: ferramentas do servidor ativadas
O README do Unsloth avisa que as ferramentas do lado do servidor do Studio estão ativadas por padrão. Expor a interface (--secure, host não local, acesso LAN) exige uma senha de administrador, e --disable-tools desativa essas ferramentas. Mantenha-a em 127.0.0.1 enquanto não precisar abri-la.

#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.
!
O sobreajuste parece um sucesso
O guia do Unsloth diz isso em uma frase: se a perda cair para 0, pode ser sobreajuste, e é preciso verificar a validação. Uma perda entre 0,5 e 1,0 é, segundo o guia, um bom sinal em muitos casos, mas isso depende do conjunto de dados e da tarefa. O modelo que memorizou os dados responde perfeitamente às suas perguntas de teste e pior do que antes a todo o resto. Reserve 20 % dos dados para o teste, busque 1 a 3 épocas para limitar o sobreajuste e monitore o conjunto de validação em vez da curva de treinamento.

#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.

Carregar um modelo em 4 bits com Unsloth Core
from unsloth import FastLanguageModel

model, tokenizer = FastLanguageModel.from_pretrained(
    model_name="unsloth/Qwen3-8B-unsloth-bnb-4bit",  # quantification dynamique 4 bits d'Unsloth
    max_seq_length=2048,
    load_in_4bit=True,
)
model = FastLanguageModel.get_peft_model(model, r=16, lora_alpha=16)

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.

Configurações padrão do guia oficial
ParâmetroValor no guiaO que você precisa saber
per_device_train_batch_size2Maior: melhor utilização da GPU, mas o preenchimento torna o treinamento mais lento; preferir gradient_accumulation_steps
gradient_accumulation_steps4Simula um lote maior sem memória adicional
max_steps60Valor para um teste rápido; para um treinamento real, substituir por num_train_epochs entre 1 e 3
learning_rate2e-4Mais baixo para um ajuste mais lento e preciso: experimentar 1e-4, 5e-5 ou 2e-5
max_seq_length2048Comprimento 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
  1. 01
    Treinar
    O resultado é um adaptador LoRA, de cerca de 100 MB no exemplo do Unsloth, não um modelo completo.
  2. 02
    Avaliar
    Compare 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.
  3. 03
    Mesclar ou manter separado
    O adaptador pode permanecer separado e ser trocado, ou ser fundido nos pesos: model.save_pretrained_merged com save_method="merged_16bit".
  4. 04
    Exportar para GGUF e quantizar
    model.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.
Exportar um modelo treinado em GGUF (na mesma sessão)
model.save_pretrained_gguf(
    "mon-modele-q4", tokenizer, quantization_method="q4_k_m"
)
# puis, avec le Modelfile fourni : ollama create mon-modele -f Modelfile
!
O modelo exportado dá respostas sem sentido no Ollama
Caso comum, descrito na documentação do Unsloth: o modelo funciona bem no Unsloth, mas, após ser exportado, produz texto sem sentido, gerações sem fim ou repetições. A causa mais comum é um template de conversa diferente do usado durante o treinamento. É necessário usar o mesmo template no treinamento e na inferência, usar o token correto de fim de sequência e verificar se o motor não adiciona um token de início a mais. A documentação especifica que o Unsloth cria automaticamente o Modelfile do Ollama com o template utilizado durante o fine-tuning.

#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.

#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.

→
Cronometrar o primeiro teste
O guia do Unsloth sugere max_steps = 60 para ir mais rápido. Com um conjunto de dados reduzido, de algumas centenas de exemplos, um primeiro teste completo, incluindo treinamento e avaliação, dá uma estimativa do tempo total antes de se comprometer com o conjunto completo.

#FAQ

O Unsloth é gratuito?+
A biblioteca principal está sob licença Apache 2.0 e abrange o fine-tuning LoRA e QLoRA sem custo; o repositório possui mais de 76.000 estrelas no GitHub. Alguns componentes opcionais, como a interface Studio, estão sob licença AGPL-3.0: a documentação descreve essa dupla licença como um meio de financiar o projeto mantendo-o aberto. Os notebooks rodam gratuitamente no Colab e no Kaggle.
Qual placa usar para ajustar um modelo de 7 bilhões de parâmetros?+
A tabela do Unsloth indica um mínimo de 5 GB para um modelo de 7 bilhões de parâmetros com QLoRA de 4 bits e de 19 GB com LoRA de 16 bits. Portanto, uma placa de 12 GB é adequada para QLoRA. A documentação especifica que esses são mínimos absolutos e que o tamanho do lote ou exemplos longos podem exigir mais memória.
Quantos exemplos são necessários?+
O guia do Unsloth recomenda um mínimo absoluto de 100 linhas e mais de 1.000 linhas para melhores resultados; se o conjunto de dados for muito pequeno, é possível adicionar dados sintéticos ou um conjunto de dados do Hugging Face. A consistência é mais importante que a quantidade: exemplos ruins ensinam hábitos ruins com a mesma certeza com que exemplos bons ensinam hábitos bons.
O modelo obtido funciona no Ollama?+
Sim: exporta-se em GGUF com model.save_pretrained_gguf, escolhe-se a quantização (q4_k_m é recomendada pela documentação) e depois cria-se o modelo no Ollama com um Modelfile. O Unsloth gera esse Modelfile com o template de conversa usado no treinamento. Se as respostas ficarem incoerentes, verifique primeiro se o template e o token de fim de sequência são os mesmos.
Funciona com AMD, no Mac ou sem GPU?+
Sim para AMD e Intel, com guias dedicados. No Mac, o Unsloth Studio suporta treinamento e inferência GGUF; o Core ainda não está disponível para Apple Silicon. Sem GPU, o Studio serve para bate-papo e preparação de dados, não para treinamento. O Core exige uma placa NVIDIA com capacidade de cálculo 7.0 ou superior.
O fine-tuning tornará o modelo especialista nos meus dados?+
Não de forma duradoura. O guia do Unsloth afirma que o fine-tuning pode injetar conhecimentos, mas eles ficam desatualizados assim que seus dados mudam, enquanto um documento pode ser substituído em um minuto e citado. Fatos e documentos são questões de pesquisa documental; tom, formato e registro são questões de fine-tuning. Combinar os dois é comum.

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 →

Este guia ajudou você?

Um comentário, um erro ou uma observação? Avise-nos; isso ajuda a melhorar o guia para todos.