

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# DPO
<a name="customizing-models-dpo"></a>

## Description
<a name="customizing-models-dpo-description"></a>

Direct Preference Optimization (DPO) richtet ein Modell an den menschlichen Präferenzen aus, indem es mit Paaren von ausgewählten (bevorzugten) und abgelehnten (nicht bevorzugten) Antworten auf dieselbe Aufforderung trainiert.

### Wann sollte dies verwendet werden?
<a name="customizing-models-dpo-when-to-use"></a>
+ Sie haben Präferenzdaten, die zeigen, welche Antworten besser sind
+ Verbessern Sie die Antwortqualität über das hinaus, was SFT erreicht
+ Das Modell muss bestimmte unerwünschte Verhaltensweisen vermeiden

### Was es erreicht
<a name="customizing-models-dpo-what-it-achieves"></a>

Das Modell lernt, es vorzuziehen, Antworten zu generieren, die den ausgewählten Beispielen ähneln, und abgelehnte Beispiele zu vermeiden, ohne dass ein separates Belohnungsmodell erforderlich ist.

## Format des Datensatzes
<a name="customizing-models-dpo-dataset"></a>

DPO benötigt Paare von ausgewählten (bevorzugten) und abgelehnten (nicht bevorzugten) Antworten für dieselbe Aufforderung. DPO unterstützt zwei Datensatzformate. Alle Datensätze müssen im JSONL-Format vorliegen (ein JSON-Objekt pro Zeile). Eine `system` Nachricht ist in beiden Formaten optional.

### Format 1: `Nachrichten`
<a name="customizing-models-dpo-dataset-format-1"></a>

Stellen Sie `chosen` und `rejected` als vollständige Nachrichtenlisten bereit. Falls angegeben, muss die `system` Nachricht das erste Element sein und in beiden `chosen` Elementen identisch sein`rejected`.

```
{
  "chosen": [
    {"role": "system", "content": "..."},
    {"role": "user", "content": "..."},
    {"role": "assistant", "content": "..."}
  ],
  "rejected": [
    {"role": "system", "content": "..."},
    {"role": "user", "content": "..."},
    {"role": "assistant", "content": "..."}
  ]
}
```

### Format 2: `Eingabeaufforderung`/`ausgewählt`/`abgelehnt`
<a name="customizing-models-dpo-dataset-format-2"></a>

Geben Sie die Aufforderung und beide Antworten als separate Zeichenfolgenfelder mit einem optionalen `system` Feld auf oberster Ebene an.

```
{
  "system": "...",
  "prompt": "...",
  "chosen": "...",
  "rejected": "..."
}
```

### Empfehlung
<a name="customizing-models-dpo-dataset-guidance"></a>
+ Ausgewählte und abgelehnte Antworten sollten sich deutlich in ihrer Qualität unterscheiden
+ Verwenden Sie dieselbe Aufforderung sowohl für ausgewählte als auch für abgelehnte
+ Die `system` Nachricht ist optional

## Hyperparameter - DPO LoRa
<a name="customizing-models-dpo-hyperparameters-lora"></a>

