O que é
O fine-tuning supervisionado é a maneira mais direta de alterar o comportamento de um modelo: você fornece exemplos das conversas que deseja e o treina para reproduzir as respostas. “Supervisionado” significa que cada exemplo vem com a resposta anexada. Não se pede ao modelo que julgue ou explore; ele é informado, para cada contexto, quais são as próximas palavras corretas.
Um modelo pré-treinado já aprendeu a linguagem e muito sobre o mundo a partir de textos públicos. O que ele não viu foi o seu produto, o tom da sua equipe ou o formato que os seus usuários esperam. O SFT preenche essa lacuna com um conjunto de dados comparativamente minúsculo: de centenas a alguns milhares de boas conversas, e não os trilhões de tokens usados no pré-treinamento. O estudo LIMA demonstrou isso claramente: um modelo de 65 bilhões de parâmetros submetido a fine-tuning com apenas 1.000 exemplos cuidadosamente selecionados comportou-se como um assistente capaz, o que seus autores interpretaram como evidência de que quase todo o conhecimento é aprendido no pré-treinamento, e o fine-tuning ensina principalmente o formato para usá-lo.
Como funciona
Cada registro de treinamento é uma conversa. As respostas do assistente que você marcou como treináveis são os alvos; tudo o que vem antes de um alvo é o seu contexto.
{"messages": [
{"role": "system", "content": "You are Scalata's support assistant."},
{"role": "user", "content": "How do I reset my password?"},
{"role": "assistant", "content": "Open Settings → Security and choose Reset password. You'll get an email link valid for 30 minutes."}
]}O modelo lê o registro como uma longa sequência de tokens. Em cada posição dentro do alvo, ele prevê uma probabilidade para cada token em seu vocabulário, e o treinador verifica quanta probabilidade ele atribuiu ao token que realmente vem a seguir. A penalidade para um token é −ln p, o logaritmo natural negativo dessa probabilidade. A média sobre a resposta é a perda de entropia cruzada.
loss for one reply = average over its target tokens of −ln p(correct next token | everything before it)
p = 0.90 → 0.11
p = 0.50 → 0.69
p = 0.05 → 3.00Apenas os tokens alvo são pontuados. A mensagem do sistema e as palavras do usuário são lidas, pois moldam a previsão, mas nunca são avaliadas. Isso é o mascaramento de perda: o modelo aprende a responder como a sua equipe, não a imitar os seus usuários.
Openp 0.20 · 1.61␣Settingsp 0.85 · 0.16␣→p 0.62 · 0.48␣Securityp 0.90 · 0.11Após cada lote, a retropropagação calcula como cada peso treinável deve mudar para tornar os tokens alvo mais prováveis, e o otimizador dá um pequeno passo nessa direção. A taxa de aprendizado define o tamanho do passo. Uma passagem por todos os registros é uma época.
- A resposta de destino começa com “Open Settings → Security”. Suponha que o modelo dê a esses quatro tokens as probabilidades de 0,20, 0,85, 0,62 e 0,90.
- As penalidades são −ln 0,20 = 1,61, −ln 0,85 = 0,16, −ln 0,62 = 0,48 e −ln 0,90 = 0,11.
- A soma delas é 2,36; a média sobre os quatro tokens é de cerca de 0,59. A maior parte da penalidade vem da primeira palavra: o modelo não esperava que a resposta começasse com “Open”.
- A atualização eleva todas as quatro probabilidades, e a mais surpreendente ainda mais, porque o impulso em cada token cresce de acordo com a distância de sua probabilidade em relação a 1. Após algumas épocas em respostas semelhantes, a média pode cair para cerca de 0,2.
No que o SFT é bom e no que não é
| Objetivo | SFT? | Motivo |
|---|---|---|
| Um tom e voz consistentes | Sim | Cada resposta nos dados demonstra isso. |
| Um formato de saída fixo (seções, JSON, comprimento) | Sim | O formato é fácil de mostrar e fácil de pontuar token por token. |
| Expressões do domínio e vocabulário do produto | Sim | O modelo absorve as palavras que a sua equipe usa. |
| Fatos que mudam com frequência (preços, estoque, políticas) | Raramente | Fatos treinados tornam-se obsoletos; consultá-los no momento da resposta é mais seguro. |
| Julgamentos de “melhor que” sem uma única resposta certa | Parcialmente | O ajuste de preferência expressa comparações diretamente. |
| Tarefas com um resultado verificável (um cálculo, código que passa em testes) | Parcialmente | O fine-tuning por reforço pode recompensar resultados corretos em vez de uma formulação fixa. |
Uma propriedade explica a maioria das surpresas do SFT: ele imita. Se uma em cada dez respostas disser “por favor, entre em contato com o suporte” em vez de responder, o modelo aprenderá a dizer isso cerca de uma vez a cada dez. Se as respostas se contradisserem, o modelo aprenderá uma mistura de ambas. Alvos limpos e consistentes importam mais do que uma quantidade maior de alvos.
Como ajustá-lo
A maioria das execuções supervisionadas precisa de pouco ajuste. Comece com os padrões do provedor (“Auto”), leia as curvas e, em seguida, mude uma coisa de cada vez.
Quantas vezes o modelo vê cada registro de treinamento. Muito poucas e as respostas quase não mudam; muitas e a perda de treinamento continua caindo enquanto a perda de validação aumenta, porque o modelo está memorizando os seus exemplos. Conjuntos de dados pequenos geralmente toleram mais épocas do que os grandes.
Modelos hospedados expõem um multiplicador sobre a taxa de aprendizado padrão do próprio provedor, em vez do valor bruto. Acima de 1, o aprendizado é mais rápido, mas pode ultrapassar o limite ou desgastar habilidades gerais; abaixo de 1, é mais suave e lento. Reduza-o se a perda de validação for ruidosa ou aumentar precocemente.
- Ambas as perdas caindo: ainda aprendendo; outra época pode ajudar.
- Treinamento cai, validação estabiliza: no ponto certo; pare por aqui.
- Treinamento cai, validação sobe: overfitting; use menos épocas, um multiplicador menor ou dados mais variados.
- Nenhuma se move muito: os dados podem ser inconsistentes ou a taxa de aprendizado muito baixa.
Erros comuns
- Treinar com respostas que você não gostaria que fossem repetidas. Respostas fracas, desatualizadas ou inconsistentes são aprendidas com a mesma fidelidade que as boas.
- Executar muitas épocas em um conjunto de dados pequeno e confiar na queda da perda de treinamento. Observe a perda de validação.
- Usar o SFT para armazenar fatos que mudam. Quando o fato muda, o modelo continua repetindo o antigo.
- Julgar a execução apenas pela perda. Uma perda menor significa uma imitação mais fiel das suas respostas, não necessariamente respostas melhores: execute uma avaliação.
- Não deixar uma divisão de validação, de modo que não haja nada para detectar o overfitting.
Referências e leitura complementar
Fontes externas abrem em uma nova aba.
- 01SFT TrainerHugging Face TRL docs · huggingface.coDescreve a perda de entropia cruzada no nível do token e mostra como o treinamento apenas em conclusões funciona.
- 02Supervised fine-tuningOpenAI API docs · developers.openai.comO passo a passo de um provedor hospedado: formato de dados, hiperparâmetros e avaliação do resultado.
- 03LIMA: Less Is More for AlignmentZhou et al., 2023 · arXiv · arxiv.org1.000 exemplos selecionados foram suficientes para fazer o fine-tuning de um modelo de 65B em um assistente robusto.
- 04Training language models to follow instructions with human feedbackOuyang et al., 2022 · arXiv · arxiv.orgInstructGPT: o artigo que fez do fine-tuning supervisionado o primeiro passo do pós-treinamento moderno.
- 05Finetuned Language Models Are Zero-Shot LearnersWei et al., 2021 · arXiv · arxiv.orgEvidências iniciais de que o fine-tuning em instruções ajuda um modelo a seguir instruções que ele nunca viu.