

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.

# Ajustez Nova 1.0
<a name="nova-fine-tune-1"></a>

**Note**  
Vous pouvez affiner les modèles de la série Amazon Nova 1.0 à l'aide du réglage fin supervisé (SFT) et de l'optimisation directe des préférences. Pour peaufiner les modèles Nova 2.0, voir [Fine-tune Nova](https://docs.aws.amazon.com//nova/latest/nova2-userguide/nova-fine-tune-2.html) 2.0.

## Conditions préalables
<a name="nova-model-training-jobs-prerequisites"></a>

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 le même Région AWS endroit où vous créez toutes les autres ressources pour la formation. Pour plus d’informations, consultez [Création d’un compartiment à usage général](https://docs.aws.amazon.com//AmazonS3/latest/userguide/create-bucket-overview.html).
+ 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](https://docs.aws.amazon.com//sagemaker/latest/dg/sagemaker-roles.html).
+ Recettes Amazon Nova de base, consultez [Obtention de formules Amazon Nova](nova-model-recipes.md#nova-model-get-recipes).

## Préparation des données
<a name="nova-model-training-prepare-data"></a>

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 le peaufinage supervisé (SFT) ou l’optimisation directe des préférences (DPO), avec des approches d’adaptation de rang complet ou inférieur (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 bonnes pratiques nécessaires pour vous aider à préparer efficacement vos jeux de données afin d’optimiser les modèles Amazon Nova.

### Exigences de format de données
<a name="nova-model-training-prepare-data-format"></a>

**SFT**

Exigences relatives au format de données SFT - Pour le SFT complet et le SFT LoRa, les données doivent suivre le format indiqué ci-dessous. Pour des exemples et des contraintes liés à ce format, voir[Préparation des données pour un réglage multimodal précis](fine-tune-prepare-data-understanding.md).

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 Bedrock](https://github.com/aws-samples/amazon-bedrock-samples/blob/main/custom-models/bedrock-fine-tuning/nova/understanding/dataset_validation/nova_ft_dataset_validator.py). Cet outil de validation vous aidera à garantir que vos fichiers `jsonl` respectent les spécifications de format requises et à identifier tout problème potentiel avant de soumettre votre tâche de peaufinage.

**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 indiqué ci-dessous. 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 jeux de données DPO - Les autres contraintes sur les jeux de données sont les mêmes pour SFT. Pour de plus amples informations, veuillez consulter [Préparation des données pour un réglage multimodal précis](fine-tune-prepare-data-understanding.md). Un seul fichier JSONL pour l’entraînement et un seul fichier JSONL pour la validation sont attendus. Le jeu de validation est facultatif.

Recommandations relatives aux jeux de données DPO : un minimum de 1 000 paires de préférences pour un entraînement efficace. Des données de préférences de haute qualité permettront d’obtenir des résultats plus efficaces.

### Exemples
<a name="nova-model-training-prepare-data-example"></a>

**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"
                }
            ]
        }
    ],
}
```

### Limites des jeux de données
<a name="nova-model-training-prepare-data-limits"></a>

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](https://docs.aws.amazon.com//servicequotas/latest/userguide/request-quota-increase.html).

**Limites des jeux de données SFT**



- ** Tâches de longueur de contexte 32k **
  - **Modèle:** Amazon Nova Micro / **Method:** Rang complet et LoRA / **Ensembles de données:** Texte uniquement / **Description:** 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.
  - **Modèle:** Amazon Nova Lite / **Method:** Rang complet / **Ensembles de données:** Texte uniquement / **Description:** 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.
  - **Ensembles de données:** Image et vidéo / **Description:** 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.
  - **Method:** LoRA / **Ensembles de données:** Texte uniquement / **Description:** 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.
  - **Ensembles de données:** Image et vidéo / **Description:** 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.
  - **Modèle:** Amazon Nova Pro / **Method:** Rang complet / **Ensembles de données:** Texte uniquement / **Description:** 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.
  - **Ensembles de données:** Image et vidéo / **Description:** 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.
  - **Method:** LoRA / **Ensembles de données:** Texte uniquement / **Description:** 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.
  - **Ensembles de données:** Image et vidéo / **Description:** 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 **
  - **Modèle:** Amazon Nova Micro / **Method:** Rang complet et LoRA / **Ensembles de données:** Texte uniquement / **Description:** 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.
  - **Modèle:** Amazon Nova Lite / **Method:** Rang complet / **Ensembles de données:** Texte uniquement / **Description:** 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.
  - **Ensembles de données:** Image et vidéo / **Description:** 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.
  - **Method:** LoRA / **Ensembles de données:** - / **Description:** LoRA n’est pas pris en charge à 64k pour Nova Lite.
  - **Modèle:** Amazon Nova Pro / **Method:** Rang complet et LoRA / **Ensembles de données:** Texte uniquement / **Description:** 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.
  - **Ensembles de données:** Image et vidéo / **Description:** 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.



Limites des jeux de données DPO



- ** Tâches de longueur de contexte 16k **
  - **Modèle:** Amazon Nova Micro / **Method:** Rang complet / **Ensembles de données:** Texte uniquement / **Description:** Si vous utilisez un jeu de données dont tous les enregistrements ont une longueur de contexte de 16k et qu’ils sont exécutés par exemple pendant 5 époques, vous ne pouvez avoir que 120 000 enregistrements au maximum.
  - **Method:** LoRA / **Ensembles de données:** Texte uniquement / **Description:** Si vous utilisez un jeu de données dont tous les enregistrements ont une longueur de contexte de 16k et qu’ils sont exécutés par exemple pendant 5 époques, vous ne pouvez avoir que 125 000 enregistrements au maximum.
  - **Modèle:** Amazon Nova Lite / **Method:** Rang complet / **Ensembles de données:** Texte uniquement / **Description:** Si vous utilisez un jeu de données dont tous les enregistrements ont une longueur de contexte de 16k et qu’ils sont exécutés par exemple pendant 5 époques, vous ne pouvez avoir que 130 000 enregistrements au maximum.
  - **Ensembles de données:** Image / **Description:** Si vous utilisez un jeu de données dont tous les enregistrements ont une longueur de contexte de 16k et qu’ils sont exécutés par exemple pendant 5 époques, vous pouvez terminer 20 000 échantillons en deux jours.
  - **Method:** LoRA / **Ensembles de données:** Texte uniquement / **Description:** Si vous utilisez un jeu de données dont tous les enregistrements ont une longueur de contexte de 16k et qu’ils sont exécutés par exemple pendant 5 époques, vous ne pouvez avoir que 140 000 enregistrements au maximum.
  - **Ensembles de données:** Image / **Description:** Si vous utilisez un jeu de données dont tous les enregistrements ont une longueur de contexte de 16k et qu’ils sont exécutés par exemple pendant 5 époques, vous pouvez terminer 20 000 échantillons en deux jours.
  - **Modèle:** Amazon Nova Pro / **Method:** Rang complet / **Ensembles de données:** Texte uniquement / **Description:** Si vous utilisez un jeu de données dont tous les enregistrements ont une longueur de contexte de 16k et qu’ils sont exécutés par exemple pendant 5 époques, vous ne pouvez avoir que 45 000 enregistrements au maximum.
  - **Ensembles de données:** Image / **Description:** Si vous utilisez un jeu de données dont tous les enregistrements ont une longueur de contexte de 16k et qu’ils sont exécutés par exemple pendant 5 époques, vous pouvez terminer 20 000 échantillons en quatre jours.
  - **Method:** LoRA / **Ensembles de données:** Texte uniquement / **Description:** Si vous utilisez un jeu de données dont tous les enregistrements ont une longueur de contexte de 16k et qu’ils sont exécutés par exemple pendant 5 époques, vous ne pouvez avoir que 55 000 enregistrements au maximum.
  - **Ensembles de données:** Image / **Description:** Si vous utilisez un jeu de données dont tous les enregistrements ont une longueur de contexte de 16k et qu’ils sont exécutés par exemple pendant 5 époques, vous pouvez terminer 20 000 échantillons en quatre jours.

- ** Tâches de longueur de contexte 32k **
  - **Modèle:** Amazon Nova Micro / **Method:** Rang complet / **Ensembles de données:** Texte uniquement / **Description:** 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 45 000 enregistrements au maximum.
  - **Method:** LoRA / **Ensembles de données:** Texte uniquement / **Description:** 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.
  - **Modèle:** Amazon Nova Lite / **Method:** Rang complet / **Ensembles de données:** Texte uniquement / **Description:** 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 55 000 enregistrements au maximum.
  - **Ensembles de données:** Image / **Description:** 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.
  - **Method:** LoRA / **Ensembles de données:** Texte uniquement / **Description:** 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 60 000 enregistrements au maximum.
  - **Ensembles de données:** Image / **Description:** 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.
  - **Modèle:** Amazon Nova Pro / **Method:** Rang complet / **Ensembles de données:** Texte uniquement / **Description:** 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 20 000 enregistrements au maximum.
  - **Ensembles de données:** Image / **Description:** 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 16 000 enregistrements au maximum.
  - **Method:** LoRA / **Ensembles de données:** Texte uniquement / **Description:** 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 22 000 enregistrements au maximum.
  - **Ensembles de données:** Image / **Description:** 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 18 000 enregistrements au maximum.



En réduisant le nombre d’époques ou la longueur contextuelle de vos enregistrements, vous pourriez fournir davantage d’enregistrements.

## Configurations SFT de rang complet et LoRA PEFT
<a name="nova-model-training-jobs-recipe-config"></a>

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](https://docs.aws.amazon.com//nova/latest/userguide/customize-fine-tune-hyperparameters.html).

### Configurations de peaufinage (SFT de rang complet et LoRA PEFT)
<a name="nova-model-training-jobs-recipe-config-1"></a>

La seule différence entre le peaufinage SFT de rang complet et le peaufinage LoRA PEFT en termes de formule 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 peaufinage basé sur LoRA PEFT. Des exemples de recettes sont disponibles dans le GitHub référentiel de [recettes](https://github.com/aws/sagemaker-hyperpod-recipes/tree/main/recipes_collection/recipes). Les tableaux suivants présentent des configurations détaillées qui pourraient vous être utiles.

À 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.  | « amazone. nova-micro-v1:40:128 km » | « amazone. nova-lite-v1:30:300 km » | « amazone. nova-pro-v1:30:300 km » | 
|  | model\_name\_or\_path | Chemin d’accès au modèle de base. | "nova-micro/prod" | "nova-lite/prod" | "nova-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:** max\_length
  - **Définition:** 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).
  - **Min:** 1 024
  - **Max:** 65 536, sauf Lite LoRA qui supporte 32 768.

- ****
  - **Clé racine:** 
  - **Clés enfants:** global\_batch\_size
  - **Définition:** 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.
  - **Min:** 16
  - **Max:** 32 pour Nova Pro, 64 pour Nova Lite et Micro.

- ****Configuration du formateur****
  - **Clé racine:** formateur
  - **Clés enfants:** max\_epochs
  - **Définition:** 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.
  - **Min:** 1
  - **Max:** -

- ****Configuration du modèle****
  - **Clé racine:** modèle / **Clés enfants:** hidden\_dropout / **Définition:** 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. / **Min:** 0 / **Max:** 1
  - **Clé racine:** modèle / **Clés enfants:** attention\_dropout / **Définition:** Probabilité de perte des pondérations d’attention. Peut aider à la généralisation. Les limites sont comprises entre 0 et 1. / **Min:** 0 / **Max:** 1
  - **Clé racine:** modèle / **Clés enfants:** ffn\_dropout / **Définition:** Probabilité de perte des sorties du réseau à propagation avant. Les limites sont comprises entre 0 et 1. / **Min:** 0 / **Max:** 1

- ****Configuration d’optimiseur****
  - **Clé racine:** model.optim / **Clés enfants:** ta / **Définition:** 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. / **Min:** 0 / **Max:** 1
  - **Clé racine:** model.optim / **Clés enfants:** name / **Définition:** Algorithme d’optimiseur. Actuellement, seul `distributed_fused_adam` est pris en charge. / **Min:** - / **Max:** -
  - **Clé racine:** model.optim / **Clés enfants:** adam\_w\_mode / **Définition:** Activez le mode AdamW (vrai/faux). / **Min:** - / **Max:** -
  - **Clé racine:** model.optim / **Clés enfants:** eps / **Définition:** Epsilon pour la stabilité numérique. / **Min:**  / **Max:** 
  - **Clé racine:** model.optim / **Clés enfants:** weight\_decay / **Définition:** La force de régularisation L2 doit être comprise entre 0,0 et 1,0. / **Min:** 0 / **Max:** 1
  - **Clé racine:** model.optim / **Clés enfants:** bêtas / **Définition:** Les valeurs bêta de l’optimiseur Adam doivent être comprises entre 0,0 et 1,0. / **Min:** 0 / **Max:** 1
  - **Clé racine:** model.optim / **Clés enfants:** sched\_warmup\_steps / **Définition:** Nombre d’étapes pour augmenter progressivement le taux d’apprentissage. Cela améliore la stabilité de l’entraînement. Entre 1 et 20. / **Min:** 1 / **Max:** 20
  - **Clé racine:** model.optim / **Clés enfants:** sched\_constant\_steps / **Définition:** Étapes à un rythme d’apprentissage constant. / **Min:** 1.00E-10 / **Max:** 1,00E-06
  - **Clé racine:** model.optim / **Clés enfants:** sched.min\_lr / **Définition:** 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. / **Min:** 0 / **Max:** 1

- ** **Configuration LoRA PEFT** **
  - **Clé racine:** model.peft / **Clés enfants:** peft\_scheme / **Définition:** 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. / **Min:** - / **Max:** -
  - **Clé racine:** model.peft / **Clés enfants:** lora\_tuning.loraplus\_lr\_ratio / **Définition:** Le facteur d’échelle du taux d’apprentissage LoRA\+ doit être compris entre 0,0 et 100,0. / **Min:** 0 / **Max:** 100
  - **Clé racine:** model.peft / **Clés enfants:** lora\_tuning.alpha / **Définition:** Facteur d’échelle pour les poids LoRA. Les valeurs autorisées sont 32, 64, 96, 128, 160 et 192. / **Min:** 32 / **Max:** 192
  - **Clé racine:** model.peft / **Clés enfants:** lora\_tuning.adapter\_dropout / **Définition:** Régularisation des paramètres LoRA. La valeur doit être comprise entre 0,0 et 1,0. / **Min:** 0 / **Max:** 1



### Peaufinage de configurations spécifiques (DPO)
<a name="nova-model-training-jobs-recipe-config-2"></a>

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 pour DPO. Des exemples de recettes sont disponibles dans le GitHub référentiel de [recettes](https://github.com/aws/sagemaker-hyperpod-recipes/tree/main/recipes_collection/recipes). Le tableau suivant présente les configurations détaillées qui pourraient vous être utiles.



- ****
  - **Clé racine:** 
  - **Clés enfants:** max\_length
  - **Définition:** 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 : 32 768.
  - **Min:** 1 024
  - **Max:** 32768

- ****
  - **Clé racine:** 
  - **Clés enfants:** global\_batch\_size
  - **Définition:** Taille globale de lot, les valeurs autorisées sont {16, 32, 64, 128, 256}.
  - **Min:** 16
  - **Max:** 256

- ****Configuration du formateur****
  - **Clé racine:** formateur
  - **Clés enfants:** max\_epochs
  - **Définition:** 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. Le nombre maximum d’époques est de 5.
  - **Min:** 1
  - **Max:** 5

- ****Configuration du modèle****
  - **Clé racine:** modèle / **Clés enfants:** hidden\_dropout / **Définition:** 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. / **Min:** 0 / **Max:** 1
  - **Clé racine:** modèle / **Clés enfants:** attention\_dropout / **Définition:** Probabilité de perte des pondérations d’attention. Peut aider à la généralisation. Les limites sont comprises entre 0 et 1. / **Min:** 0 / **Max:** 1
  - **Clé racine:** modèle / **Clés enfants:** ffn\_dropout / **Définition:** Probabilité de perte des sorties du réseau à propagation avant. Les limites sont comprises entre 0 et 1. / **Min:** 0 / **Max:** 1

- ****Configuration d’optimiseur****
  - **Clé racine:** model.optim / **Clés enfants:** ta / **Définition:** 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. / **Min:** 0 / **Max:** 1
  - **Clé racine:** model.optim / **Clés enfants:** name / **Définition:** Algorithme d’optimiseur. Actuellement, seul `distributed_fused_adam` est pris en charge. / **Min:** - / **Max:** -
  - **Clé racine:** model.optim / **Clés enfants:** adam\_w\_mode / **Définition:** Activez le mode AdamW (vrai/faux). / **Min:** - / **Max:** -
  - **Clé racine:** model.optim / **Clés enfants:** eps / **Définition:** Epsilon pour la stabilité numérique. / **Min:** 1.00E-10 / **Max:** 1,00E-06
  - **Clé racine:** model.optim / **Clés enfants:** weight\_decay / **Définition:** La force de régularisation L2 doit être comprise entre 0,0 et 1,0. / **Min:** 0 / **Max:** 1
  - **Clé racine:** model.optim / **Clés enfants:** bêtas / **Définition:** Les valeurs bêta de l’optimiseur Adam doivent être comprises entre 0,0 et 1,0. / **Min:** 0 / **Max:** 1
  - **Clé racine:** model.optim / **Clés enfants:** sched\_warmup\_steps / **Définition:** Nombre d’étapes pour augmenter progressivement le taux d’apprentissage. Cela améliore la stabilité de l’entraînement. Entre 1 et 20. / **Min:** 1 / **Max:** 20
  - **Clé racine:** model.optim / **Clés enfants:** sched\_constant\_steps / **Définition:** Étapes à un rythme d’apprentissage constant. / **Min:**  / **Max:** 
  - **Clé racine:** model.optim / **Clés enfants:** sched.min\_lr / **Définition:** 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. / **Min:** 0 / **Max:** 1

- ** **Configuration LoRA PEFT** **
  - **Clé racine:** model.peft / **Clés enfants:** peft\_scheme / **Définition:** 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. / **Min:** - / **Max:** -
  - **Clé racine:** model.peft / **Clés enfants:** lora\_tuning.loraplus\_lr\_ratio / **Définition:** Le facteur d’échelle du taux d’apprentissage LoRA\+ doit être compris entre 0,0 et 100,0. / **Min:** 0 / **Max:** 100
  - **Clé racine:** model.peft / **Clés enfants:** lora\_tuning.alpha / **Définition:** Facteur d’échelle pour les poids LoRA. Les valeurs autorisées sont 32, 64, 96, 128, 160 et 192. / **Min:** 32 / **Max:** 192
  - **Clé racine:** model.peft / **Clés enfants:** lora\_tuning.adapter\_dropout / **Définition:** Régularisation des paramètres LoRA. Doit être compris entre 0,0 et 1,0. / **Min:** 0 / **Max:** 1

- ****Configuration DPO****
  - **Clé racine:** model-dpo\_cfg
  - **Clés enfants:** bêta
  - **Définition:** Force de l’application des préférences.
  - **Min:** 0.001
  - **Max:** 0.1



## Exécution d'un modèle Nova personnalisé sur SageMaker Training Jobs
<a name="nova-model-training-jobs-notebook"></a>

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 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 de l'infrastructure gérée par l' SageMaker IA pour personnaliser les modèles. Pour plus d'informations, voir [Utiliser un estimateur SageMaker basé sur l'IA pour exécuter une tâche de formation](https://docs.aws.amazon.com//sagemaker/latest/dg/docker-containers-adapt-your-own-private-registry-estimator.html).

### Tableaux de référence
<a name="nova-model-training-jobs-reference-table"></a>

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**


| 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 | 
| 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 | Affiner le type de Job | 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, 8 | 
|  | DPO | LoRA | g5.12xlarge, g6.12xlarge, g5.48xlarge, g6.48xlarge | 1 | 1 | 
|  |  | LORA\+classement complet | p4d.24xlarge, p5.48xlarge, p5en.48xlarge | 2 | 2, 4, 8 | 
| Amazon Nova Lite | SFT | LoRA | g5.12xlarge, g6.12xlarge, g5.48xlarge, g6.48xlarge | 1 | 1 | 
|  |  |  | p5.48xlarge, p5en.48xlarge | 1 | 1, 4, 8, 16 | 
|  |  | LORA\+classement complet | p4d.24xlarge | 4 | 4, 8, 16 | 
|  |  |  | p5.48xlarge, p5en.48xlarge | 2 | 2, 4, 8, 16 | 
|  | DPO | LoRA | g5.48xlarge, g6.48xlarge | 1 | 1 | 
|  |  | LORA\+classement complet | p4d.24xlarge, p5.48xlarge, p5en.48xlarge | 4 | 4, 8, 16 | 
| Amazon Nova Pro | SFT | LoRA | p4d.24xlarge | 6 | 6, 12, 24 | 
|  |  |  | p5.48xlarge, p5en.48xlarge | 3 | 3, 6, 12, 24 | 
|  |  | LORA\+classement complet | p5.48xlarge, p5en.48xlarge | 6 | 6, 12, 24 | 
|  | DPO | LoRA | p4d.24xlarge | 6 | 6, 12, 24 | 
|  |  | LORA\+classement complet | p4d.24xlarge | 12 | 12, 24 | 
|  |  |  | p5.48xlarge, p5en.48xlarge | 4 | 4, 8, 16 | 

### Exemple de bloc-notes
<a name="nova-model-training-jobs-notebook"></a>

L’exemple de bloc-notes suivant montre comment exécuter une tâche d’entraînement. Pour des carnets de démarrage supplémentaires expliquant comment personnaliser les modèles Nova à l'aide de SageMaker Training Jobs, voir [Utiliser un estimateur SageMaker AI pour exécuter une](https://docs.aws.amazon.com//sagemaker/latest/dg/docker-containers-adapt-your-own-private-registry-estimator.html) tâche 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>" # 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>"
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
<a name="nova-model-hyperparameter"></a>

Pour optimiser 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 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](https://docs.aws.amazon.com//nova/latest/userguide/customize-fine-tune-hyperparameters.html). 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](https://docs.aws.amazon.com//nova/latest/userguide/fine-tune-hyperparameters-understanding-models.html).

**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
  ```