Pular para o conteúdo principal

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:

  1. Coleta de Dados: Trilhões de tokens de livros, sites, códigos, etc.
  2. Previsão do Próximo Token: O modelo aprende a prever o que vem a seguir
  3. Aquisição de Conhecimento: O modelo desenvolve compreensão de linguagem, fatos, raciocínio
  4. Capacidades Gerais: Leitura, escrita, resumo, programação e mais
Example

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​

AspectoPré-TreinamentoFine-Tuning
Tamanho dos DadosTrilhões de tokensMilhares a milhões
ComputaçãoMilhares de GPUs, meses1-8 GPUs, horas a dias
ObjetivoCompreensão geral de linguagemAdaptação a tarefas específicas
Quem RealizaGrandes laboratórios de IAQualquer pessoa com acesso a GPU
CustoMilhões de dólaresCentenas 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:

  1. Qual é a relação entre pré-treinamento e fine-tuning?
  2. Quais são três coisas que o fine-tuning pode ensinar a um modelo?
  3. Qual a diferença entre fine-tuning completo e PEFT?