View a markdown version of this page

Optimisation directe des préférences (DPO) - Amazon Nova

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.

Optimisation directe des préférences (DPO)

Présentation de

L'optimisation directe des préférences (DPO) est une technique d'alignement qui permet d'affiner les modèles de base à l'aide de données de comparaison par paires afin d'aligner les résultats des modèles sur les préférences humaines. Contrairement aux méthodes d'apprentissage par renforcement, le DPO optimise directement le comportement du modèle en fonction des commentaires humains concernant les réponses les plus souhaitables, offrant ainsi une approche plus stable et évolutive.

Pourquoi utiliser DPO

Les modèles de base peuvent générer des résultats factuellement corrects mais ne pas correspondre aux besoins spécifiques des utilisateurs, aux valeurs organisationnelles ou aux exigences de sécurité. Le DPO répond à ce problème en vous permettant de :

  • Ajustez les modèles en fonction des modèles de comportement souhaités

  • Réduisez les sorties indésirables ou nocives

  • Aligner les réponses des modèles sur la voix de la marque et les directives de communication

  • Améliorez la qualité des réponses en fonction des commentaires des experts du domaine

  • Mettre en œuvre des garde-fous de sécurité grâce à des modèles de réponse privilégiés

Comment fonctionne le DPO

Le DPO utilise des exemples appariés dans lesquels des évaluateurs humains indiquent laquelle des deux réponses possibles est préférée. Le modèle apprend à maximiser la probabilité de générer les réponses préférées tout en minimisant les réponses indésirables.

Quand utiliser le DPO

Utilisez DPO dans les scénarios suivants :

  • Optimisation pour des résultats subjectifs qui nécessitent un alignement sur des préférences humaines spécifiques

  • Ajustement du ton, du style ou des caractéristiques du contenu du modèle

  • Apporter des améliorations ciblées en fonction des commentaires des utilisateurs et de l'analyse des erreurs

  • Maintien d'une qualité de sortie constante dans les différents cas d'utilisation

  • Entraînement avec apprentissage par renforcement sans récompense en utilisant uniquement les données de préférence

Modèles et techniques pris en charge

DPO prend en charge à la fois le réglage précis de tous les paramètres et le LoRa (Low-Rank Adaptation) :

Modèle Entrées prises en charge Type d’instance Nombre d’instances recommandées Nombre d’instances autorisées
Amazon Nova Micro Texte ml.p5.48xlarge 2 2, 4, 8
Amazon Nova Lite Texte, image ml.p5.48xlarge 4 2, 4, 8, 16
Amazon Nova Pro Texte, image ml.p5.48xlarge 6 6, 12, 24

Approches de formation

  • DPO de rang complet : met à jour tous les paramètres du modèle. Offre potentiellement une meilleure qualité d'alignement, mais nécessite davantage de ressources de calcul et produit des modèles plus grands.

  • LoRa DPO : utilise des adaptateurs légers pour un réglage précis efficace des paramètres. Permet une formation et un déploiement plus efficaces avec des modèles de sortie plus petits tout en maintenant une bonne qualité d'alignement.

Dans la plupart des cas d'utilisation, l'approche LoRa fournit une capacité d'adaptation suffisante avec une efficacité nettement améliorée.

Format de données

Les données d'entraînement du DPO suivent le même format que le format SFT, sauf que le dernier tour de l'assistant doit contenir des paires de préférences avec preferred et non-preferred des étiquettes.

Structure de base

Le dernier tour de l'assistant utilise un candidates tableau au lieu de content :

{ "role": "assistant", "candidates": [ { "content": [ { "text": "This is the preferred response." } ], "preferenceLabel": "preferred" }, { "content": [ { "text": "This is the non-preferred response." } ], "preferenceLabel": "non-preferred" } ] }

Exemple de texte complet

{ "schemaVersion": "bedrock-conversation-2024", "system": [ { "text": "You are a helpful assistant." } ], "messages": [ { "role": "user", "content": [ { "text": "What is the capital of France?" } ] }, { "role": "assistant", "content": [ { "text": "The capital of France is Paris." } ] }, { "role": "user", "content": [ { "text": "Tell me more about it." } ] }, { "role": "assistant", "candidates": [ { "content": [ { "text": "Paris is the capital and largest city of France, known for the Eiffel Tower, world-class museums like the Louvre, and its rich cultural heritage." } ], "preferenceLabel": "preferred" }, { "content": [ { "text": "Paris is a city in France." } ], "preferenceLabel": "non-preferred" } ] } ] }

Exemple avec images

{ "schemaVersion": "bedrock-conversation-2024", "system": [ { "text": "You are a helpful assistant." } ], "messages": [ { "role": "user", "content": [ { "text": "Describe this image." }, { "image": { "format": "jpeg", "source": { "s3Location": { "uri": "s3://your-bucket/your-path/image.jpg", "bucketOwner": "your-aws-account-id" } } } } ] }, { "role": "assistant", "candidates": [ { "content": [ { "text": "The image shows a detailed description with relevant context and observations." } ], "preferenceLabel": "preferred" }, { "content": [ { "text": "This is a picture." } ], "preferenceLabel": "non-preferred" } ] } ] }

Configuration requise pour les jeux de données

  • Format : fichier JSONL unique pour la formation, fichier JSONL unique pour la validation (facultatif)

  • Taille minimale : 1 000 paires de préférence recommandées pour un entraînement efficace

  • Qualité : des données de préférences de haute qualité produisent des résultats plus efficaces

  • Autres contraintes : Identiques à SFT. Pour plus d’informations, consultez Contraintes liées aux jeux de données.

