Direkte Präferenzoptimierung (Vorschau) (klassisch)

Zurzeit wird folgendes angezeigt:Foundry (klassische) Portalversion - Wechseln zur Version für das neue Foundry-Portal

Die Direkte Präferenzoptimierung (Direct Preference Optimization, DPO) ist eine Ausrichtungsmethode für große Sprachmodelle, die verwendet wird, um Modellgewichte basierend auf menschlichen Vorlieben anzupassen. Es unterscheidet sich vom verstärkenden Lernen durch menschliches Feedback (RLHF), da es kein Belohnungsmodell anpassen muss und einfachere binäre Datenpräferenzen für das Training verwendet. Es benötigt weniger Rechenressourcen und ist schneller als RLHF, während es bei der Ausrichtung genauso effektiv ist.

Warum ist DPO nützlich?

DPO ist besonders nützlich in Szenarien, in denen es keine klare richtige Antwort gibt, und subjektive Elemente wie Ton, Stil oder bestimmte Inhaltseinstellungen sind wichtig. Mit diesem Ansatz kann das Modell auch aus positiven Beispielen (was als richtig oder ideal betrachtet wird) und negativen Beispielen (was weniger gewünscht oder falsch ist) lernen.

Das DPO erleichtert Es Ihnen, qualitativ hochwertige Schulungsdatensätze zu generieren. Während viele Organisationen Schwierigkeiten haben, ausreichend große Datasets für überwachte Fein-Tuning zu generieren, verfügen sie häufig über bereits gesammelte Präferenzdaten basierend auf Benutzerprotokollen, A/B-Tests oder kleineren manuellen Annotierungsbemühungen.

Direktes Präferenzoptimierungs-Datenformat

Dateien für die direkte Präferenzoptimierung haben ein anderes Format als die überwachte Feinabstimmung. Sie stellen eine "Unterhaltung" bereit, die die Systemnachricht und die anfängliche Benutzernachricht enthält, und anschließend "Vervollständigungen" mit gekoppelten Präferenzdaten. Sie können nur zwei Vervollständigungen bereitstellen.

Das Dataset verwendet drei Felder auf oberster Ebene:

Feld Erforderlich Beschreibung
input Ja Enthält die Systemnachricht und die anfängliche Benutzernachricht.
preferred_output Ja Muss mindestens eine Assistentnachricht enthalten (Rollen: Assistent, nur Tool)
non_preferred_output Ja Muss mindestens eine Assistentnachricht enthalten (Rollen: Assistent, nur Tool)
{  
  "input": {  
    "messages": [{"role": "system", "content": ...}],  
    "tools": [...],  
    "parallel_tool_calls": true  
  },  
  "preferred_output": [{"role": "assistant", "content": ...}],  
  "non_preferred_output": [{"role": "assistant", "content": ...}]  
}  

Schulungsdatensätze müssen im jsonl Format vorliegen:

{{"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"}]}
}

Unterstützung des Direkten Einstellungsoptimierungsmodells

Die folgenden Modelle unterstützen das direkte Feinabstimmen von Präferenzen:

Modell DPO-Unterstützung Verfügbarkeit der Region
gpt-4o-2024-08-06 Ja Feinabstimmungsmodelle anzeigen
gpt-4.1-2025-04-14 Ja Feinabstimmungsmodelle anzeigen
gpt-4.1-mini-2025-04-14 Ja Feinabstimmungsmodelle anzeigen

Sie können die Präferenz-Feinabstimmung mit Basismodellen und mit Modellen, die bereits mithilfe von überwachten Feinabstimmungen optimiert wurden, verwenden, solange sie ein unterstütztes Modell und eine unterstützte Version darstellen.

So verwenden Sie die Feinabstimmung der direkten Präferenzoptimierung

  1. Bereiten Sie Datasets im jsonl vor.
  2. Wählen Sie das Modell und dann die Methode für die Anpassung Direct Preference Optimization aus.
  3. Hochladen von Datasets – Schulung und Validierung. Bei Bedarf eine Vorschau anzeigen.
  4. Auswahl von Hyperparametern, Standardwerte werden für die anfängliche Experimentierung empfohlen.
  5. Überprüfen Sie die Auswahl und erstellen Sie einen Feinabstimmungsprozess.

Direkte Einstellungsoptimierung – REST-API

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 }}}'

Nächste Schritte