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
Description
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?
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
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
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
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 seinrejected.
{ "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
Geben Sie die Aufforderung und beide Antworten als separate Zeichenfolgenfelder mit einem optionalen system Feld auf oberster Ebene an.
{ "system": "...", "prompt": "...", "chosen": "...", "rejected": "..." }
Empfehlung
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
systemNachricht ist optional
Hyperparameter - DPO LoRa
Anmerkung
Die folgenden Tabellen zeigen die Hyperparameter, die verfügbar sind, wenn Sie die serverlose Modellanpassung verwenden. Andere Hyperparameter werden von Amazon SageMaker AI unter Verwendung optimierter Standardwerte voreingestellt. Wenn Sie SageMaker AI Training Jobs oder verwenden HyperPod, können Sie auf die vollständige Liste der Hyperparameter zugreifen, die in den Rezepten verfügbar sind. Im SageMaker AI Recipes-Repository finden
| 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
| 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. |