Téléchargement de données

aws s3 cp /path/to/training-data/ s3://your-bucket/train/ --recursive aws s3 cp /path/to/validation-data/ s3://your-bucket/val/ --recursive

Configuration de la recette

Configuration générale de l’exécution

run: name: "my-dpo-run" model_type: "amazon.nova-lite-v1:0:300k" model_name_or_path: "nova-lite/prod" replicas: 4
Paramètre Description
name Nom descriptif de votre poste de formation
model_type Variante du modèle Nova (ne pas modifier)
model_name_or_path Chemin du modèle de base (ne pas modifier)
replicas Nombre d'instances de calcul pour la formation distribuée

Configuration d’entraînement

training_config: max_length: 16384 global_batch_size: 32 trainer: max_epochs: 3 model: hidden_dropout: 0.0 attention_dropout: 0.0 ffn_dropout: 0.0
Paramètre Description Range
max_length Longueur de séquence maximale en jetons 1024—32768
global_batch_size Échantillons par étape d'optimisation Micro/Lite/Pro: 16, 32, 64, 128. Micro/Lite : 256
max_epochs La formation passe par un ensemble de données Minimum : 1
hidden_dropout Abandon pour les états cachés 0.0-1.0
attention_dropout Abandon scolaire pour perdre de l'attention 0.0-1.0
ffn_dropout Abandon pour les couches rétroactives 0.0-1.0

Configuration d’optimiseur

model: optim: lr: 1e-5 name: distributed_fused_adam adam_w_mode: true eps: 1e-08 weight_decay: 0.0 betas: - 0.9 - 0.999 sched: warmup_steps: 10 constant_steps: 0 min_lr: 1e-6
Paramètre Description Range
lr Taux d’apprentissage 0—1 (généralement 1e-6 à 1e-4)
weight_decay Force de régularisation L2 0.0-1.0
warmup_steps Étapes pour augmenter progressivement le taux d'apprentissage 0 à 20
min_lr Taux d'apprentissage minimal en fin de décadence 0—1 (doit être < lr)

Configuration spécifique au DPO

model: dpo_cfg: beta: 0.1
Paramètre Description Range
beta Équilibre entre l'ajustement des données d'entraînement et le maintien de la proximité avec le modèle d'origine 0,001—0,5
  • Bêta supérieur (0,1) : préserve davantage le comportement du modèle de référence mais peut apprendre les préférences plus lentement

  • Bêta inférieur (0,01 à 0,05) : apprentissage des préférences plus agressif mais risque de divergence par rapport à la référence

Recommandation : Commencez par le bas beta: 0.1 et ajustez à la baisse si l'apprentissage des préférences semble insuffisant.

Configuration LoRa PET

model: peft: peft_scheme: "lora" lora_tuning: loraplus_lr_ratio: 64.0 alpha: 32 adapter_dropout: 0.01
Paramètre Description Valeurs autorisées
peft_scheme Méthode de réglage précis "lora"ou null (rang complet)
alpha Facteur d'échelle pour les poids LoRa 32, 64, 96, 128, 160, 192
loraplus_lr_ratio Facteur d'échelle du taux d'apprentissage LoRa+ 0,0—100,0
adapter_dropout Régularisation des paramètres LoRa 0.0-1.0

Démarrage d'un poste de formation

Image du conteneur

708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-TJ-DPO-latest

Exemple de code

from sagemaker.pytorch import PyTorch from sagemaker.inputs import TrainingInput instance_type = "ml.p5.48xlarge" instance_count = 4 image_uri = "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-TJ-DPO-latest" recipe_overrides = { "training_config": { "trainer": {"max_epochs": 2}, "model": { "dpo_cfg": {"beta": 0.1}, "peft": { "peft_scheme": "lora", "lora_tuning": { "loraplus_lr_ratio": 64.0, "alpha": 32, "adapter_dropout": 0.01, }, }, }, }, } estimator = PyTorch( output_path=f"s3://{bucket_name}/{job_name}", base_job_name=job_name, role=role, instance_count=instance_count, instance_type=instance_type, training_recipe="fine-tuning/nova/nova_lite_p5_gpu_lora_dpo", recipe_overrides=recipe_overrides, max_run=18000, sagemaker_session=sagemaker_session, image_uri=image_uri, disable_profiler=True, debugger_hook_config=False, ) train_input = TrainingInput( s3_data=train_dataset_s3_path, distribution="FullyReplicated", s3_data_type="Converse", ) val_input = TrainingInput( s3_data=val_dataset_s3_path, distribution="FullyReplicated", s3_data_type="Converse", ) estimator.fit(inputs={"train": train_input, "validation": val_input}, wait=True)

Déploiement du modèle

Une fois la formation terminée, déployez le modèle personnalisé sur Amazon Bedrock à l'aide de la fonctionnalité d'importation de modèles personnalisés. Le modèle prend en charge à la fois le débit provisionné et l'inférence à la demande. Les modèles entraînés par LoRA prennent en charge l'inférence à la demande.

Pour les instructions de déploiement, voir Déploiement de modèles personnalisés.

Limitations

  • Modalités de saisie : Le DPO accepte uniquement le texte et les images. L'entrée vidéo n'est pas prise en charge.

  • Modalité de sortie : texte uniquement

  • Paires de préférences : le dernier tour d'assistant doit contenir exactement deux candidats avec des non-preferred étiquettes preferred et

  • Limite d'images : 10 images maximum par bloc de contenu

  • Modalités mixtes : impossible de combiner le texte, l'image et la vidéo dans le même travail de formation