Direct Preference Optimization (DPO) (PT)

From Systems analysis wiki
Jump to navigation Jump to search

Direct Preference Optimization (DPO) — é um método para alinhar grandes modelos de linguagem (LLMs) com as preferências humanas, proposto como uma alternativa mais simples e estável à Aprendizagem por Reforço com Feedback Humano (RLHF). O método foi apresentado em 2023 por um grupo de pesquisadores da Universidade de Stanford, liderado por Rafael Rafailov[1].

A principal diferença do DPO é que ele otimiza diretamente o modelo de linguagem para corresponder às preferências humanas, evitando o treinamento explícito de um modelo de recompensa (reward model) separado e a complexa etapa de aprendizagem por reforço (RL). Isso torna o processo de ajuste fino de LLMs significativamente mais simples, rápido e estável[2].

Contexto: Limitações do RLHF

O método padrão de Reinforcement Learning from Human Feedback (RLHF) consiste em três etapas principais:

  1. Ajuste Fino Supervisionado (SFT): Um ajuste fino básico do modelo com exemplos de alta qualidade.
  2. Treinamento do modelo de recompensa: A criação de um modelo separado que aprende a atribuir uma "pontuação" às respostas com base em comparações pareadas fornecidas por humanos (por exemplo, a resposta A é melhor que a resposta B).
  3. Otimização da política com RL: O ajuste fino do modelo principal usando algoritmos de RL (por exemplo, PPO) para que ele gere respostas que maximizem a pontuação do modelo de recompensa.

Apesar de sua eficácia, o RLHF é um processo complexo, caro e instável. Ele está sujeito a problemas como o reward hacking (quando o modelo "engana" o modelo de recompensa) e exige um ajuste cuidadoso de múltiplos hiperparâmetros[1]. O DPO foi desenvolvido para superar essas limitações.

Princípio de Funcionamento do DPO

O método DPO substitui o pipeline de múltiplas etapas do RLHF por uma única etapa de treinamento, que pode ser vista como um ajuste fino supervisionado.

  1. Coleta de dados de preferência. Assim como no RLHF, é coletado um conjunto de dados onde, para cada prompt `x`, existem duas respostas: uma preferida (`y_w`, winning) e uma rejeitada (`y_l`, losing).
  2. Otimização direta. Em vez de treinar um modelo de recompensa, o DPO utiliza esses dados diretamente para atualizar o próprio modelo de linguagem. O objetivo da otimização é aumentar a probabilidade de gerar a resposta preferida `y_w` e, ao mesmo tempo, diminuir a probabilidade de gerar a resposta rejeitada `y_l`.

Matematicamente, isso se resume a minimizar uma função de perda baseada na regressão logística aplicada à diferença das probabilidades logarítmicas das respostas. Para que o modelo não "esqueça" seu conhecimento original, o DPO, assim como o RLHF, utiliza um modelo de referência (reference model, geralmente a versão SFT) para regularização, evitando um desvio muito grande da distribuição original de respostas[2].

Vantagens em Comparação com o RLHF

  • Simplicidade e estabilidade: O DPO elimina a necessidade de treinar um modelo de recompensa separado e a configuração complexa do RL. O processo se torna mais simples, previsível e menos propenso a erros[3].
  • Eficiência e velocidade: A exclusão de duas etapas reduz significativamente os custos computacionais (horas de GPU) e o tempo necessário para ajustar o modelo. Segundo algumas estimativas, o DPO é 50-60% mais econômico que o RLHF[4].
  • Qualidade dos resultados: Experimentos mostraram que o DPO não é inferior ao RLHF em qualidade e, em algumas tarefas, como o controle do tom da resposta, chega a superá-lo. Modelos treinados com DPO demonstram melhor alinhamento com as preferências humanas[1].
  • Ausência de degradação das habilidades básicas: O ajuste fino com DPO afeta minimamente as capacidades gerais do modelo (por exemplo, conhecimento factual ou lógica), ao contrário do RLHF, que às vezes pode piorar as métricas básicas[5].

