Capítulo 1: O que é Fine-Tuning?
Personalizando Modelos Pré-Treinados para Suas Necessidades
Fine-tuning é o processo de pegar um modelo de linguagem pré-treinado e continuar seu treinamento em um conjunto de dados específico para adaptá-lo a tarefas ou domínios particulares.
A Base do Aprendizado por Transferência
O que acontece durante o pré-treinamento?
Antes que um modelo possa ser ajustado (fine-tuned), ele passa pelo pré-treinamento:
- Coleta de Dados: Trilhões de tokens de livros, sites, códigos, etc.
- Previsão do Próximo Token: O modelo aprende a prever o que vem a seguir
- Aquisição de Conhecimento: O modelo desenvolve compreensão de linguagem, fatos, raciocínio
- Capacidades Gerais: Leitura, escrita, resumo, programação e mais
Modelos como o Llama-3.1 são pré-treinados com mais de 15 trilhões de tokens, conferindo a eles amplo conhecimento e capacidades antes de qualquer personalização.
O que o Fine-Tuning Altera
Quando você faz fine-tuning em um modelo, está modificando seus pesos internos para:
1. Adaptar a Tarefas Específicas
- Seguir formatos de instrução particulares
- Gerar estruturas de saída específicas (JSON, markdown, etc.)
- Focar em certos tipos de problemas
2. Aprender Conhecimento de Domínio
- Terminologia e protocolos médicos
- Raciocínio jurídico e citações
- Processos e linguagem específicos da empresa
3. Ajustar Comportamento e Estilo
- Tom de voz (formal, casual, técnico)
- Preferências de comprimento de resposta
- Traços de personalidade e caráter
Pré-Treinamento vs Fine-Tuning
| Aspecto | Pré-Treinamento | Fine-Tuning |
|---|---|---|
| Tamanho dos Dados | Trilhões de tokens | Milhares a milhões |
| Computação | Milhares de GPUs, meses | 1-8 GPUs, horas a dias |
| Objetivo | Compreensão geral de linguagem | Adaptação a tarefas específicas |
| Quem Realiza | Grandes laboratórios de IA | Qualquer pessoa com acesso a GPU |
| Custo | Milhões de dólares | Centenas a milhares |
O Processo de Fine-Tuning
Passo 1: Escolha um Modelo Base
Selecione um modelo pré-treinado apropriado para seu caso de uso:
from transformers import AutoModelForCausalLM
# Load a pre-trained base model
model = AutoModelForCausalLM.from_pretrained("meta-llama/Llama-3.1-8B")
Passo 2: Prepare Seu Conjunto de Dados
Formate seus dados para a tarefa de treinamento:
# Example instruction-following format
training_example = {
"instruction": "Summarize the following article",
"input": "The European Central Bank announced...",
"output": "The ECB raised interest rates by 0.25%..."
}
Passo 3: Configure o Treinamento
Defina os parâmetros de treinamento:
from transformers import TrainingArguments
training_args = TrainingArguments(
output_dir="./fine-tuned-model",
learning_rate=2e-5,
num_train_epochs=3,
per_device_train_batch_size=4,
)
Passo 4: Treine
Execute o processo de fine-tuning:
from trl import SFTTrainer
trainer = SFTTrainer(
model=model,
train_dataset=dataset,
args=training_args,
)
trainer.train()
Passo 5: Avalie e Faça o Deploy
Teste seu modelo e faça o deploy:
# Save the fine-tuned model
model.save_pretrained("./my-custom-model")
# Use it for inference
output = model.generate(input_ids, max_new_tokens=100)
O que o Fine-Tuning Pode Alcançar
✅ Resultados Excelentes
- Transferência de Estilo: Fazer o modelo escrever com a voz da sua empresa
- Seguimento de Formato: Gerar estruturas JSON específicas de forma confiável
- Especialização em Domínio: Expertise médica, jurídica, financeira
- Seguimento de Instruções: Seguir instruções complexas e de múltiplas etapas
- Personagem/Persona: Personalidade e comportamento consistentes
⚠️ Resultados Moderados
- Novos Idiomas: Funciona, mas pode exigir muitos dados
- Raciocínio Complexo: Melhorias possíveis, mas limitadas
- Conhecimento Factual: Melhor usar RAG para fatos dinâmicos
❌ Resultados Insatisfatórios
- Informação em Tempo Real: O modelo não aprende o que não foi treinado
- Precisão Matemática: Fine-tuning sozinho não corrige erros de cálculo
- Mudanças Fundamentais de Arquitetura: Não adiciona novas capacidades
Tipos de Fine-Tuning
1. Fine-Tuning Completo
Atualiza todos os parâmetros do modelo:
- Maior potencial de personalização
- Exige mais memória e computação
- Risco de esquecimento catastrófico
2. Fine-Tuning Eficiente em Parâmetros (PEFT)
Atualiza apenas um pequeno subconjunto de parâmetros:
- Muito menor exigência de memória
- Treinamento mais rápido
- Muitas vezes qualidade comparável ao fine-tuning completo
- Exemplos: LoRA, QLoRA, Prefix Tuning, IA3
3. Instruction Tuning
Treinamento em pares de instrução-resposta:
- Ensina modelos a seguir instruções
- Usa formatos como Alpaca ou ShareGPT
- Base para modelos em estilo de chat
4. Alignment/RLHF
Treinamento para alinhar modelos às preferências humanas:
- Usa feedback humano ou dados de preferência
- Métodos: RLHF, DPO, ORPO
- Cria modelos úteis, inofensivos e honestos
Exemplo do Mundo Real
Suponha que você está construindo um bot de suporte ao cliente para uma empresa de software:
Sem Fine-Tuning
O modelo base pode:
- Dar respostas genéricas e longas
- Não conhecer os recursos do seu produto
- Usar um tom inconsistente
- Não usar a terminologia específica da sua empresa
Com Fine-Tuning
O modelo personalizado pode:
- Responder de forma concisa com a voz da sua empresa
- Referenciar corretamente recursos específicos do produto
- Seguir os templates de resposta da sua equipe de suporte
- Escalar adequadamente quando necessário
# Example training data for support bot
examples = [
{
"instruction": "Customer asks about pricing",
"input": "How much does the Pro plan cost?",
"output": "Great question! Our Pro plan is $29/month when billed annually, or $35/month for monthly billing. It includes unlimited projects, priority support, and advanced analytics. Would you like me to explain any specific features?"
},
# ... hundreds more examples
]
Principais Pontos
✅ Fine-tuning adapta modelos pré-treinados para tarefas ou domínios específicos
✅ Ele se baseia em aprendizado por transferência—aproveitando o conhecimento do pré-treinamento
✅ Existem diferentes métodos (completo, PEFT, instruction tuning, alignment)
✅ Fine-tuning é poderoso, mas nem sempre é a solução ideal
✅ O processo envolve: modelo base → seus dados → treinamento → modelo customizado
Próximos Passos
Agora que você entende o que é fine-tuning, vamos explorar quando essa é a escolha certa em Capítulo 2: Quando Fazer Fine-Tuning vs Usar RAG.
Verificação Rápida
Antes de seguir, certifique-se de que consegue responder:
- Qual é a relação entre pré-treinamento e fine-tuning?
- Quais são três coisas que o fine-tuning pode ensinar a um modelo?
- Qual a diferença entre fine-tuning completo e PEFT?