View a markdown version of this page

DPO - Amazon SageMaker AI

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

DPO

Description

L'optimisation des préférences directes (DPO) aligne un modèle sur les préférences humaines en s'entraînant sur des paires de réponses choisies (préférées) et rejetées (non préférées) à la même invite.

Quand l’utiliser

  • Vous disposez de données sur vos préférences indiquant quelles réponses sont les meilleures

  • Améliorez la qualité de réponse au-delà de ce que permet la SFT

  • Le modèle doit éviter des comportements indésirables spécifiques

Ce qu'il réalise

Le modèle apprend à préférer générer des réponses similaires aux exemples choisis et à éviter les exemples rejetés, sans avoir besoin d'un modèle de récompense distinct.

Format du jeu de données

DPO exige des paires de réponses choisies (préférées) et rejetées (non préférées) pour la même invite. DPO prend en charge deux formats de jeu de données. Tous les ensembles de données doivent être au format JSONL (un objet JSON par ligne). Un system message est facultatif dans les deux formats.

Format 1 : messages

Fournissez chosen et rejected sous forme de listes de messages complètes. S'il est inclus, le system message doit être le premier élément et doit être identique à la fois dans chosen etrejected.

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

Format 2 : prompt/choisi/rejeté

Fournissez l'invite et les deux réponses sous forme de champs de chaîne distincts, avec un system champ de niveau supérieur facultatif.

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

Conseils

  • Les réponses choisies et rejetées devraient différer de manière significative en termes de qualité

  • Utilisez la même invite pour les options sélectionnées et rejetées

  • Le system message est facultatif

Hyperparamètres - DPO LoRa

Note

Les tableaux ci-dessous présentent les hyperparamètres disponibles lorsque vous utilisez la personnalisation des modèles sans serveur. Les autres hyperparamètres sont prédéfinis par Amazon SageMaker AI à l'aide de valeurs par défaut optimisées. Lorsque vous utilisez SageMaker AI Training Jobs ou HyperPod, vous pouvez accéder à la liste complète des hyperparamètres disponibles dans les recettes. Consultez le référentiel SageMaker AI Recipes pour obtenir une recette et accéder à tous les hyperparamètres.

Paramètre Type Obligatoire ? Échelle/Valeurs Description
max_epochsintegerObligatoire1–100Nombre de passages complets dans l'ensemble de données d'entraînement.
global_batch_sizeentierObligatoire16, 32, 64 et 128Nombre total d'échantillons traités par étape de l'optimiseur sur toutes les instances.
learning_ratefloatObligatoire5e-07—1e-04Taille du pas pour les mises à jour du poids lors de l'optimisation.
lr_schedulerchaîneObligatoirecosinus, constanteCalendrier de baisse du taux d'apprentissage au fil de l'entraînement.
lr_warmup_steps_ratiofloatObligatoire0—1Fraction du nombre total d'étapes passées à augmenter le taux d'apprentissage à partir de 0.
weight_decayfloatObligatoire0.0-1.0Coefficient de régularisation L2. Aide à prévenir le surajustement.
gradient_clippingbooleanObligatoiretrue, falseRéduisez les gradients si la norme dépasse le seuil.
gradient_clipping_thresholdfloatObligatoire0,0-5,0Norme de pente maximale autorisée.
dataset_max_lenentierObligatoire256—131072Longueur de séquence maximale en jetons. Les séquences plus longues sont tronquées.
seedentierObligatoire0–2147483647Semence aléatoire pour la reproductibilité.
logging_stepsentierObligatoire1–100Fréquence d'enregistrement des métriques dans les étapes de l'optimiseur.
lora_rankentierObligatoire8, 16, 32, 64 et 128Dimensionnalité des matrices de bas rang. Inférieur = moins de paramètres pouvant être entraînés.
lora_dropoutfloatObligatoire0.0-1.0Probabilité d'abandon pour les couches LoRA adaptatrices.
lora_alphaentierObligatoire16, 32, 64, 128 et 256LoRAfacteur d'échelle. Le LR efficace s'échelonne comme suit alpha/rank :
merge_weightsbooleanObligatoiretrue, falseFusionnez LoRA les poids dans le modèle de base après l'entraînement.
train_val_split_ratiofloatFacultatif0.0-1.0Fraction allouée à la formation par rapport à la validation.
temperaturefloatObligatoire0,0-2,0Température d'échantillonnage pour évaluation.
adam_betafloatObligatoire1e-03—0,1Température inverse DPO. Contrôle la force avec laquelle le modèle applique le classement des préférences.

Hyperparamètres - DPO FFT

Paramètre Type Obligatoire ? Échelle/Valeurs Description
max_epochsintegerObligatoire1–100Nombre de passages complets dans l'ensemble de données d'entraînement.
global_batch_sizeentierObligatoire16, 32, 64 et 128Nombre total d'échantillons traités par étape de l'optimiseur.
learning_ratefloatObligatoire5e-07—1e-04Taille du pas pour les mises à jour du poids.
lr_schedulerchaîneObligatoirecosinus, constanteCalendrier de décroissance du taux d'apprentissage.
lr_warmup_steps_ratiofloatObligatoire0—1Fraction d'étapes pour l'échauffement du LR.
weight_decayfloatObligatoire0.0-1.0Coefficient de régularisation L2.
gradient_clippingbooleanObligatoiretrue, falseRéduisez les gradients si la norme dépasse le seuil.
gradient_clipping_thresholdfloatObligatoire0,0-5,0Norme de pente maximale autorisée.
dataset_max_lenentierObligatoire256—131072Longueur de séquence maximale en jetons.
max_response_lengthentierObligatoire100 à 200 000Nombre maximum de jetons pour la réponse générée.
seedentierObligatoire0–2147483647Semence aléatoire pour la reproductibilité.
logging_stepsentierObligatoire1–100Fréquence de l'enregistrement métrique.
train_val_split_ratiofloatFacultatif0.0-1.0Fraction allouée à la formation par rapport à la validation.
temperaturefloatObligatoire0,0-2,0Température d'échantillonnage pour évaluation.
adam_betafloatObligatoire1e-03—0,1Température inverse DPO. Contrôle la force avec laquelle le modèle applique le classement des préférences.