**Anmerkung**  
Die folgenden Tabellen zeigen die Hyperparameter, die verfügbar sind, wenn Sie die serverlose Modellanpassung verwenden[. ](customize-model.md) Andere Hyperparameter werden von Amazon SageMaker AI unter Verwendung optimierter Standardwerte voreingestellt. Wenn Sie [ SageMaker AI Training Jobs ](customizing-models-training-jobs.md) oder verwenden [ HyperPod](customizing-models-hyperpod.md), können Sie auf die vollständige Liste der Hyperparameter zugreifen, die in den Rezepten verfügbar sind. Im [ SageMaker AI Recipes-Repository finden ](https://github.com/aws/sagemaker-hyperpod-recipes) Sie ein Rezept und können auf alle Hyperparameter zugreifen.


| Parameter | Typ | Erforderlich? | Bereich/Werte | Description | 
| --- | --- | --- | --- | --- | 
| max\_epochs | Ganzzahl | Erforderlich | 1-100 | Anzahl der vollständigen Durchläufe des Trainingsdatensatzes. | 
| global\_batch\_size | Ganzzahl | Erforderlich | 16, 32, 64, 128 | Gesamtzahl der pro Optimierer-Schritt verarbeiteten Proben in allen Instanzen. | 
| learning\_rate | float | Erforderlich | 5e-07—1e-04 | Schrittgröße für Gewichtsaktualisierungen während der Optimierung. | 
| lr\_scheduler | Zeichenfolge | Erforderlich | Kosinus, konstant | Zeitplan für den Rückgang der Lernrate im Laufe des Trainings. | 
| lr\_warmup\_steps\_ratio | float | Erforderlich | 0—1 | Bruchteil der Gesamtzahl der Schritte, die aufgewendet wurden, um die Lernrate von 0 zu erhöhen. | 
| weight\_decay | float | Erforderlich | 0,0 bis 1,0 | L2-Regularisierungskoeffizient. Hilft, eine Überanpassung zu verhindern. | 
| gradient\_clipping | boolesch | Erforderlich | true, false | Verkleinern Sie die Steigungen, wenn die Norm den Schwellenwert überschreitet. | 
| gradient\_clipping\_threshold | float | Erforderlich | 0,0—5,0 | Maximal zulässige Steigungsnorm. | 
| dataset\_max\_len | Ganzzahl | Erforderlich | 256—131072 | Maximale Sequenzlänge in Tokens. Längere Sequenzen werden gekürzt. | 
| seed | Ganzzahl | Erforderlich | 0 – 2147483647 | Zufälliger Startwert für Reproduzierbarkeit. | 
| logging\_steps | Ganzzahl | Erforderlich | 1-100 | Häufigkeit der Protokollierung von Metriken in Optimierer-Schritten. | 
| lora\_rank | Ganzzahl | Erforderlich | 8, 16, 32, 64, 128 | Dimensionalität von Matrizen mit niedrigem Rang. Niedriger = weniger trainierbare Parameter. | 
| lora\_dropout | float | Erforderlich | 0,0 bis 1,0 | Wahrscheinlichkeit eines Ausfalls bei LoRA Adapterschichten. | 
| lora\_alpha | Ganzzahl | Erforderlich | 16, 32, 64, 128, 256 | LoRASkalierungsfaktor. Effektiver LR skaliert als alpha/rank. | 
| merge\_weights | boolesch | Erforderlich | true, false | Kombiniere die LoRA Gewichte nach dem Training mit dem Basismodell. | 
| train\_val\_split\_ratio | float | Optional | 0,0 bis 1,0 | Anteil, der dem Training und der Validierung zugeordnet ist. | 
| temperature | float | Erforderlich | 0,0—2,0 | Probenahmetemperatur zur Auswertung. | 
| adam\_beta | float | Erforderlich | 1e-03—0,1 | Umgekehrte Temperatur von DPO. Steuert, wie stark das Modell die Rangfolge der Präferenzen durchsetzt. | 

## Hyperparameter — DPO FFT
<a name="customizing-models-dpo-hyperparameters-fft"></a>


| Parameter | Typ | Erforderlich? | Bereich/Werte | Description | 
| --- | --- | --- | --- | --- | 
| max\_epochs | Ganzzahl | Erforderlich | 1-100 | Anzahl der vollständigen Durchläufe des Trainingsdatensatzes. | 
| global\_batch\_size | Ganzzahl | Erforderlich | 16, 32, 64, 128 | Gesamtzahl der pro Optimierer-Schritt verarbeiteten Proben. | 
| learning\_rate | float | Erforderlich | 5e-07—1e-04 | Schrittgröße für Gewichtsaktualisierungen. | 
| lr\_scheduler | Zeichenfolge | Erforderlich | Kosinus, konstant | Zeitplan für den Abstieg der Lernrate. | 
| lr\_warmup\_steps\_ratio | float | Erforderlich | 0—1 | Bruchteil der Schritte für das LR-Aufwärmen. | 
| weight\_decay | float | Erforderlich | 0,0 bis 1,0 | L2-Regularisierungskoeffizient. | 
| gradient\_clipping | boolesch | Erforderlich | true, false | Gradienten herunterskalieren, wenn die Norm den Schwellenwert überschreitet. | 
| gradient\_clipping\_threshold | float | Erforderlich | 0,0—5,0 | Maximal zulässige Steigungsnorm. | 
| dataset\_max\_len | Ganzzahl | Erforderlich | 256—131072 | Maximale Sequenzlänge in Tokens. | 
| max\_response\_length | Ganzzahl | Erforderlich | 100—200000 | Maximale Anzahl an Tokens für generierte Antworten. | 
| seed | Ganzzahl | Erforderlich | 0 – 2147483647 | Zufälliger Startwert für Reproduzierbarkeit. | 
| logging\_steps | Ganzzahl | Erforderlich | 1-100 | Häufigkeit der metrischen Protokollierung. | 
| train\_val\_split\_ratio | float | Optional | 0,0 bis 1,0 | Anteil, der für Training und Validierung vorgesehen ist. | 
| temperature | float | Erforderlich | 0,0—2,0 | Probenahmetemperatur zur Auswertung. | 
| adam\_beta | float | Erforderlich | 1e-03—0,1 | Umgekehrte Temperatur von DPO. Steuert, wie stark das Modell die Rangfolge der Präferenzen durchsetzt. | 