Ultralytics YOLO27:
Licenciar o YOLO
Voltar ao glossário da Ultralytics

Direct Preference Optimization

A Otimização Direta por Preferências (DPO) alinha um modelo de linguagem a pares de respostas preferidas e rejeitadas com uma única função de perda, sem modelo de recompensa ou RL.

A Otimização Direta de Preferências (DPO) é um método para alinhar um modelo de linguagem de grande porte (LLM) às preferências humanas, treinando-o diretamente com pares de respostas — uma preferida e outra rejeitada — por meio de uma única função de perda no estilo de classificação. Ela alcança o objetivo do aprendizado por reforço com feedback humano (RLHF) sem um modelo de recompensa separado nem um ciclo de aprendizado por reforço que gere amostras a partir do modelo durante o treinamento. Rafael Rafailov, Archit Sharma, Eric Mitchell, Stefano Ermon, Christopher Manning e Chelsea Finn, da Universidade de Stanford, introduziram o método em 2023 no artigo Otimização direta de preferências: seu modelo de linguagem é secretamente um modelo de recompensa, apresentado no NeurIPS 2023. A ideia central é que o modelo de linguagem em treinamento define sua própria recompensa implícita, de modo que o modelo de recompensa e a política sejam ajustados em uma única etapa.

Como funciona a DPO#

Cada exemplo de treinamento é um prompt com uma resposta escolhida e outra rejeitada, rotuladas por pessoas ou por outro modelo. O treinamento começa com um modelo que já passou por ajuste fino supervisionado, geralmente um ajuste de instruções, e mantém uma cópia congelada desse modelo como referência. Para cada resposta, DPO compara a log-probabilidade atribuída pelo modelo em treinamento com a log-probabilidade atribuída pelo modelo de referência. A recompensa implícita de uma resposta é β vezes o logaritmo dessa razão, e a perda é o logaritmo negativo da sigmoide aplicada à diferença entre a recompensa da resposta escolhida e a da resposta rejeitada. Minimizar essa perda aumenta a probabilidade da resposta escolhida em relação à da resposta rejeitada, com atualizações maiores para os pares que o modelo ainda ordena incorretamente.

O coeficiente β desempenha o papel da penalização KL no RLHF. Rafailov et al. mostraram que a maximização de recompensa com restrição KL usada no RLHF tem uma política ótima de forma fechada — as probabilidades de referência reponderadas pela exponencial da recompensa dividida por β — e reorganizaram essa fórmula para expressar a recompensa por meio da própria política. Quanto menor for β, mais o treinamento pode afastar o modelo da referência.

Este exemplo em PyTorch executa dez passos de DPO no GPT-2 do Transformers da Hugging Face, usando dois pares de preferências de atendimento ao cliente, e depois verifica um terceiro par que o modelo nunca viu durante o treinamento:

import copy

import torch
import torch.nn.functional as F
from transformers import AutoModelForCausalLM, AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained("gpt2")
policy = AutoModelForCausalLM.from_pretrained("gpt2")
reference = copy.deepcopy(policy).requires_grad_(False)  # frozen copy of the starting model
optimizer = torch.optim.Adam(policy.parameters(), lr=1e-5)

# Preference pairs: (prompt, chosen reply, rejected reply)
train = [
    ("My order arrived broken.", " Sorry about that, we will send a replacement today.", " That is not our problem."),
    ("I was charged twice.", " Sorry for the trouble, we have refunded the extra charge.", " Check your bank again."),
]
held_out = ("My package is a week late.", " Sorry for the delay, we will track it down for you.", " Be more patient.")


def log_prob(model, prompt, reply):
    """Sum of the log-probabilities the model gives the reply tokens after the prompt."""
    ids = tokenizer(f"Customer: {prompt}\nAgent:{reply}", return_tensors="pt").input_ids
    token_logps = model(ids).logits[0, :-1].log_softmax(-1).gather(1, ids[0, 1:, None])
    return token_logps[-len(tokenizer(reply).input_ids) :].sum()


def margin(prompt, chosen, rejected):
    """Policy-to-reference log-ratio of the chosen reply minus that of the rejected reply."""
    chosen_ratio = log_prob(policy, prompt, chosen) - log_prob(reference, prompt, chosen)
    return chosen_ratio - (log_prob(policy, prompt, rejected) - log_prob(reference, prompt, rejected))


for step in range(10):
    loss = sum(-F.logsigmoid(0.1 * margin(*pair)) for pair in train) / len(train)  # DPO loss, beta = 0.1
    if step in {0, 9}:
        print(f"Step {step}: training loss {loss.item():.3f}")
    optimizer.zero_grad()
    loss.backward()
    optimizer.step()

