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