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.
Fine-tune Nouveau 1.0
Note
Vous pouvez affiner les modèles Amazon Nova 1.0 à l'aide du réglage fin supervisé (SFT) avec des approches de rang complet ou LoRa. Pour affiner les modèles Nova 2.0, voir Fine-tune Nova 2.0.
Conditions préalables
Avant de commencer une tâche d’entraînement, notez les éléments suivants.
-
Compartiments Amazon S3 pour stocker vos données d’entrée et de sortie des tâches d’entraînement. 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 les mêmes emplacements que Région AWS ceux où vous créez toutes les autres ressources de formation. Pour plus d’informations, consultez Création d’un compartiment à usage général.
-
Un rôle IAM autorisé à exécuter une tâche d’entraînement. Assurez-vous de joindre une politique IAM à
AmazonSageMakerFullAccess. Pour plus d'informations, consultez Comment utiliser les rôles d'exécution de l' SageMaker IA. -
Recettes Amazon Nova de base, consultez Obtention de formules 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 peaufinage des grands modèles de langage. Que vous utilisiez un réglage fin supervisé complet (SFT) ou une adaptation de bas rang (LoRa), vos données doivent respecter des exigences de format spécifiques. Ces exigences garantissent la réussite de la formation des modèles. Cette section décrit les formats de données, les méthodes de validation et les bonnes pratiques nécessaires pour vous aider à préparer efficacement vos jeux de données afin d’optimiser les modèles Amazon Nova.
SFT
Exigences relatives au format de données SFT - Pour le SFT de rang complet et le SFT LoRa, les données doivent suivre le format indiqué ci-dessous. Pour des exemples et des contraintes de ce format, consultezPréparation des données pour un réglage multimodal précis.
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 des exemples Amazon Bedrockjsonl respectent les spécifications de format requises et à identifier tout problème potentiel avant de soumettre votre tâche de peaufinage.
Les tâches d’entraînement sont limitées par défaut à un jour, bien que les estimations présentées dans les tableaux ci-dessous supposent une durée d’entraînement de 5 jours à des fins d’illustration. À titre de bonne pratique, nous vous recommandons de porter votre limite de durée d’entraînement à 28 jours maximum pour faire face à des charges de travail d’entraînement plus longues. Pour demander une augmentation de cette limite, consultez Demande d’augmentation de quota.
Limites des jeux de données SFT
| Longueur de contexte | Modèle | Méthode | Ensembles de données | Description |
|---|---|---|---|---|
|
Tâches de longueur de contexte 32k |
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 32k 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 dont tous les enregistrements ont une longueur de contexte de 32k et qu’ils sont exécutés par exemple pendant 5 époques, vous ne pouvez avoir que 100 000 enregistrements au maximum. |
|
| Image et vidéo |
Si vous utilisez un jeu de données dont tous les enregistrements ont une longueur de contexte de 32k et qu’ils sont exécutés par exemple pendant 5 époques, vous ne pouvez avoir que 50 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 32k et qu’ils sont exécutés par exemple pendant 5 époques, vous ne pouvez avoir que 100 000 enregistrements au maximum. |
||
| Image et vidéo | Si vous utilisez un jeu de données dont tous les enregistrements ont une longueur de contexte de 32k et qu’ils sont exécutés par exemple pendant 5 époques, vous ne pouvez avoir que 90 000 enregistrements au maximum. | |||
|
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 32k et qu’ils sont exécutés par exemple pendant 5 époques, vous ne pouvez avoir que 40 000 enregistrements au maximum. |
|
| Image et vidéo |
Si vous utilisez un jeu de données dont tous les enregistrements ont une longueur de contexte de 32k et qu’ils sont exécutés par exemple pendant 5 époques, vous ne pouvez avoir que 30 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 32k et qu’ils sont exécutés par exemple pendant 5 époques, vous ne pouvez avoir que 40 000 enregistrements au maximum. |
||
| Image et vidéo |
Si vous utilisez un jeu de données dont tous les enregistrements ont une longueur de contexte de 32k et qu’ils sont exécutés par exemple pendant 5 époques, vous ne pouvez avoir que 35 000 enregistrements au maximum. |
|||
|
Tâches de longueur de contexte 64k |
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 64k 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 dont tous les enregistrements ont une longueur de contexte de 64k et qu’ils sont exécutés par exemple pendant 5 époques, vous ne pouvez avoir que 50 000 enregistrements au maximum. |
|
|
Image et vidéo |
Si vous utilisez un jeu de données dont tous les enregistrements ont une longueur de contexte de 64k et qu’ils sont exécutés par exemple pendant 5 époques, vous ne pouvez avoir que 30 000 enregistrements au maximum. |
|||
| LoRA | - |
LoRA n’est pas pris en charge à 64k pour Nova Lite. |
||
| Amazon Nova Pro | Rang complet et LoRA | Texte uniquement |
Si vous utilisez un jeu de données dont tous les enregistrements ont une longueur de contexte de 64k et qu’ils sont exécutés par exemple pendant 5 époques, vous ne pouvez avoir que 17 000 enregistrements au maximum. |
|
|
Image et vidéo |
Si vous utilisez un jeu de données dont tous les enregistrements ont une longueur de contexte de 64k et qu’ils sont exécutés par exemple pendant 5 époques, vous ne pouvez avoir que 15 000 enregistrements au maximum. |
En réduisant le nombre d’époques ou la longueur contextuelle de vos enregistrements, vous pourriez fournir davantage d’enregistrements.
Full-rank Configurations PEFT SFT et LoRa
Cette section fournit des conseils sur les configurations de formules pour les approches de peaufinage supervisé (SFT) de rang complet et de peaufinage efficace des paramètres d’adaptation de rang inférieur (LoRA PEFT). Ces fichiers de formules servent de plan 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.
Fine-tuning configurations (Full-rank SFT et LoRa PEFT)
La seule différence entre le SFT de 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 le réglage LoRa. PEFT-based Des exemples de recettes sont disponibles dans le GitHub référentiel de
À propos de la configuration « run ».
| Clé | Définition | micro | Lite | Pro | |
|---|---|---|---|---|---|
| Configuration d’exécution | type_modèle |
Spécifie la variante du modèle Nova à utiliser. Ne modifiez pas ce fichier. |
"amazon.nova-micro-v1:0:128k" |
"amazon.nova-lite-v1:0:300k" |
"amazon.nova-pro-v1:0:300k" |
| model_name_or_path |
Chemin d’accès au modèle de base. |
« nouvelle- micro/prod » |
« nouvelle- lite/prod » |
« nouvelle- pro/prod » |
|
| réplicas |
Nombre d’instances de calcul à utiliser pour l’entraînement distribué. |
2, 4 ou 8 |
4, 8 ou 16 |
6, 12 ou 24 |
À propos de la configuration « training_config ».
| Clé racine | Clés enfants | Définition | Min | Max | |
|---|---|---|---|---|---|
| max_length |
Longueur de séquence maximale en jetons. Détermine la taille de la fenêtre contextuelle pour l’entraînement. Réglable au multiple de 1 024 le plus proche, valeur maximale : 65 536 (pour Lite Lora 32 768). |
1 024 |
65 536, sauf Lite LoRA qui supporte 32 768. | ||
| global_batch_size |
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 |
Nombre de passages complets sur votre jeu 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 | hidden_dropout |
Probabilité de supprimer les sorties d’état masquées. Augmentez (0.0-0.2) pour réduire le surajustement sur de plus petits jeux de données. Les limites sont comprises entre 0 et 1. |
0 | 1 |
| modèle | attention_dropout |
Probabilité de perte des pondérations d’attention. Peut aider à la généralisation. Les limites sont comprises entre 0 et 1. |
0 | 1 | |
| modèle | ffn_dropout |
Probabilité de perte des sorties du réseau à propagation avant. Les limites sont comprises entre 0 et 1. |
0 | 1 | |
| Configuration d’optimiseur | model.optim | ta |
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 |
| model.optim | name |
Algorithme d’optimiseur. Actuellement, seul |
- | - | |
| model.optim | adam_w_mode |
Activez le mode AdamW (true/false). |
- | - | |
| model.optim | eps |
Epsilon pour la stabilité numérique. |
|||
| model.optim | weight_decay |
La force de régularisation L2 doit être comprise entre 0,0 et 1,0. |
0 | 1 | |
| model.optim | bêtas |
Les valeurs bêta de l’optimiseur Adam doivent être comprises entre 0,0 et 1,0. |
0 | 1 | |
| model.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. |
1 | 20 | |
| model.optim | sched_constant_steps |
Étapes à un rythme d’apprentissage constant. |
1,00 E-10 | 1,00 E-06 | |
| model.optim | sched.min_lr |
Taux d’apprentissage minimal en fin de décalage. Les limites sont comprises entre 0 et 1, mais doivent être inférieures au taux d’apprentissage. |
0 | 1 | |
|
Configuration LoRA PEFT |
model.peft | peft_scheme |
Utilisez « lora » ou « null ». « lora » utilise la méthode LoRA PEFT pour un peaufinage efficace des paramètres. « null » permet le peaufinage de rang complet. |
- | - |
| model.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 | |
| model.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 | |
| model.peft | lora_tuning.adapter_dropout |
Régularisation des paramètres LoRA. La valeur doit être comprise entre 0,0 et 1,0. |
0 | 1 |
Exécution d'un modèle Nova personnalisé sur SageMaker Training Jobs
Cette section explique comment exécuter un modèle Nova personnalisé sur SageMaker Training Jobs via un environnement de bloc-notes Jupyter. Vous trouverez un exemple complet expliquant le processus de configuration et de lancement d’une tâche d’entraînement, ainsi que des tableaux de référence permettant de sélectionner les URI d’image de conteneur et les configurations d’instance appropriés. Cette approche vous permet de contrôler par programmation vos flux de travail tout en tirant parti de l'infrastructure gérée par l' SageMaker IA pour la personnalisation des modèles. Pour plus d'informations, voir Utiliser un estimateur SageMaker IA pour exécuter une tâche de formation.
Tableaux de référence
Avant d’exécuter l’exemple de bloc-notes, reportez-vous aux tableaux suivants pour sélectionner les URI d’image de conteneur et les configurations d’instance appropriés.
Sélection de l’URI d’image
| Formule | 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 |
Sélection du type et du nombre d’instances
| Modèle | Fine-tuning Type d'emploi | Type de technique | Type d’instance | Nombre d’instances recommandées | Nombre d’instances autorisées |
|---|---|---|---|---|---|
| Amazon Nova Micro | SFT | LoRA | g5.12xlarge, g6.12xlarge, g5.48xlarge, g6.48xlarge |
1 | 1 |
| LoRa+classement complet | g5.48xlarge, g6.48xlarge |
1 | 1 | ||
p4d.24xlarge |
2 | 2, 4, 8 | |||
p5.48xlarge, p5en.48xlarge |
1 | 1, 2, 4 et 8 | |||
| Amazon Nova Lite | SFT | LoRA | g5.12xlarge, g6.12xlarge, g5.48xlarge, g6.48xlarge |
1 | 1 |
p5.48xlarge, p5en.48xlarge |
1 | 1, 4, 8 et 16 | |||
| LoRa+classement complet | p4d.24xlarge |
4 | 4, 8 et 16 | ||
p5.48xlarge, p5en.48xlarge |
2 | 2, 4, 8, 16 | |||
| Amazon Nova Pro | SFT | LoRA | p4d.24xlarge |
6 | 6, 12 et 24 |
p5.48xlarge, p5en.48xlarge |
3 | 3, 6, 12 et 24 | |||
| LoRa+classement complet | p5.48xlarge, p5en.48xlarge |
6 | 6, 12 et 24 |
Exemple de bloc-notes
L’exemple de bloc-notes suivant montre comment exécuter une tâche d’entraînement. Pour d'autres carnets de démarrage sur la façon de personnaliser les modèles Nova à l'aide de SageMaker Training Jobs, voir Utiliser un estimateur SageMaker IA pour exécuter un job de formation.
# 1. Install dependencies !pip install sagemaker==2.254.1 # 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>" # use the SFT image 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>" output_kms_key = "<KMS key arn to encrypt trained model in Amazon-owned S3 bucket>" # optional, leave blank for Amazon managed encryption # 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, output_kms_key=output_kms_key ) 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})
Conseils d’optimisation des hyperparamètres
Fine-tuning votre modèle Nova LLM nécessite une sélection rigoureuse des hyperparamètres. Bien que cette section explique la structure et les composants de base de la formule, 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 bonnes pratiques et les stratégies d’optimisation, consultez Sélection des hyperparamètres. Cette ressource fournit des conseils détaillés sur la sélection des taux d’apprentissage, des tailles de lots, des époques d’apprentissage et d’autres paramètres critiques appropriés en fonction des caractéristiques de votre jeu de données et des objectifs d’entraînement. Nous vous recommandons de consulter ce guide lorsque vous optimisez la configuration de votre formule 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 de préparation de l’apprentissage, consultez Hyperparamètres pour la compréhension des modèles.
Modifications courantes de formules
Voici quelques ajustements de formules courants en fonction de cas d’utilisation spécifiques :
-
Pour les jeux 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