with torch.no_grad():
    print(f"Held-out margin: {margin(*held_out).item():+.1f}")

A perda de treinamento impressa no passo 0 é 0.693, ou seja, ln 2, porque a política ainda é igual à referência e ambas as respostas têm recompensa implícita zero. No passo 9, a perda é 0.047, e a margem no exemplo não usado no treinamento é +7.8: diante de uma reclamação que nunca tinha visto, o modelo aumentou a log-probabilidade da resposta apologética em 7,8 a mais do que a da resposta desdenhosa, em relação à referência.

DPO e RLHF#

O RLHF clássico treina um modelo de recompensa com os pares de preferências e depois otimiza o modelo de linguagem com base nele usando a Otimização de Política Proximal (PPO), que precisa de novas amostras do modelo a cada passo e mantém uma política, um modelo de valor, um modelo de recompensa e um modelo de referência na memória. A DPO precisa apenas da política e da referência e treina com um conjunto de dados fixo, como na aprendizagem supervisionada comum, por isso é mais simples de ajustar e muito mais barata de executar. Nas experiências originais, a DPO superou a PPO no controle do sentimento de resenhas de filmes geradas para um determinado orçamento KL. Na tarefa de resumo do Reddit TL;DR, o GPT-4 avaliou os resumos da DPO como melhores do que as referências escritas por humanos em 61% das vezes, com temperatura de amostragem 0, contra 57% da PPO na sua melhor temperatura. Nos dados de diálogo útil e inofensivo da Anthropic, a DPO foi o único método computacionalmente eficiente testado que superou as respostas preferidas no conjunto de dados.

A desvantagem é que a DPO aprende apenas com os pares que recebe. Métodos de RL online, como a Otimização de Política Relativa ao Grupo (GRPO), pontuam novas amostras do modelo atual durante o treinamento, razão pela qual dominam a aprendizagem por reforço com recompensas verificáveis (RLVR) em matemática e código, onde um verificador pode avaliar cada nova resposta. As preferências também podem ser rotuladas por um modelo de IA guiado por princípios escritos, como na IA Constitucional, e a DPO treina com esses rótulos da mesma maneira.

Onde a DPO é usada#

A DPO tornou-se uma etapa padrão de pós-treinamento para chatbots de pesos abertos. O Zephyr-7B-β da Hugging Face aplicou-a aos dados UltraFeedback classificados por IA, e os modelos Llama 3 da Meta foram alinhados com várias rodadas de ajuste fino supervisionado seguidas de DPO. A biblioteca TRL oferece um treinador de DPO pronto a usar. A interface de LLM da Ultralytics chama modelos por meio de qualquer endpoint compatível com OpenAI, incluindo servidores locais, por isso um modelo aberto alinhado com DPO pode gerar o texto de uma pipeline de visão Ultralytics YOLO26.

O método também se aplica a imagens. O Diffusion-DPO reescreve a perda para modelos de difusão e ajustou o modelo base Stable Diffusion XL com 851.000 preferências pareadas e recolhidas por crowdsourcing do conjunto de dados Pick-a-Pic, melhorando o alinhamento com prompts e o apelo visual na geração de texto para imagem. Para modelos de visão e linguagem (VLMs), o RLHF-V recolheu correções humanas ao nível de segmentos de descrições de imagens alucinadas e treinou com uma variante densa de DPO, reduzindo em 34,8% a taxa de alucinações do modelo base com apenas 1.400 amostras anotadas.

Variantes de DPO#

  • IPO (Otimização de Preferências por Identidade): Substitui o log-sigmoide por uma perda quadrática que visa uma margem fixa, impedindo que as recompensas implícitas cresçam sem limite e que haja sobreajuste quando a mesma resposta vence sempre.
  • KTO (Otimização de Kahneman-Tversky): Aprende com respostas individuais rotuladas como desejáveis ou indesejáveis, sem precisar de comparações pareadas.
  • ORPO (Otimização de Preferências por Razão de Chances): Elimina o modelo de referência e acrescenta uma penalização pela razão de chances à perda do ajuste fino supervisionado, combinando o ajuste a instruções e o alinhamento de preferências numa só etapa.
  • SimPO (Otimização Simples de Preferências): Usa a log-probabilidade média de uma resposta, normalizada pelo comprimento, como recompensa, elimina o modelo de referência e exige uma margem-alvo entre as recompensas das respostas escolhida e rejeitada.

Explore solutions

Visão computacional no desporto

Visão computacional no desporto

