Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Atualmente a ver:versão do portal Foundry (clássica) - Trocar para a versão do novo portal Foundry
A otimização direta por preferências (DPO) é uma técnica de alinhamento para grandes modelos de linguagem, utilizada para ajustar os pesos dos modelos com base nas preferências humanas. Difere da aprendizagem por reforço a partir de feedback humano (RLHF) porque não requer ajustar um modelo de recompensa e utiliza preferências binárias de dados mais simples para treino. É computacionalmente mais leve e mais rápido do que o RLHF, sendo igualmente eficaz no alinhamento.
Porque é que a DPO é útil?
A DPO é especialmente útil em cenários onde não há uma resposta correta e clara, e elementos subjetivos como tom, estilo ou preferências específicas de conteúdo são importantes. Esta abordagem também permite que o modelo aprenda tanto com exemplos positivos (o que é considerado correto ou ideal) como com exemplos negativos (o que é menos desejado ou incorreto).
O DPO facilita a geração de conjuntos de dados de treino de alta qualidade. Embora muitas organizações tenham dificuldade em gerar conjuntos de dados suficientemente grandes para ajuste fino supervisionado, frequentemente já têm dados de preferência recolhidos com base em registos de utilizadores, testes A/B ou pequenos esforços manuais de anotação.
Formato de conjunto de dados de otimização por preferência direta
Os ficheiros de otimização direta por preferência têm um formato diferente do ajuste fino supervisionado. Fornece uma "conversa" contendo a mensagem do sistema e a mensagem inicial do utilizador, e depois "complementos" com dados de preferência associados. Só podes fornecer duas conclusãos.
O conjunto de dados utiliza três campos de topo:
| Campo | Obrigatório | Descrição |
|---|---|---|
input |
Sim | Contém a mensagem do sistema e a mensagem inicial do utilizador |
preferred_output |
Sim | Deve conter pelo menos uma mensagem de assistente (funções: assistente, apenas ferramenta) |
non_preferred_output |
Sim | Deve conter pelo menos uma mensagem de assistente (funções: assistente, apenas ferramenta) |
{
"input": {
"messages": [{"role": "system", "content": ...}],
"tools": [...],
"parallel_tool_calls": true
},
"preferred_output": [{"role": "assistant", "content": ...}],
"non_preferred_output": [{"role": "assistant", "content": ...}]
}
Os conjuntos de dados de treino devem estar no jsonl formato:
{{"input": {"messages": [{"role": "system", "content": "You are a chatbot assistant. Given a user question with multiple choice answers, provide the correct answer."}, {"role": "user", "content": "Question: Janette conducts an investigation to see which foods make her feel more fatigued. She eats one of four different foods each day at the same time for four days and then records how she feels. She asks her friend Carmen to do the same investigation to see if she gets similar results. Which would make the investigation most difficult to replicate? Answer choices: A: measuring the amount of fatigue, B: making sure the same foods are eaten, C: recording observations in the same chart, D: making sure the foods are at the same temperature"}]}, "preferred_output": [{"role": "assistant", "content": "A: Measuring The Amount Of Fatigue"}], "non_preferred_output": [{"role": "assistant", "content": "D: making sure the foods are at the same temperature"}]}
}
Suporte ao modelo de otimização direta de preferências
Os seguintes modelos suportam o ajuste fino de otimização direta por preferência:
| Modelo | Apoio à DPO | Disponibilidade regional |
|---|---|---|
gpt-4o-2024-08-06 |
Sim | Ver modelos de afinação |
gpt-4.1-2025-04-14 |
Sim | Ver modelos de afinação |
gpt-4.1-mini-2025-04-14 |
Sim | Ver modelos de afinação |
Pode-se usar o ajuste fino por preferência com modelos base e com modelos já ajustados com ajuste fino supervisionado, desde que sejam modelos e versões suportados.
Como usar otimização direta de preferências finas
- Prepara
jsonlconjuntos de dados no formato de preferências. - Selecione o modelo e, em seguida, escolha o método de personalização Otimização Direta por Preferência.
- Carregar conjuntos de dados – treino e validação. Pré-visualiza conforme necessário.
- Selecione hiperparâmetros, recomendam-se os padrões para a experimentação inicial.
- Revise as seleções e faça uma tarefa de ajuste fino.
Otimização direta de preferências - API REST
curl -X POST $AZURE_OPENAI_ENDPOINT/openai/v1/fine_tuning/jobs'
-H "api-key: $AZURE_OPENAI_API_KEY"
-H 'Content-Type: application/json'
-H 'task_type: chat'
--data '{ "model": "gpt-4.1-mini-2025-04-14", "training_file": "file-d02c607351994d29987aece550ac81c0", "validation_file": "file-d02c607351994d29987aece550ac81c0", "prompt_loss_weight": 0.1, "suffix": "Pause_Resume", "method":{ "type":"dpo", "dpo":{ "beta":0.1, "l2_multiplier":0.1 }}}'
Próximos passos
- Explore as capacidades de ajuste fino no tutorial de ajuste fino do Azure OpenAI.
- Revise o ajuste fino da disponibilidade regional do modelo.
- Saiba mais sobre as quotas Azure OpenAI