Recursos/Treinamento de modelo/Métodos de treinamento

Método

Ajuste fino supervisionado (SFT)

O ajuste fino supervisionado ensina um modelo por meio de exemplos: ele visualiza uma conversa e a resposta desejada, e seus pesos são ajustados para que essa resposta se torne mais provável, token por token.

Capítulo 75 min de leitura5 referências

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.

Um registro supervisionado (formato de chat)
{"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.

Entropia cruzada, em uma linha
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.00

Apenas 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.

systemVocê é o assistente de suporte da Scalata.lido · mascarado
userComo faço para redefinir minha senha?lido · mascarado
assistantAbra Configurações → Segurança e escolha Redefinir senha.avaliado · perda contabilizada
O modelo lê todos os tokens, mas seu erro é medido apenas na resposta alvo. O contexto molda a previsão; ele próprio nunca é avaliado.
Contexto (lido, não pontuado): “Como faço para redefinir minha senha?”
Openp 0.20 · 1.61␣Settingsp 0.85 · 0.16␣→p 0.62 · 0.48␣Securityp 0.90 · 0.11
soma das penalidades 2.364 tokens de destinoperda ≈ 0.59
Perda supervisionada, um token de destino por vez. A penalidade de cada token é −ln p, onde p é a probabilidade de o modelo ter dado o token correto. Um palpite confiante e correto não custa quase nada; uma surpresa custa muito. A perda da resposta é a média.

Apó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.

Pontuando uma resposta, token por token
  1. 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.
  2. 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.
  3. 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”.
  4. 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 é

ObjetivoSFT?Motivo
Um tom e voz consistentesSimCada resposta nos dados demonstra isso.
Um formato de saída fixo (seções, JSON, comprimento)SimO formato é fácil de mostrar e fácil de pontuar token por token.
Expressões do domínio e vocabulário do produtoSimO modelo absorve as palavras que a sua equipe usa.
Fatos que mudam com frequência (preços, estoque, políticas)RaramenteFatos treinados tornam-se obsoletos; consultá-los no momento da resposta é mais seguro.
Julgamentos de “melhor que” sem uma única resposta certaParcialmenteO ajuste de preferência expressa comparações diretamente.
Tarefas com um resultado verificável (um cálculo, código que passa em testes)ParcialmenteO 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.

ÉpocasTípico 1–3, ou Auto#

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.

Multiplicador da taxa de aprendizadoTípico Padrão do provedor (×0.5–2)#

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.

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.

Transforme semanas de trabalho especializado em minutos

Veja como o Scalata se adapta à sua equipe, aos seus dados e aos seus Controles.

Fale com vendas