Descubra como o Ultralytics YOLO impulsiona a visão computacional no esporte com rastreamento de jogadores e bolas, análise de desempenho, insights para treinadores e reabilitação de atletas.
Saiba mais
Visão computacional para imagens aéreas

Visão computacional para imagens aéreas

Transforma imagens aéreas e de drones em informações em tempo real para agricultura, aquicultura, monitoramento ambiental, conservação e análise geoespacial com o Ultralytics YOLO.
Saiba mais
Visão computacional no setor aeroespacial

Visão computacional no setor aeroespacial

Leva a IA de visão ao monitoramento aéreo com modelos Ultralytics YOLO. Impulsiona drones, fluxos de trabalho aeroespaciais, conservação ambiental e setores geoespaciais com soluções de visão computacional.
Saiba mais
Visão computacional na segurança

Visão computacional na segurança

Protege todas as instalações com os modelos Ultralytics YOLO. A IA visual permite monitorizar perímetros, detetar ameaças, reconhecer matrículas e melhorar a segurança no local de trabalho.
Saiba mais
Visão computacional na robótica

Visão computacional na robótica

Potencia máquinas mais inteligentes com os modelos Ultralytics YOLO. A IA visual na robótica permite navegação autónoma, perceção, rastreamento de objetos e controlo em tempo real.
Saiba mais
Visão computacional na logística

Visão computacional na logística

Otimize a logística com os modelos Ultralytics YOLO. A IA de visão permite inspecionar pacotes, fazer triagem, rastrear veículos e monitorar a segurança em tempo real nos armazéns.
Saiba mais
Visão computacional no varejo

Visão computacional no varejo

Reinvente o varejo com os modelos Ultralytics YOLO. A IA de visão permite rastrear o estoque, monitorar prateleiras, gerenciar filas e obter insights mais inteligentes sobre clientes.
Saiba mais
Visão computacional na área da saúde

Visão computacional na área da saúde

Desenvolva soluções de saúde com os modelos Ultralytics YOLO. A IA de visão na área da saúde permite obter imagens médicas mais rapidamente, diagnósticos mais inteligentes e monitoramento de pacientes.
Saiba mais
Visão computacional na manufatura

Visão computacional na manufatura

Otimize a manufatura com modelos Ultralytics YOLO. A IA visual impulsiona o controle de qualidade, a detecção de defeitos, a conformidade com o uso de EPI e a automação da linha de montagem.
Saiba mais
Visão computacional no setor automotivo

Visão computacional no setor automotivo

Aplique visão computacional no setor automotivo com modelos Ultralytics YOLO. A IA visual aumenta a segurança viária, aprimora a assistência ao condutor e viabiliza a automação de veículos para estradas mais inteligentes.
Saiba mais
Visão computacional na agricultura

Visão computacional na agricultura

Leve a IA de visão à agricultura inteligente com os modelos Ultralytics YOLO. Aprimore o monitoramento de plantações, o rastreamento de animais e a agricultura de precisão para obter safras maiores e mais inteligentes.
Saiba mais
Visão computacional no desporto

Visão computacional no desporto

Descubra como o Ultralytics YOLO impulsiona a visão computacional no esporte com rastreamento de jogadores e bolas, análise de desempenho, insights para treinadores e reabilitação de atletas.
Saiba mais
Visão computacional para imagens aéreas

Visão computacional para imagens aéreas

Transforma imagens aéreas e de drones em informações em tempo real para agricultura, aquicultura, monitoramento ambiental, conservação e análise geoespacial com o Ultralytics YOLO.
Saiba mais
Visão computacional no setor aeroespacial

Visão computacional no setor aeroespacial

Leva a IA de visão ao monitoramento aéreo com modelos Ultralytics YOLO. Impulsiona drones, fluxos de trabalho aeroespaciais, conservação ambiental e setores geoespaciais com soluções de visão computacional.
Saiba mais
Visão computacional na segurança

Visão computacional na segurança

Protege todas as instalações com os modelos Ultralytics YOLO. A IA visual permite monitorizar perímetros, detetar ameaças, reconhecer matrículas e melhorar a segurança no local de trabalho.
Saiba mais
Visão computacional na robótica

Visão computacional na robótica

Potencia máquinas mais inteligentes com os modelos Ultralytics YOLO. A IA visual na robótica permite navegação autónoma, perceção, rastreamento de objetos e controlo em tempo real.
Saiba mais
Visão computacional na logística

Visão computacional na logística

Otimize a logística com os modelos Ultralytics YOLO. A IA de visão permite inspecionar pacotes, fazer triagem, rastrear veículos e monitorar a segurança em tempo real nos armazéns.
Saiba mais
Visão computacional no varejo

