Eu fiz o Fine-Tuning de um modelo de 270M no meu laptop

Estou testando três maneiras de fazer o fine-tuning de modelos. Uso a mesma tarefa para as três. Escalo do menor modelo para o maior.

A série segue este caminho:

  • Full Fine-Tuning (270M parâmetros)
  • LoRA (1.5B parâmetros)
  • QLoRA (7B parâmetros)

Quero entender a mecânica. Não quero seguir um tutorial cegamente.

Neste primeiro passo, usei o full fine-tuning. Este método atualiza cada peso no modelo. É a maneira mais cara de treinar.

Usei o dataset Banking77. Ele contém 13.000 mensagens de suporte ao cliente. O objetivo é identificar 77 intenções diferentes, como cartões perdidos ou taxas de câmbio.

Escolhi o Gemma 3 (270M). Este modelo é pequeno o suficiente para ser treinado em um laptop usando Apple Silicon. O full fine-tuning requer quatro vezes o tamanho do modelo em memória para armazenar gradientes e estados do otimizador.

Em vez de adicionar uma cabeça de classificação (classification head), fiz o modelo gerar a intenção como texto. Isso torna o processo idêntico ao instruction tuning. Isso prepara o projeto para as próximas etapas.

Um passo crítico é o mascaramento da perda (masking the loss). Você deve dizer ao modelo para ignorar o prompt e avaliar a si mesmo apenas no rótulo (label). Se você pular isso, o modelo desperdiçará esforço aprendendo a repetir o seu prompt.

Usei uma taxa de aprendizado (learning rate) baixa de 5e-5. Taxas de aprendizado altas destroem o conhecimento pré-treinado durante o full fine-tuning. Uma taxa de 2e-4 fez o modelo falhar.

Os resultados:

  • 96% de precisão em intenções comuns.
  • O modelo funciona bem em um laptop.
  • Ele ainda confunde a chegada do cartão com estimativas de entrega.

Na Parte 2, usarei um modelo cinco vezes maior. Treinarei menos de 1% de seus pesos usando LoRA. Verei se consigo obter a mesma precisão.

Fonte: https://dev.to/sumanpro