

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.

# Formation préalable continue (CPT) sur Nova 2.0 sur SageMaker HyperPod
<a name="nova-cpt-2"></a>

Amazon Nova Lite 2.0 est un modèle de raisonnement basé sur des ensembles de données plus grands et plus diversifiés que Nova Lite 1.0. Bien qu'il s'agisse d'un modèle plus grand, Nova Lite 2.0 permet une inférence plus rapide que Nova Lite 1.0 tout en offrant des capacités de raisonnement améliorées, des durées de contexte plus longues et des performances multilingues améliorées.

Avec CPT sur Nova 2.0 Lite, vous pouvez étendre ces fonctionnalités avancées aux données spécifiques à votre domaine et développer une expertise approfondie dans des domaines spécialisés tout en conservant les capacités de raisonnement et d'analyse supérieures du modèle.

## Exemple de recette CPT
<a name="nova-cpt-2-sample-recipe"></a>

Voici un exemple de recette pour le CPT. Vous pouvez trouver cette recette et d'autres dans le [ référentiel de ](https://github.com/aws/sagemaker-hyperpod-recipes/tree/main/recipes_collection/recipes/training/nova) SageMaker HyperPod recettes sur GitHub.

```
# Note:
# This recipe can run on p5.48xlarge
# Run config
run:
  name: "my-cpt-run"                           # A descriptive name for your training job
  model_type: "amazon.nova-2-lite-v1:0:256k"   # Model variant specification, do not change
  model_name_or_path: "nova-lite-2/prod"        # Base model path, do not change
  replicas: 8                                   # Number of compute instances for training, allowed values are 4, 8, 16, 32
  data_s3_path: ""                              # Customer data paths
  validation_data_s3_path: ""                   # Customer validation data paths
  output_s3_path: ""                            # Output artifact path, SageMaker HyperPod job-specific configuration - not compatible with standard SageMaker Training Jobs
  mlflow_tracking_uri: ""                       # Required for MLFlow
  mlflow_experiment_name: "my-cpt-experiment"   # Optional for MLFlow. Note: leave this field non-empty
  mlflow_run_name: "my-cpt-run"                 # Optional for MLFlow. Note: leave this field non-empty

## Training specific configs
training_config:
  task_type: cpt
  max_length: 8192                              # Maximum context window size (tokens)
  global_batch_size: 256                        # Global batch size, allowed values are 32, 64, 128, 256.

  trainer:
    max_steps: 10                               # The number of training steps to run total
    val_check_interval: 10                      # The number of steps between running validation. Integer count or float percentage
    limit_val_batches: 2                        # Batches of the validation set to use each trigger

  model:
    hidden_dropout: 0.0                         # Dropout for hidden states, must be between 0.0 and 1.0
    attention_dropout: 0.0                      # Dropout for attention weights, must be between 0.0 and 1.0

  optim:
    optimizer: adam
    lr: 1e-5                                    # Learning rate
    name: distributed_fused_adam                # Optimizer algorithm, do not change
    adam_w_mode: true                           # Enable AdamW mode
    eps: 1e-06                                  # Epsilon for numerical stability
    weight_decay: 0.0                           # L2 regularization strength, must be between 0.0 and 1.0
    adam_beta1: 0.9                             # Beta1 for Adam optimizer
    adam_beta2: 0.95                            # Beta2 for Adam optimizer
    sched:
      warmup_steps: 10                          # Learning rate warmup steps
      constant_steps: 0                         # Steps at constant learning rate
      min_lr: 1e-6                              # Minimum learning rate, must be lower than lr
```

## Commencer un travail de pré-formation continue le SageMaker HyperPod
<a name="nova-cpt-2-starting-job"></a>

### Préparation de vos données
<a name="nova-cpt-2-preparing-data"></a>

Pour plus d'informations sur le format des données, les fonctionnalités prises en charge, les contraintes et les meilleures pratiques pour la préparation des données d'entraînement CPT, consultez[Préparation des données pour le CPT sur Amazon Nova 2](nova-data-prep-cpt-2.md).

### Téléchargement de vos données
<a name="nova-cpt-2-data-upload"></a>

Téléchargez des ensembles de données d'entraînement et de validation dans un compartiment S3. Spécifiez ces emplacements dans le `run` bloc de la recette :

```
## Run config
run:
  ...
  data_s3_path: "s3://<bucket-name>/<training-directory>/<training-file>.jsonl"
  validation_data_s3_path: "s3://<bucket-name>/<validation-directory>/<validation-file>.jsonl"
```

**Note**  
Remplacez `<bucket-name>``<training-directory>`,`<validation-directory>`,`<training-file>`, et `<validation-file>` par des chemins S3 réels.

### Définition de votre configuration
<a name="nova-cpt-2-defining-config"></a>

Définissez le modèle de base à l'aide `model_name_or_path` des champs `model_type` et du `run` bloc :