Visão computacional no varejo

Reinvente o varejo com os modelos Ultralytics YOLO. A IA de visão permite rastrear o estoque, monitorar prateleiras, gerenciar filas e obter insights mais inteligentes sobre clientes.
Saiba mais
Visão computacional na área da saúde

Visão computacional na área da saúde

Desenvolva soluções de saúde com os modelos Ultralytics YOLO. A IA de visão na área da saúde permite obter imagens médicas mais rapidamente, diagnósticos mais inteligentes e monitoramento de pacientes.
Saiba mais
Visão computacional na manufatura

Visão computacional na manufatura

Otimize a manufatura com modelos Ultralytics YOLO. A IA visual impulsiona o controle de qualidade, a detecção de defeitos, a conformidade com o uso de EPI e a automação da linha de montagem.
Saiba mais
Visão computacional no setor automotivo

Visão computacional no setor automotivo

Aplique visão computacional no setor automotivo com modelos Ultralytics YOLO. A IA visual aumenta a segurança viária, aprimora a assistência ao condutor e viabiliza a automação de veículos para estradas mais inteligentes.
Saiba mais
Visão computacional na agricultura

Visão computacional na agricultura

Leve a IA de visão à agricultura inteligente com os modelos Ultralytics YOLO. Aprimore o monitoramento de plantações, o rastreamento de animais e a agricultura de precisão para obter safras maiores e mais inteligentes.
Saiba mais
Visão computacional no desporto

Visão computacional no desporto

Descubra como o Ultralytics YOLO impulsiona a visão computacional no esporte com rastreamento de jogadores e bolas, análise de desempenho, insights para treinadores e reabilitação de atletas.
Saiba mais
Visão computacional para imagens aéreas

Visão computacional para imagens aéreas

Transforma imagens aéreas e de drones em informações em tempo real para agricultura, aquicultura, monitoramento ambiental, conservação e análise geoespacial com o Ultralytics YOLO.
Saiba mais
Visão computacional no setor aeroespacial

Visão computacional no setor aeroespacial

Leva a IA de visão ao monitoramento aéreo com modelos Ultralytics YOLO. Impulsiona drones, fluxos de trabalho aeroespaciais, conservação ambiental e setores geoespaciais com soluções de visão computacional.
Saiba mais
Visão computacional na segurança

Visão computacional na segurança

Protege todas as instalações com os modelos Ultralytics YOLO. A IA visual permite monitorizar perímetros, detetar ameaças, reconhecer matrículas e melhorar a segurança no local de trabalho.
Saiba mais
Visão computacional na robótica

Visão computacional na robótica

Potencia máquinas mais inteligentes com os modelos Ultralytics YOLO. A IA visual na robótica permite navegação autónoma, perceção, rastreamento de objetos e controlo em tempo real.
Saiba mais
Visão computacional na logística

Visão computacional na logística

Otimize a logística com os modelos Ultralytics YOLO. A IA de visão permite inspecionar pacotes, fazer triagem, rastrear veículos e monitorar a segurança em tempo real nos armazéns.
Saiba mais
Visão computacional no varejo

Visão computacional no varejo

Reinvente o varejo com os modelos Ultralytics YOLO. A IA de visão permite rastrear o estoque, monitorar prateleiras, gerenciar filas e obter insights mais inteligentes sobre clientes.
Saiba mais
Visão computacional na área da saúde

Visão computacional na área da saúde

Desenvolva soluções de saúde com os modelos Ultralytics YOLO. A IA de visão na área da saúde permite obter imagens médicas mais rapidamente, diagnósticos mais inteligentes e monitoramento de pacientes.
Saiba mais
Visão computacional na manufatura

Visão computacional na manufatura

Otimize a manufatura com modelos Ultralytics YOLO. A IA visual impulsiona o controle de qualidade, a detecção de defeitos, a conformidade com o uso de EPI e a automação da linha de montagem.
Saiba mais
Visão computacional no setor automotivo

Visão computacional no setor automotivo

Aplique visão computacional no setor automotivo com modelos Ultralytics YOLO. A IA visual aumenta a segurança viária, aprimora a assistência ao condutor e viabiliza a automação de veículos para estradas mais inteligentes.
Saiba mais
Visão computacional na agricultura

Visão computacional na agricultura

Leve a IA de visão à agricultura inteligente com os modelos Ultralytics YOLO. Aprimore o monitoramento de plantações, o rastreamento de animais e a agricultura de precisão para obter safras maiores e mais inteligentes.
Saiba mais

Vamos construir juntos o futuro da IA!

Comece sua jornada rumo ao futuro do aprendizado de máquina