Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Visualización actual:Versión - Cambio a la versión del nuevo portal de Foundry
La optimización de preferencias directas (DPO) es una técnica de alineación para los modelos de lenguaje grandes, que se usan para ajustar los pesos del modelo en función de las preferencias humanas. Difiere del aprendizaje de refuerzo de los comentarios humanos (RLHF) en que no requiere ajustar un modelo de recompensa y usa preferencias de datos binarios más simples para el entrenamiento. Es más liviano y rápido en términos computacionales que RLHF, al mismo tiempo que es igualmente eficaz en la alineación.
¿Por qué es útil el DPO?
El DPO es especialmente útil en escenarios en los que no hay respuesta correcta clara y elementos subjetivas como tono, estilo o preferencias de contenido específicas son importantes. Este enfoque también permite que el modelo aprenda de ejemplos positivos (lo que se considera correcto o ideal) y ejemplos negativos (lo que es menos deseado o incorrecto).
DPO facilita la generación de conjuntos de datos de entrenamiento de alta calidad. Aunque muchas organizaciones tienen dificultades para generar conjuntos de datos suficientemente grandes para el ajuste fino supervisado, a menudo tienen datos de preferencias ya recopilados en función de los registros de usuario, las pruebas A/B o los esfuerzos de anotación manual más pequeños.
Formato de conjunto de datos de optimización de preferencias directas
Los archivos de optimización directa de preferencias tienen un formato diferente con respecto al ajuste fino supervisado. Proporcione una "conversación" que incluya el mensaje del sistema y el mensaje inicial del usuario, y luego proporcione los "resultados" con los datos de preferencias emparejados. Solo puedes proporcionar dos finalizaciones.
El conjunto de datos usa tres campos de nivel superior:
| Campo | Obligatorio | Descripción |
|---|---|---|
input |
Sí | Contiene el mensaje del sistema y el mensaje de usuario inicial |
preferred_output |
Sí | Debe contener al menos un mensaje de asistente (roles: asistente, solo herramienta) |
non_preferred_output |
Sí | Debe contener al menos un mensaje de asistente (roles: asistente, solo herramienta) |
{
"input": {
"messages": [{"role": "system", "content": ...}],
"tools": [...],
"parallel_tool_calls": true
},
"preferred_output": [{"role": "assistant", "content": ...}],
"non_preferred_output": [{"role": "assistant", "content": ...}]
}
Los conjuntos de datos de entrenamiento deben estar en 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"}]}
}
Compatibilidad con el modelo de optimización de preferencias directas
Los modelos siguientes admiten la optimización directa de preferencias:
| Modelo | Soporte de DPO | Disponibilidad de regiones |
|---|---|---|
gpt-4o-2024-08-06 |
Sí | Vea los modelos de ajuste fino. |
gpt-4.1-2025-04-14 |
Sí | Vea los modelos de ajuste fino. |
gpt-4.1-mini-2025-04-14 |
Sí | Vea los modelos de ajuste fino. |
Puede usar la optimización de preferencias con modelos base y con modelos ya optimizados mediante el ajuste fino supervisado, siempre y cuando sean un modelo y una versión compatibles.
Cómo usar el ajuste fino de la optimización de preferencias directas
- Prepare
jsonllos conjuntos de datos en el formato de preferencia. - Seleccione el modelo y, a continuación, seleccione el método de personalización Optimización de preferencias directas.
- Carga de conjuntos de datos: entrenamiento y validación. Versión preliminar según sea necesario.
- Seleccione hiperparámetros, se recomiendan los valores predeterminados para la experimentación inicial.
- Revise las selecciones y cree un trabajo de ajuste preciso.
Optimización de preferencias directas: 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 }}}'
Pasos siguientes
- Explore las capacidades de ajuste fino en el tutorial de ajuste fino de Azure OpenAI.
- Revise la disponibilidad regional del modelo de ajuste fino.
- Obtenga más información sobre cuotas de Azure OpenAI