Recursos/Treinamento de modelo/Métodos de treinamento

Método

Ajuste de preferência (DPO)

A Otimização Direta de Preferência treina um modelo em pares de respostas, uma melhor e uma pior, para que ele aprenda a preferir o tipo melhor, sem o modelo de recompensa e o ciclo de aprendizado por reforço que o RLHF clássico exige.

Capítulo 76 min de leitura5 referências

O que é

Muitas coisas que você deseja de um modelo são mais fáceis de julgar do que de descrever. Qual de duas respostas é mais clara, mais específica, mais alinhada à marca, menos propensa a inventar um recurso? Um revisor pode responder a isso em segundos, mesmo quando nenhuma das respostas é perfeita. O ajuste de preferência transforma esses julgamentos em dados de treinamento: cada registro é um par, um prompt com uma resposta preferida e uma não preferida.

A Otimização Direta de Preferência (DPO), introduzida por Rafailov e colegas em 2023, é a maneira mais amplamente utilizada para treinar nesses pares. O subtítulo do artigo deles resume a ideia: “seu modelo de linguagem é secretamente um modelo de recompensa”.

userComo faço para redefinir minha senha?
preferidaAbra Configurações → Segurança e escolha Redefinir senha. Você receberá um link por e-mail válido por 30 minutos.
não preferidaEntre em contato com o suporte para redefinir sua senha.
Quão provável o modelo considera cada resposta
preferida
não preferida
referência (início congelado)após o DPO
O DPO compara o modelo treinado (sólido) com uma cópia congelada de onde ele começou (contorno). Ele empurra a resposta preferida para cima e a não preferida para baixo, em relação a essa referência, nunca em termos absolutos.

De onde vem: RLHF

Para ver o que o DPO simplifica, comece com o aprendizado por reforço a partir de feedback humano (RLHF), a receita por trás do InstructGPT e da primeira onda de assistentes de chat. Após o pré-treinamento, ele possui três estágios:

  1. Ajuste fino supervisionado em demonstrações, para obter um modelo que responda no formato correto.
  2. Treinar um modelo de recompensa: uma rede separada que lê um prompt e uma resposta e gera uma pontuação, ajustada para que as respostas preferidas tenham uma pontuação mais alta do que as não preferidas.
  3. Aprendizado por reforço, geralmente PPO: o modelo escreve respostas, o modelo de recompensa as pontua, e o modelo é atualizado para obter pontuações mais altas, com uma penalidade por se desviar muito do modelo supervisionado.

Funciona: no artigo do InstructGPT, as pessoas preferiram as saídas de um modelo de 1,3 bilhão de parâmetros treinado dessa forma às do GPT-3 de 175 bilhões de parâmetros. Mas é pesado. O estágio de reforço gera texto dentro do loop de treinamento, mantém vários modelos na memória ao mesmo tempo e é sensível às suas configurações.

RLHF clássico · dois estágios extras
pares de preferência→treinar um modelo de recompensaresposta → pontuação→ciclo de RL (PPO)escrever · pontuar · atualizar · penalidade KL→modelo ajustado

Vários modelos em jogo ao mesmo tempo (o modelo sendo treinado, sua referência, o modelo de recompensa e um modelo de valor), e o texto é gerado dentro do ciclo de treinamento. Poderoso, mas lento e sensível às configurações.

DPO · um estágio
pares de preferência+referência congeladao modelo inicial→uma perda no estilo de classificação−log σ(β × margem)→modelo ajustado

Sem modelo de recompensa e sem amostragem durante o treinamento. Ele é executado como um trabalho supervisionado em pares, o que o torna mais barato e muito mais estável.

Mesmos dados, mesmo objetivo, mecanismos diferentes. O RLHF clássico ajusta um modelo de recompensa separado e, em seguida, executa um ciclo de aprendizado por reforço que gera e pontua o texto. O DPO consolida ambos em uma única perda calculada diretamente nos pares.

Como o DPO funciona

