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.
Affiner les modèles Amazon Nova à l'aide de tâches SageMaker de formation
L'optimisation des modèles Amazon Nova à l'aide de tâches de SageMaker formation constitue un moyen puissant de personnaliser les modèles de base en fonction de vos cas d'utilisation spécifiques.
Rubriques
Prérequis
Avant de commencer un stage de formation, notez ce qui suit.
-
Des compartiments Amazon S3 pour stocker vos données d'entrée et de sortie des tâches de formation. Vous pouvez utiliser un compartiment pour les deux ou des compartiments distincts pour chaque type de données. Assurez-vous que vos compartiments se trouvent dans le même Région AWS endroit où vous créez toutes les autres ressources pour la formation. Pour plus d'informations, consultez la section Création d'un bucket à usage général.
-
Rôle IAM autorisé à exécuter une tâche de formation. Assurez-vous de joindre une politique IAM à
AmazonSageMakerFullAccess
. Pour plus d'informations, consultez Comment utiliser les rôles SageMaker d'exécution. -
Recettes Amazon Nova de base, voirObtenir des recettes Amazon Nova.
Préparation des données
La préparation de données de haute qualité correctement formatées est une première étape essentielle du processus de réglage précis des grands modèles linguistiques. Que vous utilisiez le réglage fin supervisé (SFT) ou l'optimisation directe des préférences (DPO), avec des approches d'adaptation complète ou inférieure (LoRa), vos données doivent respecter des exigences de format spécifiques pour garantir un entraînement réussi des modèles. Cette section décrit les formats de données, les méthodes de validation et les meilleures pratiques nécessaires pour vous aider à préparer efficacement vos ensembles de données afin de peaufiner les modèles Amazon Nova.
SFT
Exigences relatives au format de données SFT - Pour le SFT complet et le SFT LoRa, les données doivent suivre le format Converse. Pour des exemples et des contraintes liés à ce format, voir Préparation des données pour affiner les modèles de compréhension.
Validation des données SFT : pour valider le format de votre jeu de données avant de le soumettre, nous vous recommandons d'utiliser le script de validation suivant issu du référentiel d'échantillons Amazon Bedrockjsonl
fichiers respectent les spécifications de format requises et à identifier tout problème potentiel avant de soumettre votre travail de mise au point.
DPO
Exigences relatives au format des données du DPO - Pour le DPO de rang complet et le DPO avec LoRa, les données doivent suivre le format Converse. Le jeu de données doit également être au format similaire à celui de SFT, sauf que le dernier tour doit comporter des paires de préférences.
Autres contraintes sur les ensembles de données DPO - Les autres contraintes sur les ensembles de données sont les mêmes pour SFT. Pour plus d'informations, consultez la section Contraintes relatives aux ensembles de données. Un seul fichier JSONL pour l'entraînement et un seul fichier JSONL pour la validation sont attendus. Le set de validation est facultatif.
Recommandations relatives aux ensembles de données DPO : un minimum de 1 000 paires de préférences pour une formation efficace. Des données de préférences de haute qualité permettront d'obtenir des résultats plus efficaces.
Exemple de format de données DPO
// N-1 turns same as SFT format { "role": "assistant", "candidates": [ { "content": [ { "text": "..." } // content list can contain multiple 'text' objects ], "preferenceLabel": "preferred" }, { "content": [ { "text": "..." } // content list can contain multiple 'text' objects ], "preferenceLabel": "non-preferred" } ] }
Exemple de format de données DPO (multitours)
{ "system": [ { "text": "..." } ], "messages":[ { "role": "user", "content": [ { "text": "..." } ] }, { "role": "assistant", "content": [ { "text": "..." } ] }, { "role": "user", "content": [ { "text": "..." } ] }, { "role": "assistant", "candidates": [ { "content": [ { "text": "..." } ], "preferenceLabel": "preferred" }, { "content": [ { "text": "..." } ], "preferenceLabel": "non-preferred" } ] } ], }
Exemple de format de données DPO (avec images)
{ "system": [ { "text": "..." } ], "messages":[ { "role": "user", "content": [ { "text": "..." }, { "text": "..." }, { "image": { "format": "jpeg", "source": { "s3Location": { "uri": "s3://your-bucket/your-path/your-image.jpg", "bucketOwner": "your-aws-account-id" } } } } // "content" can have multiple "text" and "image" objects. // max image count is 10 ] }, { "role": "assistant", "content": [ { "text": "..." } ] }, { "role": "user", "content": [ { "text": "..." }, { "text": "..." }, { "image": { "format": "jpeg", "source": { "s3Location": { "uri": "s3://your-bucket/your-path/your-image.jpg", "bucketOwner": "your-aws-account-id" } } } } // "content" can have multiple "text" and "image" objects. // max image count is 10 ] }, { "role": "assistant", "candidates": [ { "content": [ { "text": "..." } ], "preferenceLabel": "preferred" }, { "content": [ { "text": "..." } ], "preferenceLabel": "non-preferred" } ] } ], }
Les tâches de formation sont limitées par défaut à un jour, bien que les estimations présentées dans les tableaux ci-dessous supposent une durée de formation de 5 jours à des fins d'illustration. À titre de bonne pratique, nous vous recommandons de porter votre limite de formation à 28 jours maximum pour faire face à des charges de travail de formation plus longues. Pour demander une augmentation de limite, voir Demande d'augmentation de quota.
Limites du jeu de données SFT
Longueur du contexte | Modèle | Méthode | Jeux de données | Description |
---|---|---|---|---|
32 000 tâches d'une durée de contexte |
Amazon Nova Micro | Rang complet et LoRa | Texte uniquement |
Si vous utilisez un jeu de données dont tous les enregistrements ont une longueur de contexte de 32 000 et qu'ils sont exécutés par exemple pendant 5 époques, vous ne pouvez avoir que 100 000 enregistrements au maximum. |
Amazon Nova Lite |
Rang complet | Texte uniquement |
Si vous utilisez un jeu de données dans lequel tous les enregistrements ont une longueur de contexte de 32 000 et qu'ils sont exécutés par exemple pendant 5 époques, vous pouvez avoir jusqu'à 100 000 enregistrements. |
|
Image et vidéo |
Si vous utilisez un jeu de données dont tous les enregistrements ont une longueur de contexte de 32 000 et qu'ils s'exécutent, par exemple, pendant 5 époques, vous pouvez avoir jusqu'à 50 000 enregistrements. |
|||
LoRa | Texte uniquement |
Si vous utilisez un jeu de données dans lequel tous les enregistrements ont une longueur de contexte de 32 000 et qu'ils sont exécutés par exemple pendant 5 époques, vous pouvez avoir jusqu'à 100 000 enregistrements. |
||
Image et vidéo | Si vous utilisez un jeu de données dont tous les enregistrements ont une longueur de contexte de 32 000 et qu'ils s'exécutent, par exemple, pendant 5 époques, vous pouvez avoir jusqu'à 90 000 enregistrements. | |||
Amazon Nova Pro |
Rang complet | Texte uniquement |
Si vous utilisez un jeu de données dont tous les enregistrements ont une longueur de contexte de 32 000 et qu'ils s'exécutent, par exemple, pendant 5 époques, vous pouvez avoir jusqu'à 40 000 enregistrements. |
|
Image et vidéo |
Si vous utilisez un jeu de données dont tous les enregistrements ont une longueur de contexte de 32 000 et qu'ils s'exécutent, par exemple, pendant 5 époques, vous pouvez avoir jusqu'à 30 000 enregistrements. |
|||
LoRa | Texte uniquement |
Si vous utilisez un jeu de données dont tous les enregistrements ont une longueur de contexte de 32 000 et qu'ils s'exécutent, par exemple, pendant 5 époques, vous pouvez avoir jusqu'à 40 000 enregistrements. |
||
Image et vidéo |
Si vous utilisez un jeu de données dans lequel tous les enregistrements ont une longueur de contexte de 32 000 et qu'ils sont exécutés par exemple pendant 5 époques, vous pouvez avoir jusqu'à 35 000 enregistrements. |
|||
64 000 tâches d'une durée de contexte |
Amazon Nova Micro | Rang complet et LoRa | Texte uniquement |
Si vous utilisez un jeu de données dont tous les enregistrements ont une longueur de contexte de 64 000 et qu'ils s'exécutent, par exemple, pendant 5 époques, vous ne pouvez avoir que 50 000 enregistrements au maximum. |
Amazon Nova Lite |
Rang complet | Texte uniquement |
Si vous utilisez un jeu de données dans lequel tous les enregistrements ont une longueur de contexte de 64 000 et qu'ils s'exécutent, par exemple, pendant 5 époques, vous pouvez avoir jusqu'à 50 000 enregistrements. |
|
Image et vidéo |
Si vous utilisez un jeu de données dont tous les enregistrements ont une longueur de contexte de 64 000 et qu'ils s'exécutent, par exemple, pendant 5 époques, vous pouvez avoir jusqu'à 30 000 enregistrements. |
|||
LoRa | - |
LoRa n'est pas supportée à 64 Ko pour Nova Lite. |
||
Amazon Nova Pro | Rang complet et LoRa | Texte uniquement |
Si vous utilisez un jeu de données dans lequel tous les enregistrements ont une longueur de contexte de 64 000 et qu'ils sont exécutés par exemple pendant 5 époques, vous pouvez avoir jusqu'à 17 000 enregistrements. |
|
Image et vidéo |
Si vous utilisez un jeu de données dans lequel tous les enregistrements ont une longueur de contexte de 64 000 et qu'ils s'exécutent, par exemple, pendant 5 époques, vous pouvez avoir jusqu'à 15 000 enregistrements. |
Limites du jeu de données DPO
Longueur du contexte | Modèle | Méthode | Jeux de données | Description |
---|---|---|---|---|
16 000 tâches contextuelles |
Amazon Nova Micro | Rang complet | Texte uniquement |
Si vous utilisez un jeu de données dans lequel tous les enregistrements ont une longueur de contexte de 16 000 et qu'ils sont exécutés par exemple pendant 5 époques, vous ne pouvez avoir que 120 000 enregistrements au maximum. |
LoRa | Texte uniquement |
Si vous utilisez un jeu de données dans lequel tous les enregistrements ont une longueur de contexte de 16 000 et qu'ils sont exécutés par exemple pendant 5 époques, vous ne pouvez avoir que 125 000 enregistrements au maximum. |
||
Amazon Nova Lite |
Rang complet | Texte uniquement |
Si vous utilisez un jeu de données dans lequel tous les enregistrements ont une longueur de contexte de 16 000 et qu'ils sont exécutés par exemple pendant 5 époques, vous pouvez avoir jusqu'à 130 000 enregistrements. |
|
Image |
Si vous utilisez un jeu de données dans lequel tous les enregistrements ont une longueur de contexte de 16 000 caractères et qu'ils s'exécutent, par exemple, pendant 5 époques, vous pouvez compléter 20 000 échantillons en 2 jours |
|||
LoRa | Texte uniquement |
Si vous utilisez un jeu de données dans lequel tous les enregistrements ont une longueur de contexte de 16 000 et qu'ils sont exécutés par exemple pendant 5 époques, vous pouvez avoir jusqu'à 140 000 enregistrements. |
||
Image |
si vous utilisez un jeu de données dans lequel tous les enregistrements ont une longueur de contexte de 16 000 caractères et, par exemple, s'ils sont exécutés pendant 5 époques, vous pouvez compléter 20 000 échantillons en 2 jours. |
|||
Amazon Nova Pro |
Rang complet | Texte uniquement |
Si vous utilisez un jeu de données dans lequel tous les enregistrements ont une longueur de contexte de 16 000 et qu'ils sont exécutés par exemple pendant 5 époques, vous pouvez avoir jusqu'à 45 000 enregistrements. |
|
Image |
Si vous utilisez un jeu de données dans lequel tous les enregistrements ont une longueur de contexte de 16 000 caractères et qu'ils s'exécutent par exemple pendant 5 époques, vous pouvez compléter 20 000 échantillons en 4 jours |
|||
LoRa | Texte uniquement |
Si vous utilisez un jeu de données dans lequel tous les enregistrements ont une longueur de contexte de 16 000 et qu'ils sont exécutés par exemple pendant 5 époques, vous pouvez avoir jusqu'à 55 000 enregistrements. |
||
Image |
Si vous utilisez un jeu de données dans lequel tous les enregistrements ont une longueur de contexte de 16 000 caractères et qu'ils s'exécutent par exemple pendant 5 époques, vous pouvez compléter 20 000 échantillons en 4 jours |
|||
32 000 tâches d'une durée de contexte |
Amazon Nova Micro | Rang complet | Texte uniquement |
Si vous utilisez un jeu de données dans lequel tous les enregistrements ont une longueur de contexte de 32 000 et qu'ils s'exécutent, par exemple, pendant 5 époques, vous ne pouvez avoir que 45 000 enregistrements au maximum. |
LoRa | Texte uniquement |
Si vous utilisez un jeu de données dont tous les enregistrements ont une longueur de contexte de 32 000 et qu'ils sont exécutés par exemple pendant 5 époques, vous ne pouvez avoir que 50 000 enregistrements au maximum. |
||
Amazon Nova Lite |
Rang complet | Texte uniquement |
Si vous utilisez un jeu de données dans lequel tous les enregistrements ont une longueur de contexte de 32 000 et qu'ils sont exécutés par exemple pendant 5 époques, vous pouvez avoir jusqu'à 55 000 enregistrements. |
|
Image |
Si vous utilisez un jeu de données dans lequel tous les enregistrements ont une longueur de contexte de 32 000 et qu'ils sont exécutés par exemple pendant 5 époques, vous pouvez avoir jusqu'à 35 000 enregistrements. |
|||
LoRa | Texte uniquement |
Si vous utilisez un jeu de données dont tous les enregistrements ont une longueur de contexte de 32 000 et qu'ils s'exécutent, par exemple, pendant 5 époques, vous pouvez avoir jusqu'à 60 000 enregistrements. |
||
Image |
Si vous utilisez un jeu de données dans lequel tous les enregistrements ont une longueur de contexte de 32 000 et qu'ils sont exécutés par exemple pendant 5 époques, vous pouvez avoir jusqu'à 35 000 enregistrements. |
|||
Amazon Nova Pro | Rang complet | Texte uniquement |
Si vous utilisez un jeu de données dont tous les enregistrements ont une longueur de contexte de 32 000 et qu'ils s'exécutent, par exemple, pendant 5 époques, vous pouvez avoir jusqu'à 20 000 enregistrements. |
|
Image |
Si vous utilisez un jeu de données dans lequel tous les enregistrements ont une longueur de contexte de 64 000 et qu'ils sont exécutés par exemple pendant 5 époques, vous pouvez avoir jusqu'à 16 000 enregistrements. |
|||
LoRa | Texte uniquement |
Si vous utilisez un jeu de données dans lequel tous les enregistrements ont une longueur de contexte de 32 000 et qu'ils sont exécutés par exemple pendant 5 époques, vous pouvez avoir jusqu'à 22 000 enregistrements. |
||
Image |
Si vous utilisez un jeu de données dont tous les enregistrements ont une longueur de contexte de 64 000 et qu'ils s'exécutent, par exemple, pendant 5 époques, vous pouvez avoir jusqu'à 18 000 enregistrements. |
En réduisant le nombre d'époques ou la longueur contextuelle de vos enregistrements, vous pourriez fournir davantage d'enregistrements.
Configurations SFT et LoRa PEFT de rang complet
Cette section fournit des conseils sur les configurations de recettes pour les approches de réglage fin supervisé de rang complet (SFT) et de réglage fin efficace des paramètres d'adaptation de bas rang (LoRa PEFT). Ces fichiers de recettes servent de modèle pour les tâches de personnalisation de votre modèle, vous permettant de spécifier des paramètres d'entraînement, des hyperparamètres et d'autres paramètres critiques qui déterminent la manière dont votre modèle apprend à partir de vos données. Pour ajuster les hyperparamètres, suivez les instructions de la section Sélection des hyperparamètres.
Configurations de réglage fin (SFT à rang complet et LoRa PEFT)
La seule différence entre le SFT à rang complet et le PEFT LoRa en termes de recette est la configuration LoRa PEFT, qui est définie sur « null » pour le rang complet et définie sur les valeurs appropriées si vous utilisez un réglage précis basé sur LoRa PEFT. Des exemples de recettes sont disponibles dans le GitHub référentiel de SageMaker HyperPod recettes
À propos de la configuration « Exécuter ».
Clé | Définition | Micro | Lite | Pro | |
---|---|---|---|---|---|
Exécuter la configuration | type_modèle |
Spécifie la variante du modèle Nova à utiliser. Ne modifiez pas ce champ. |
« amazone. nova-micro-v10:128 km » |
« amazone. nova-lite-v1:30:300 km » |
« amazone. nova-pro-v1:30:300 km » |
nom_modèle ou chemin |
Le chemin d'accès au modèle de base. |
« nova-micro/prod » |
« nova-lite/produit » |
« nova-pro/prod » |
|
répliques |
Le nombre d'instances de calcul à utiliser pour la formation distribuée. |
2, 4 ou 8 |
4, 8 ou 16 |
6, 12 ou 24 |
À propos de la configuration de « training_config ».
Clé racine | Clés pour enfants | Définition | Min | Max | |
---|---|---|---|---|---|
max_length |
Longueur de séquence maximale en jetons. Cela détermine la taille de la fenêtre contextuelle pour l'entraînement. Réglable au multiple 1024 le plus proche, valeur maximale : 65536 (pour Lite Lora 32768). |
1 024 |
65536, sauf Lite LoRa qui supporte 32768. | ||
taille_du_lot globale |
Nombre total d'échantillons par étape, les valeurs autorisées sont 16, 32, 64. Valeur maximale : 32 pour Nova Pro, 64 pour Nova Lite et Micro. |
16 | 32 pour Nova Pro, 64 pour Nova Lite et Micro. | ||
Configuration du formateur | formateur | max_epochs |
Le nombre de passages complets dans votre ensemble de données d'entraînement. Pour la plupart des tâches de personnalisation, 1 à 5 époques sont généralement suffisantes. Il est recommandé d'en conserver jusqu'à 5. |
1 | - |
Configuration du modèle | modèle | décrochage caché |
Probabilité de supprimer les sorties d'état masquées. Augmentez (0,0-0,2) pour réduire le surajustement sur les petits ensembles de données. Les limites sont comprises entre 0 et 1. |
0 | 1 |
modèle | abandon de l'attention |
Probabilité de perdre le poids de l'attention. Peut aider à la généralisation. Les limites sont comprises entre 0 et 1. |
0 | 1 | |
modèle | ffn_dropout |
Probabilité de réduire les sorties du réseau rétroactif. Les limites sont comprises entre 0 et 1. |
0 | 1 | |
Configuration de l'optimiseur | modèle.optim | lr |
Taux d'apprentissage, contrôle la taille des étapes lors de l'optimisation. Les limites sont comprises entre 0 et 1. Généralement réglé entre 1e-6 et 1e-4 pour de bonnes performances. |
0 | 1 |
modèle.optim | name |
Algorithme d'optimisation. Actuellement, seul |
- | - | |
modèle.optim | adam_w_mode |
Activez le mode AdamW (vrai/faux). |
- | - | |
modèle.optim | eps |
Epsilon pour la stabilité numérique. |
|||
modèle.optim | Weight_Decay |
La force de régularisation L2 doit être comprise entre 0,0 et 1,0. |
0 | 1 | |
modèle.optim | bêtas |
Les versions bêta de l'optimiseur Adam doivent être comprises entre 0,0 et 1,0. |
0 | 1 | |
modèle.optim | sched_warmup_steps |
Nombre d'étapes pour augmenter progressivement le taux d'apprentissage. Cela améliore la stabilité de l'entraînement. Entre 1 et 20 ans. |
1 | 20 | |
modèle.optim | sched_constant_steps |
Étapes à un rythme d'apprentissage constant. |
1,00E-10 | 1,00E-06 | |
modèle.optim | sched.min_lr |
Taux d'apprentissage minimal à la fin de la période de décadence. Les limites sont comprises entre 0 et 1, mais doivent être inférieures au taux d'apprentissage. |
0 | 1 | |
Configuration LoRa PET |
modèle.peft | peft_scheme |
Utilisez « lora » ou « null ». « lora » utilise la méthode LoRa PEFT pour un réglage précis efficace des paramètres. « null » permet de peaufiner le classement complet. |
- | - |
modèle.peft | lora_tuning.loraplus_lr_ratio |
Le facteur d'échelle du taux d'apprentissage LoRa+ doit être compris entre 0,0 et 100,0. |
0 | 100 | |
modèle.peft | lora_tuning.alpha |
Facteur d'échelle pour les poids LoRa. Les valeurs autorisées sont 32, 64, 96, 128, 160 et 192. |
32 | 192 | |
modèle.peft | lora_tuning.adapter_dropout |
Régularisation des paramètres LoRa. Doit être comprise entre 0,0 et 1,0. |
0 | 1 |
Affiner des configurations spécifiques (DPO)
La seule différence entre l'optimisation directe des préférences (DPO) par rapport à LoRa PEFT et FullRank SFT réside dans la configuration de dpo_cfg et les valeurs autorisées. Reportez-vous au tableau ci-dessous pour l'exemple d'autorisation spécifique au DPO. Des exemples de recettes sont disponibles dans le GitHub référentiel de SageMaker HyperPod recettes
Clé racine | Clés pour enfants | Définition | Min | Max | |
---|---|---|---|---|---|
max_length | Longueur de séquence maximale en jetons. Cela détermine la taille de la fenêtre contextuelle pour l'entraînement. Réglable au multiple 1024 le plus proche, valeur maximale : 32 768. |
1 024 |
32768 |
||
taille_du_lot globale |
Taille globale du lot, les valeurs autorisées sont {16, 32, 64, 128, 256}. |
16 | 256 | ||
Configuration du formateur | formateur | max_epochs |
Le nombre de passages complets dans votre ensemble de données d'entraînement. Pour la plupart des tâches de personnalisation, 1 à 5 époques sont généralement suffisantes. Le nombre maximum d'époques est de 5. |
1 | 5 |
Configuration du modèle | modèle | décrochage caché |
Probabilité de supprimer les sorties d'état masquées. Augmentez (0,0-0,2) pour réduire le surajustement sur les petits ensembles de données. Les limites sont comprises entre 0 et 1. |
0 | 1 |
modèle | abandon de l'attention |
Probabilité de perdre le poids de l'attention. Peut aider à la généralisation. Les limites sont comprises entre 0 et 1. |
0 | 1 | |
modèle | ffn_dropout |
Probabilité de réduire les sorties du réseau rétroactif. Les limites sont comprises entre 0 et 1. |
0 | 1 | |
Configuration de l'optimiseur | modèle.optim | lr |
Taux d'apprentissage, contrôle la taille des étapes lors de l'optimisation. Les limites sont comprises entre 0 et 1. Généralement réglé entre 1e-6 et 1e-4 pour de bonnes performances. |
0 | 1 |
modèle.optim | name |
Algorithme d'optimisation. Actuellement, seul |
- | - | |
modèle.optim | adam_w_mode |
Activez le mode AdamW (vrai/faux). |
- | - | |
modèle.optim | eps |
Epsilon pour la stabilité numérique. |
1,00E-10 | 1,00E-06 | |
modèle.optim | Weight_Decay |
La force de régularisation L2 doit être comprise entre 0,0 et 1,0. |
0 | 1 | |
modèle.optim | bêtas |
Les versions bêta de l'optimiseur Adam doivent être comprises entre 0,0 et 1,0. |
0 | 1 | |
modèle.optim | sched_warmup_steps |
Nombre d'étapes pour augmenter progressivement le taux d'apprentissage. Cela améliore la stabilité de l'entraînement. Entre 1 et 20 ans. |
1 | 20 | |
modèle.optim | sched_constant_steps |
Étapes à un rythme d'apprentissage constant. |
|||
modèle.optim | sched.min_lr |
Taux d'apprentissage minimal à la fin de la période de décadence. Les limites sont comprises entre 0 et 1, mais doivent être inférieures au taux d'apprentissage. |
0 | 1 | |
Configuration LoRa PET |
modèle.peft | peft_scheme |
Utilisez « lora » ou « null ». « lora » utilise la méthode LoRa PEFT pour un réglage précis efficace des paramètres. « null » permet de peaufiner le classement complet. |
- | - |
modèle.peft | lora_tuning.loraplus_lr_ratio |
Le facteur d'échelle du taux d'apprentissage LoRa+ doit être compris entre 0,0 et 100,0. |
0 | 100 | |
modèle.peft | lora_tuning.alpha |
Facteur d'échelle pour les poids LoRa. Les valeurs autorisées sont 32, 64, 96, 128, 160 et 192. |
32 | 192 | |
modèle.peft | lora_tuning.adapter_dropout |
Régularisation des paramètres LoRa. Doit être compris entre 0,0 et 1,0. |
0 | 1 | |
Configuration du DPO | modèle-dpo_cfg | bêta |
Force de l'application des préférences. |
0.001 | 0.1 |
Exécution d'un modèle Nova personnalisé sur des tâches SageMaker de formation
Cette section explique comment exécuter un modèle Nova personnalisé sur des tâches de SageMaker formation via un environnement de bloc-notes Jupyter. Vous trouverez un exemple complet expliquant le processus de configuration et de lancement d'une tâche de formation, ainsi que des tableaux de référence permettant de sélectionner l'image de conteneur URIs et les configurations d'instance appropriées. Cette approche vous permet de contrôler par programmation vos flux de travail affinés tout en tirant parti SageMaker de l'infrastructure gérée pour la personnalisation des modèles. Pour plus d'informations, voir Utiliser un estimateur SageMaker basé sur l'IA pour exécuter une tâche de formation.
Tables de référence
Avant d'exécuter l'exemple de bloc-notes, reportez-vous aux tableaux suivants pour sélectionner l'image de conteneur URIs et les configurations d'instance appropriées.
Sélection de l'URI d'image
Recipe | URI de l'image |
---|---|
URI de l'image SFT |
708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-TJ-SFT-latest |
URI de l'image DPO |
708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-TJ-DPO-latest |
Sélection du type et du nombre d'instances
Modèle | Type de tâche | Type d’instance | Nombre d'instances recommandé | Nombre d'instances autorisées |
---|---|---|---|---|
Amazon Nova Micro | Réglage précis (SFT/DPO) |
p5.48xlarge |
2 | 2,4,8 |
Amazon Nova Lite | Réglage précis (SFT/DPO) |
p5.48xlarge |
4 | 4,8,16 |
Amazon Nova Pro | Réglage précis (SFT/DPO) |
p5.48xlarge |
6 | 6,12,24 |
Exemple de carnet
L'exemple de bloc-notes suivant montre comment exécuter une tâche de formation. Pour des carnets de démarrage supplémentaires expliquant comment personnaliser les modèles Nova à l'aide de tâches de formation SageMaker basées sur l'IA, voir Utiliser un estimateur SageMaker basé sur l'IA pour exécuter une tâche de formation.
# 1. Install dependencies !pip install sagemaker # 2. Import dependencies and initialize sagemaker session import sagemaker,boto3 sm = boto3.client('sagemaker', region_name='us-east-1') sagemaker_session = sagemaker.session.Session(boto_session=boto3.session.Session(), sagemaker_client=sm) # 3. Configure your job # Define the core configuration for launching a SageMaker Training Job. This includes input/output S3 URIs, container image, hardware setup, and other runtime parameters. Update the placeholders below before submitting the job. job_name = "<Your Job Name>" input_s3_uri = "<S3 path to input data>" validation_s3_uri = "<S3 path to validation data>" # optional, leave blank if no validation data output_s3_uri = "<S3 path to output location>" image_uri = "<Image URI from documentation>" # you can choose the image for SFT/DPO instance_type = "ml.p5.48xlarge" # do not change instance_count = <Integer number of hosts> # change hosts as needed. Refer to documentation for allowed values based on model type. role_arn = "<IAM Role you want to use to run the job>" recipe_path = "<Local path to the recipe file>" # 4. Launch SageMaker Training Job # This block sets up and runs the SageMaker training job using the PyTorch estimator. It configures the training image, hardware, input channels, and TensorBoard integration. Validation data is included if provided. from sagemaker.debugger import TensorBoardOutputConfig from sagemaker.pytorch import PyTorch from sagemaker.inputs import TrainingInput tensorboard_output_config = TensorBoardOutputConfig( s3_output_path=output_s3_uri, ) estimator = PyTorch( output_path=output_s3_uri, base_job_name=job_name, role=role_arn, instance_count=instance_count, instance_type=instance_type, training_recipe=recipe_path, sagemaker_session=sagemaker_session, image_uri=image_uri, tensorboard_output_config=tensorboard_output_config, # Add the setting for using TensorBoard. disable_profiler=True, debugger_hook_config=False ) trainingInput = TrainingInput( s3_data=input_s3_uri, distribution='FullyReplicated', s3_data_type='Converse' ) if (validation_s3_uri): validationInput = TrainingInput( s3_data=validation_s3_uri, distribution='FullyReplicated', s3_data_type='Converse' ) estimator.fit(inputs={"train": trainingInput, "validation": validationInput}) # inputs must be called "train" and "validation", do not change else: estimator.fit(inputs={"train": trainingInput}) # 5. Monitor your training job # To monitor your training job, you can either: # * Go to your AWS console -> Amazon Sagemaker AI -> Training -> Training Jobs # * run the following command # sm.describe_training_job(TrainingJobName="<complete training job name>")
Conseils d'optimisation des hyperparamètres
Pour affiner efficacement votre modèle Nova LLM, vous devez sélectionner avec soin les hyperparamètres. Bien que cette section explique la structure et les composants de base de la recette, l'optimisation des hyperparamètres pour votre cas d'utilisation spécifique nécessite souvent des conseils supplémentaires. Pour des recommandations complètes sur la sélection des hyperparamètres, les meilleures pratiques et les stratégies d'optimisation, consultez la section Sélection d'hyperparamètres. Cette ressource fournit des conseils détaillés sur la sélection des taux d'apprentissage, des tailles de lots, des périodes d'apprentissage et d'autres paramètres critiques appropriés en fonction des caractéristiques de votre ensemble de données et des objectifs de formation. Nous vous recommandons de consulter ce guide lorsque vous peaufinez la configuration de votre recette afin d'obtenir des performances de modèle optimales.
Pour plus de détails sur les valeurs minimales, maximales et par défaut pour les époques, le taux d'apprentissage et les étapes d'échauffement de l'apprentissage, voir Hyperparamètres pour comprendre les modèles.
Modifications courantes des recettes
Voici quelques ajustements de recettes courants en fonction de cas d'utilisation spécifiques :
-
Pour les ensembles de données plus petits (< 1 000 exemples)
training_config: max_epochs: 2 # More passes through a smaller dataset model: hidden_dropout: 0.1 # Increase regularization weight_decay: 0.01 # Increase regularization
-
Pour plus d'efficacité avec des capacités de calcul limitées
peft: peft_scheme: "lora" lora_tuning:
-
Pour le réglage d'instructions complexes
optim: lr: 5e-6 # Lower learning rate for more stable learning sched: warmup_steps: 100 # Longer warmup for stability