```
## Run config
run:
  ...
  model_type: amazon.nova-2-lite-v1:0:256k
  model_name_or_path: nova-lite-2/prod
  ...
```

## Paramètres de réglage CPT
<a name="nova-cpt-2-tuning-parameters"></a>

Les paramètres disponibles pour le réglage fin avec CPT sont les suivants :

**Configuration d’exécution**  

+ **nom ** : nom descriptif de votre poste de formation. Cela permet d'identifier votre tâche dans la console AWS de gestion.
+ **model\_type ** : variante du modèle Amazon Nova à utiliser. Les options disponibles sont`amazon.nova-2-lite-v1:0:256k`.
+ **model\_name\_or\_path ** : chemin vers le modèle de base à utiliser pour votre entraînement. Les options disponibles sont`nova-lite-2/prod`, ou le chemin S3 pour le point de contrôle post-entraînement ()`s3://customer-escrow-bucket-unique_id/training_run_name`.
+ **répliques ** : nombre d'instances de calcul à utiliser pour la formation distribuée. Les valeurs disponibles varient en fonction du modèle que vous choisissez. Amazon Nova Lite 2.0 prend en charge 4, 8, 16 ou 32 répliques.
+ **data\_s3\_path ** : emplacement S3 du jeu de données d'entraînement, qui est un fichier JSONL. Ce fichier doit résider dans le même AWS compte et la même région que le cluster. Tous les emplacements S3 fournis doivent se trouver dans le même compte et la même région.
+ **validation\_data\_s3\_path ** : (Facultatif) L'emplacement S3 du jeu de données de validation, qui est un fichier JSONL. Ce fichier doit résider dans le même compte et la même région que le cluster. Tous les emplacements S3 fournis doivent se trouver dans le même compte et la même région.
+ **output\_s3\_path ** : emplacement S3 où le manifeste et les journaux sont stockés. TensorBoard Tous les emplacements S3 fournis doivent appartenir au même AWS compte et à la même AWS région.
+ **mlflow\_tracking\_uri ** : l'ARN de l'application MLflow à utiliser pour la journalisation MLflow
+ **mlflow\_experiment\_name ** : nom de l'expérience MLflow
+ **mlflow\_run\_name : nom d'exécution ** de MLflow

**Configuration d’entraînement**  

+ **max\_length ** : longueur de séquence maximale en jetons. Détermine la taille de la fenêtre contextuelle pour l’entraînement. La valeur maximale prise en charge est de 8 192 jetons pour le CPT.

  Des séquences plus longues amélioreront l’efficacité de l’entraînement au prix d’une augmentation des exigences de mémoire. Nous vous recommandons de faire correspondre le paramètre max\_length à votre distribution de données.
+ **global\_batch\_size ** : nombre total d'échantillons de formation traités ensemble en un seul passage avant ou arrière sur tous les appareils et tous les travailleurs.

  Cette valeur multiplie la taille du lot par appareil et le nombre d’appareils. Cela affecte la stabilité de l’entraînement et le débit. Nous vous recommandons de commencer par une taille de lot adaptée à la mémoire, puis d’augmenter verticalement à partir de là. Pour les données spécifiques à un domaine, des lots plus importants peuvent trop lisser les gradients.

**Paramètres de l’entraîneur**  

+ **max\_steps ** : nombre d'étapes d'entraînement à exécuter. Chaque étape entraînera le modèle avec le `global_batch_size` nombre d'éléments

**Paramètres du modèle**  

+ **hidden\_dropout ** : probabilité de supprimer les sorties d'état masquées. Augmentez cette valeur d’environ 0,0-0,2 pour réduire les surajustements sur de plus petits jeux de données. Les valeurs valides sont comprises entre 0 et 1 inclus.
+ **attention\_dropout ** : probabilité de perte de poids d'attention. Ce paramètre peut faciliter la généralisation. Les valeurs valides sont comprises entre 0 et 1 inclus.

**Configuration d’optimiseur**  

+ **lr ** : Le taux d'apprentissage, qui contrôle la taille des étapes lors de l'optimisation. Nous recommandons des valeurs comprises entre 1e-6 et 1e-4 pour de bonnes performances. Les valeurs valides sont comprises entre 0 et 1 inclus.
+ **nom ** : algorithme de l'optimiseur. Actuellement, seul `distributed_fused_adam` est pris en charge.
+ **weight\_decay ** : force de régularisation L2. Des valeurs plus élevées (entre 0,01 et 0,1) augmentent la régularisation.
+ **warmup\_steps ** : nombre d'étapes pour augmenter progressivement le taux d'apprentissage. Cela améliore la stabilité de l’entraînement. Les valeurs valides sont comprises entre 1 et 20 inclus.
+ **min\_lr ** : taux d'apprentissage minimum à la fin de la décroissance. Les valeurs valides sont comprises entre 0 et 1 inclus, mais doivent être inférieures au taux d’apprentissage.