Tanto o modelo de recompensa do RLHF quanto o DPO baseiam-se no mesmo modelo de escolha humana, o modelo de Bradley-Terry. Ele afirma que, se duas respostas tiverem pontuações de qualidade ocultas, a chance de uma pessoa preferir a primeira é a sigmoide da diferença entre as pontuações:

O modelo de preferências de Bradley–Terry
P(A preferred over B) = σ(r_A − r_B) = 1 / (1 + e^−(r_A − r_B))

r_A − r_B = 0  →  0.50
r_A − r_B = 1  →  0.73
r_A − r_B = 2  →  0.88

Apenas as diferenças importam: adicione o mesmo valor a ambas as pontuações e a probabilidade não mudará. Uma diferença de 0 é como jogar uma moeda; uma diferença de 2 significa que a primeira resposta vence 88% das vezes.

O estágio de reforço do RLHF maximiza a recompensa enquanto paga uma penalidade, ponderada por β, por se afastar de um modelo de referência (a penalidade é a divergência KL entre os dois). Os autores do DPO mostraram que esse objetivo tem uma solução exata: o melhor modelo possível é a referência reponderada pela exponencial da recompensa ÷ β. Invertendo a lógica, cada modelo define uma recompensa implícita: β vezes o logaritmo de quão mais provável ele considera uma resposta do que a referência. Coloque isso no modelo de Bradley-Terry e as partes difíceis de calcular se anulam, deixando uma perda que precisa de apenas quatro números por par:

A perda do DPO para um par
loss = −ln σ( β × [ (log π(chosen)   − log π_ref(chosen))
                  − (log π(rejected) − log π_ref(rejected)) ] )

implicit reward of an answer  =  β × (log π(answer) − log π_ref(answer))
  • log π(chosen) e log π(rejected): a probabilidade de o modelo em treinamento encontrar cada resposta completa, como a soma das probabilidades logarítmicas de seus tokens.
  • log π_ref(…): os mesmos números do modelo de referência, uma cópia congelada do modelo como estava quando o treinamento começou.
  • β: quão fortemente o modelo é mantido nessa referência. Um valor menor permite que ele se mova mais.
  • σ: a sigmoide. Sua saída é lida como “a probabilidade de que a recompensa implícita do modelo concorde com a preferência humana”. A perda é menos o seu logaritmo, portanto, é grande quando o modelo discorda e próxima de 0 quando ele claramente concorda.

O treinamento reduz a perda ao aumentar a probabilidade da resposta escolhida em relação à referência, diminuindo a da rejeitada, ou ambos. O gradiente também pondera cada par pelo quão errado o modelo está no momento: pares já classificados corretamente por uma ampla margem quase não contribuem, enquanto pares classificados de forma incorreta contribuem mais. O artigo relata que, sem essa ponderação, o modelo pode degenerar.

Um par, uma perda
  1. As probabilidades logarítmicas do modelo: escolhido −42,0, rejeitado −51,0. As do modelo de referência: escolhido −45,0, rejeitado −50,0.
  2. Razões logarítmicas em relação à referência: escolhido −42,0 − (−45,0) = +3,0; rejeitado −51,0 − (−50,0) = −1,0.
  3. Margem: 3,0 − (−1,0) = 4,0. Multiplicado por β = 0,1 resulta em 0,4. Dividido da mesma forma, as recompensas implícitas são +0,30 para o escolhido e −0,10 para o rejeitado.
  4. σ(0,4) ≈ 0,60, portanto a perda é −ln 0,60 ≈ 0,51, uma redução em relação a 0,69 no início, quando ambas as razões logarítmicas eram 0.

