View a markdown version of this page

DPO - Amazon SageMaker KI

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 system Nachricht 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 Sie ein Rezept und können auf alle Hyperparameter zugreifen.

Parameter Typ Erforderlich? Bereich/Werte Description
max_epochsGanzzahlErforderlich1-100Anzahl der vollständigen Durchläufe des Trainingsdatensatzes.
global_batch_sizeGanzzahlErforderlich16, 32, 64, 128Gesamtzahl der pro Optimierer-Schritt verarbeiteten Proben in allen Instanzen.
learning_ratefloatErforderlich5e-07—1e-04Schrittgröße für Gewichtsaktualisierungen während der Optimierung.
lr_schedulerZeichenfolgeErforderlichKosinus, konstantZeitplan für den Rückgang der Lernrate im Laufe des Trainings.
lr_warmup_steps_ratiofloatErforderlich0—1Bruchteil der Gesamtzahl der Schritte, die aufgewendet wurden, um die Lernrate von 0 zu erhöhen.
weight_decayfloatErforderlich0,0 bis 1,0L2-Regularisierungskoeffizient. Hilft, eine Überanpassung zu verhindern.
gradient_clippingbooleschErforderlichtrue, falseVerkleinern Sie die Steigungen, wenn die Norm den Schwellenwert überschreitet.
gradient_clipping_thresholdfloatErforderlich0,0—5,0Maximal zulässige Steigungsnorm.
dataset_max_lenGanzzahlErforderlich256—131072Maximale Sequenzlänge in Tokens. Längere Sequenzen werden gekürzt.
seedGanzzahlErforderlich0 – 2147483647Zufälliger Startwert für Reproduzierbarkeit.
logging_stepsGanzzahlErforderlich1-100Häufigkeit der Protokollierung von Metriken in Optimierer-Schritten.
lora_rankGanzzahlErforderlich8, 16, 32, 64, 128Dimensionalität von Matrizen mit niedrigem Rang. Niedriger = weniger trainierbare Parameter.
lora_dropoutfloatErforderlich0,0 bis 1,0Wahrscheinlichkeit eines Ausfalls bei LoRA Adapterschichten.
lora_alphaGanzzahlErforderlich16, 32, 64, 128, 256LoRASkalierungsfaktor. Effektiver LR skaliert als alpha/rank.
merge_weightsbooleschErforderlichtrue, falseKombiniere die LoRA Gewichte nach dem Training mit dem Basismodell.
train_val_split_ratiofloatOptional0,0 bis 1,0Anteil, der dem Training und der Validierung zugeordnet ist.
temperaturefloatErforderlich0,0—2,0Probenahmetemperatur zur Auswertung.
adam_betafloatErforderlich1e-03—0,1Umgekehrte Temperatur von DPO. Steuert, wie stark das Modell die Rangfolge der Präferenzen durchsetzt.

Hyperparameter — DPO FFT

Parameter Typ Erforderlich? Bereich/Werte Description
max_epochsGanzzahlErforderlich1-100Anzahl der vollständigen Durchläufe des Trainingsdatensatzes.
global_batch_sizeGanzzahlErforderlich16, 32, 64, 128Gesamtzahl der pro Optimierer-Schritt verarbeiteten Proben.
learning_ratefloatErforderlich5e-07—1e-04Schrittgröße für Gewichtsaktualisierungen.
lr_schedulerZeichenfolgeErforderlichKosinus, konstantZeitplan für den Abstieg der Lernrate.
lr_warmup_steps_ratiofloatErforderlich0—1Bruchteil der Schritte für das LR-Aufwärmen.
weight_decayfloatErforderlich0,0 bis 1,0L2-Regularisierungskoeffizient.
gradient_clippingbooleschErforderlichtrue, falseGradienten herunterskalieren, wenn die Norm den Schwellenwert überschreitet.
gradient_clipping_thresholdfloatErforderlich0,0—5,0Maximal zulässige Steigungsnorm.
dataset_max_lenGanzzahlErforderlich256—131072Maximale Sequenzlänge in Tokens.
max_response_lengthGanzzahlErforderlich100—200000Maximale Anzahl an Tokens für generierte Antworten.
seedGanzzahlErforderlich0 – 2147483647Zufälliger Startwert für Reproduzierbarkeit.
logging_stepsGanzzahlErforderlich1-100Häufigkeit der metrischen Protokollierung.
train_val_split_ratiofloatOptional0,0 bis 1,0Anteil, der für Training und Validierung vorgesehen ist.
temperaturefloatErforderlich0,0—2,0Probenahmetemperatur zur Auswertung.
adam_betafloatErforderlich1e-03—0,1Umgekehrte Temperatur von DPO. Steuert, wie stark das Modell die Rangfolge der Präferenzen durchsetzt.