Aplicação e Adoção

Graças à sua eficiência e simplicidade, o DPO rapidamente ganhou ampla adoção. Foi implementado nas principais bibliotecas de código aberto, como a Hugging Face TRL e a OpenRLHF.

Muitos modelos abertos de sucesso foram ajustados com DPO, incluindo o Zephyr-7B e o TÜLU 2. Esses modelos mostraram alto desempenho em benchmarks de avaliação da qualidade das respostas, confirmando a eficácia do DPO para modelos de grande escala[5].

Líderes da indústria também integraram o DPO em suas plataformas. Por exemplo, a Microsoft adicionou suporte ao ajuste fino com DPO em seu serviço Azure OpenAI, permitindo que os usuários personalizem modelos, incluindo o GPT-4, com seus próprios dados de preferência[6].

Limitações

Apesar de suas vantagens, o DPO herda algumas limitações da própria abordagem de treinamento baseada em preferências:

  • Sensibilidade aos dados: A qualidade e a diversidade dos dados de preferência coletados são cruciais. Se os dados forem tendenciosos (por exemplo, contiverem apenas um idioma ou estilo), o modelo pode sofrer overfitting e ter seu desempenho prejudicado em outras áreas[7].
  • Treinamento estático: Assim como o RLHF, o DPO é treinado em um conjunto de dados estático e não prevê interação dinâmica com o ambiente. Este método é adequado para alinhamento em uma única etapa, mas não para tarefas que exigem aprendizado por meio de ações sequenciais.

Literatura

  • Rafailov, R. et al. (2023). Direct Preference Optimization: Your Language Model is Secretly a Reward Model. arXiv:2305.18290.
  • Hong, J.; Lee, N.; Thorne, J. (2024). ORPO: Monolithic Preference Optimization without Reference Model. arXiv:2403.07691.
  • Sun, L. et al. (2025). BPO: Revisiting Preference Modeling in Direct Preference Optimization. arXiv:2506.03557.
  • Yin, Y. et al. (2024). Self-Augmented Preference Optimization: Off-Policy Paradigms for Language Model Alignment. arXiv:2405.20830.
  • Wu, Y. et al. (2024). Self-Play Preference Optimization for Language Model Alignment. arXiv:2405.00675.
  • Li, P. et al. (2024). ROPO: Robust Preference Optimization for Large Language Models. arXiv:2404.04102.
  • Tunstall, L. et al. (2023). Zephyr: Direct Distillation of LM Alignment. arXiv:2310.16944.
  • Wu, F. et al. (2023). Diffusion-DPO: Diffusion Model Alignment Using Direct Preference Optimization. arXiv:2311.12908.
  • Lee, H. et al. (2023). RLAIF vs. RLHF: Scaling Reinforcement Learning from Human Feedback with AI Feedback. arXiv:2309.00267.
  • Rafailov, R.; Sharma, A.; Mitchell, E.; Manning, C. D.; Finn, C. (2024). Direct Preference Optimization (v3): Enhanced Experiments and Analysis. arXiv:2305.18290v3.

Notas

  1. 1.0 1.1 1.2 Rafailov, R., et al. «Direct Preference Optimization: Your Language Model is Secretly a Reward Model». arXiv:2305.18290. [1]
  2. 2.0 2.1 «Simplifying Alignment: From RLHF to Direct Preference Optimization (DPO)». Hugging Face Blog. [2]
  3. «What is direct preference optimization (DPO)?». SuperAnnotate Blog. [3]
  4. «RLHF vs DPO: A Closer Look into the Process and Methodology». Arbisoft Blog. [4]
  5. 5.0 5.1 «RLHF without RL - Direct Preference Optimization». ICLR Blogposts 2024. [5]
  6. «Direct preference optimization». Azure OpenAI | Microsoft Learn. [6]
  7. «Direct Preference Optimization (DPO): A Lightweight Counterpart to RLHF». Toloka AI Blog. [7]