O que isso significa na prática

  • Mais barato e mais estável que o RLHF. Não há modelo de recompensa para treinar e nenhum texto é gerado durante o treinamento. Ele é executado como um trabalho supervisionado em pares, com uma cópia congelada do modelo inicial ao lado.
  • Offline. Ele aprende a partir de um conjunto fixo de pares. As respostas não precisam vir do modelo que está sendo treinado, mas os pares próximos ao que ele realmente escreve são os que mais ensinam.
  • Relativo, não absoluto. Ele amplia a lacuna entre as respostas. Pesquisas descobriram que a própria probabilidade da resposta escolhida frequentemente cai durante o treinamento (“deslocamento de probabilidade”), desde que a da rejeitada caia mais rápido.
  • Não pode adicionar conhecimento. O DPO reclassifica o comportamento que o modelo já pode produzir. Se nenhuma das respostas for algo que o modelo poderia escrever, há pouco a aprender, e é por isso que ele normalmente segue o ajuste fino supervisionado.

Formatos de dados

Os provedores nomeiam os campos de forma diferente, mas todo formato armazena as mesmas três coisas: o prompt, a melhor resposta e a pior resposta. Um formato hospedado:

Formato hospedado: input, preferred_output, non_preferred_output
{
  "input": {"messages": [
    {"role": "system", "content": "You are Scalata's support assistant."},
    {"role": "user", "content": "How do I reset my password?"}
  ]},
  "preferred_output": [
    {"role": "assistant", "content": "Open Settings → Security and choose Reset password. You'll get an email link valid for 30 minutes."}
  ],
  "non_preferred_output": [
    {"role": "assistant", "content": "Please contact support to reset your password."}
  ]
}

Treinadores de código aberto, como o Hugging Face TRL, usam prompt, chosen e rejected, e aceitam toda a conversa anterior como o prompt:

Formato de código aberto: prompt, chosen, rejected
{"prompt": [
   {"role": "user", "content": "I uploaded a CSV yesterday."},
   {"role": "assistant", "content": "Thanks — it's in Local Storage."},
   {"role": "user", "content": "Can I use it in a dashboard?"}],
 "chosen":   [{"role": "assistant", "content": "Yes: open Dashboards → Add widget → pick the file."}],
 "rejected": [{"role": "assistant", "content": "Maybe."}]}

Algumas implementações hospedadas treinam em apenas um turno, de modo que os turnos anteriores devem ser incorporados à última mensagem do usuário como contexto. Outras mantêm a conversa como mensagens separadas.

Erros comuns

  • Executar o DPO em um modelo base simples que não sabe nada sobre o seu produto. Ambas as respostas em cada par costumam ser igualmente desinformadas, portanto, há pouco sinal.
  • “Confiante, mas errado”: com poucos pares, o modelo copia o estilo das respostas preferidas (nomes específicos, etapas numeradas, maior extensão) sem o conhecimento por trás delas, e inventa detalhes.
  • Pares cujas respostas diferem apenas na formulação. O modelo aprende ruído ou aprende que a extensão é o que você prefere.
  • Tratar uma queda na perda do DPO como prova de respostas melhores. Isso mostra que o modelo separa seus pares; apenas uma avaliação mostra se as respostas melhoraram.
  • Muitas épocas ou uma taxa de aprendizado muito alta. O ajuste de preferência geralmente precisa de 1 a 2 épocas e uma taxa de aprendizado menor do que o treinamento supervisionado.

Referências e leitura complementar

Fontes externas abrem em uma nova aba.

  1. 01Direct Preference Optimization: Your Language Model is Secretly a Reward ModelRafailov et al., 2023 · arXiv · arxiv.orgO artigo original: a derivação do RLHF, a perda e os experimentos contra o PPO.
  2. 02Training language models to follow instructions with human feedbackOuyang et al., 2022 · arXiv · arxiv.orgInstructGPT: o pipeline RLHF de três estágios que o DPO simplifica.
  3. 03Deep reinforcement learning from human preferencesChristiano et al., 2017 · arXiv · arxiv.orgO artigo que introduziu o aprendizado de uma recompensa a partir de comparações humanas, primeiro para jogos e robótica.
  4. 04Bradley–Terry modelWikipedia · en.wikipedia.orgO modelo estatístico de comparações em pares por trás tanto dos modelos de recompensa quanto do DPO.
  5. 05DPO TrainerHugging Face TRL docs · huggingface.coUma implementação de código aberto amplamente utilizada: formato de dados, variantes de perda e métricas registradas.

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