

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.

# Réglage fin supervisé (SFT) sur Nova 2.0 sur SageMaker HyperPod
<a name="nova-sft-2-smhp"></a>

Amazon Nova Lite 2.0 apporte des fonctionnalités améliorées de réglage supervisé, notamment un mode de raisonnement avancé, une meilleure compréhension multimodale et une gestion étendue du contexte. SFT sur Nova Lite 2.0 vous permet d'adapter ces puissantes fonctionnalités à vos cas d'utilisation spécifiques tout en maintenant les performances supérieures du modèle pour les tâches complexes.

Les principales fonctionnalités de SFT sur Nova Lite 2.0 sont résumées dans[Fonctionnalités prises en charge](nova-data-prep-sft-2.md#nova-2-supported-features).

Pour déterminer si le SFT convient à votre cas d'utilisation, consultez[Peaufinage supervisé (SFT)](nova-fine-tune.md).

**Topics**
+ [Sélection du mode de raisonnement (Nova 2.0 uniquement)](#nova-sft-2-reasoning-mode)
+ [Commencer un travail de mise au point sur SageMaker HyperPod](#nova-sft-2-creating-job)
+ [Paramètres de réglage SFT](#nova-sft-2-tuning-parameters)
+ [Guidage des hyperparamètres](#nova-sft-2-hyperparameters)

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

Vous trouverez ci-dessous un exemple de recette pour SFT. 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/fine-tuning/nova) SageMaker HyperPod recettes sur GitHub.

```
run:
  name: my-full-rank-sft-run
  model_type: amazon.nova-2-lite-v1:0:256k
  model_name_or_path: nova-lite-2/prod
  data_s3_path: s3://my-bucket-name/train.jsonl  # SageMaker HyperPod only and not compatible with SageMaker Training Jobs
  replicas: 4                                     # Number of compute instances for training, allowed values are 4, 8, 16, 32
  output_s3_path: s3://my-bucket-name/outputs/    # Output artifact path (HyperPod job-specific; not compatible with standard SageMaker Training Jobs)
  mlflow_tracking_uri: ""                         # Required for MLFlow
  mlflow_experiment_name: "my-full-rank-sft-experiment"  # Optional for MLFlow. Note: leave this field non-empty
  mlflow_run_name: "my-full-rank-sft-run"         # Optional for MLFlow. Note: leave this field non-empty

training_config:
  max_steps: 100                    # Maximum training steps. Minimal is 4.
  save_steps: ${oc.select:training_config.max_steps}  # How many training steps the checkpoint will be saved
  save_top_k: 5                     # Keep top K best checkpoints. Note supported only for SageMaker HyperPod jobs. Minimal is 1.
  max_length: 32768                 # Sequence length (options: 8192, 16384, 32768 [default], 65536)
  global_batch_size: 32             # Global batch size (options: 32, 64, 128)
  reasoning_enabled: true           # If data has reasoningContent, set to true; otherwise False

  lr_scheduler:
    warmup_steps: 15                # Learning rate warmup steps. Recommend 15% of max_steps
    min_lr: 1e-6                    # Minimum learning rate, must be between 0.0 and 1.0

  optim_config:                     # Optimizer settings
    lr: 1e-5                        # Learning rate, must be between 0.0 and 1.0
    weight_decay: 0.0               # L2 regularization strength, must be between 0.0 and 1.0
    adam_beta1: 0.9                  # Exponential decay rate for first-moment estimates
    adam_beta2: 0.95                 # Exponential decay rate for second-moment estimates

  peft:                             # Parameter-efficient fine-tuning (LoRA)
    peft_scheme: "null"             # Disable LoRA for PEFT
```

## Sélection du mode de raisonnement (Nova 2.0 uniquement)
<a name="nova-sft-2-reasoning-mode"></a>

Amazon Nova 2.0 prend en charge le mode raisonnement pour des fonctionnalités analytiques améliorées :
+ **Mode de raisonnement (activé) ** :
  + Paramétrer `reasoning_enabled: true` dans la configuration d'entraînement
  + Modélisez des trains pour générer des traces de raisonnement avant les réponses finales
  + Améliore les performances lors de tâches de raisonnement complexes
+ **Non-Reasoning Mode (désactivé) ** :
  + Définissez `reasoning_enabled: false` ou omettez le paramètre (par défaut)
  + SFT standard sans raisonnement explicite
  + Convient aux tâches qui ne bénéficient pas d'un raisonnement étape par étape

**Note**  
Lorsque le raisonnement est activé, il fonctionne avec un effort de raisonnement élevé. Il n'existe pas d'option de faible raisonnement pour SFT.
Le contenu de raisonnement multimodal n'est pas pris en charge pour SFT. Le mode de raisonnement s'applique aux entrées contenant uniquement du texte.

### Utilisation du mode raisonnement avec des ensembles de données non raisonnés
<a name="nova-sft-2-reasoning-non-reasoning-data"></a>

Il est permis d'entraîner Amazon Nova sur un ensemble de données non `reasoning_enabled: true` raisonné. Cela risque toutefois de faire perdre au modèle ses capacités de raisonnement, car Amazon Nova apprend principalement à générer les réponses présentées dans les données sans appliquer de raisonnement.

Si vous entraînez Amazon Nova sur un ensemble de données non raisonné mais que vous souhaitez tout de même utiliser le raisonnement lors de l'inférence :

1. Désactiver le raisonnement pendant l'entraînement (`reasoning_enabled: false`)

1. Activer le raisonnement plus tard lors de l'inférence

Bien que cette approche permette de raisonner au moment de l'inférence, elle ne garantit pas de meilleures performances par rapport à l'inférence sans raisonnement.

**Bonne pratique : ** activez le raisonnement à la fois pour l'entraînement et l'inférence lorsque vous utilisez des ensembles de données de raisonnement, et désactivez-le pour les deux lorsque vous utilisez des ensembles de données non raisonnés.

**Note**  
Pour plus d'informations sur les images de conteneurs et des exemples de recettes, consultez les recettes [ Amazon Nova](nova-model-recipes.md).

## Commencer un travail de mise au point sur SageMaker HyperPod
<a name="nova-sft-2-creating-job"></a>

### Préparation de vos données
<a name="nova-sft-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 SFT, consultez[Préparation des données pour SFT sur Amazon Nova 2](nova-data-prep-sft-2.md).

### Téléchargement de vos données
<a name="nova-sft-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"
```

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

**Note**  
Les jeux de données de validation ne sont actuellement pas pris en charge pour SFT avec Amazon Nova 2.0. Si un jeu de données de validation est fourni, il sera ignoré.

### Définition de votre configuration
<a name="nova-sft-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 SFT
<a name="nova-sft-2-tuning-parameters"></a>

Les paramètres disponibles pour le réglage avec SFT 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\_steps ** : nombre d'étapes d'entraînement à exécuter. Chaque étape entraînera le modèle avec un `global_batch_size` certain nombre d'éléments.
+ **save\_steps ** : fréquence (en étapes) à laquelle les points de contrôle du modèle doivent être enregistrés pendant l'entraînement.
+ **save\_top\_k ** : le nombre maximum de meilleurs points de contrôle à conserver en fonction des métriques de validation.
+ **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 32 768 jetons pour SFT.

  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 à la distribution de vos 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.
+ **reasoning\_enabled ** : indicateur booléen pour activer les capacités de raisonnement pendant l'entraînement.

**Planificateur de taux d'apprentissage**  

+ **warmup\_steps ** : le nombre d'étapes nécessaires pour augmenter progressivement le taux d'apprentissage. Cela améliore la stabilité de l’entraînement.
+ **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.

**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.
+ **weight\_decay ** : force de régularisation L2. Des valeurs plus élevées (entre 0,01 et 0,1) augmentent la régularisation.
+ **adam\_beta1 ** : Le taux de décroissance exponentiel pour les estimations du premier moment dans l'optimiseur Adam. La valeur par défaut est 0,9.
+ **adam\_beta2 ** : Le taux de décroissance exponentiel pour les estimations du deuxième moment dans l'optimiseur Adam. La valeur par défaut est 0,95.

**Configuration PEFT**  

+ **peft\_scheme ** : le schéma de réglage fin efficace en termes de paramètres à utiliser. Les options sont `'null'` destinées à un réglage de rang complet ou `lora` à un réglage fin. LoRA-based 

**Réglage LoRa (lorsque peft\_scheme vaut « lora »)**  

+ **alpha ** : paramètre de mise à l'échelle LoRa. Contrôle l'ampleur de l'adaptation de bas rang. Les valeurs typiques sont comprises entre 8 et 128.
+ **lora\_plus\_lr\_ratio ** : ratio de taux d'apprentissage pour l'optimisation LoRa\+. Ce multiplicateur ajuste le taux d'apprentissage spécifiquement pour les paramètres LoRa.

## Guidage des hyperparamètres
<a name="nova-sft-2-hyperparameters"></a>

Utilisez les hyperparamètres recommandés suivants en fonction de l'approche d'entraînement :

**Entraînement de rang complet **
+ **Époques ** : 1
+ **Taux d'apprentissage (LR) ** : 1e-5
+ **Taux d'apprentissage minimum (min\_lr) ** : 1e-6

**LoRa (Low-Rank adaptation) **
+ **Époques ** : 2
+ **Taux d'apprentissage (LR) ** : 5e-5
+ **Taux d'apprentissage minimum (min\_lr) ** : 1e-6

**Note**  
Ajustez ces valeurs en fonction de la taille de l'ensemble de données et des performances de validation. Surveillez les indicateurs d'entraînement pour éviter les surajustements.