

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

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/nova/latest/userguide/nova-fine-tune-1.html)

Limites des jeux de données DPO

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/nova/latest/userguide/nova-fine-tune-1.html)

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\$1modè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\$1name\$1or\$1path |  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\$1config »**.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/nova/latest/userguide/nova-fine-tune-1.html)

### 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\$1cfg 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.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/nova/latest/userguide/nova-fine-tune-1.html)

## 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\$1classement 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\$1classement 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\$1classement 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\$1classement 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\$1classement complet | p5.48xlarge, p5en.48xlarge | 6 | 6, 12, 24 | 
|  | DPO | LoRA | p4d.24xlarge | 6 | 6, 12, 24 | 
|  |  | LORA\$1classement 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
  ```