

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.

# Amazon Nova Forge
<a name="nova-forge"></a>

Amazon Nova Forge est un first-of-its-kind service qui offre aux entreprises le moyen le plus simple et le plus rentable de créer leurs propres modèles de pointe à l'aide de Nova.

Amazon Nova Forge introduit le concept de modèles de « formation ouverte », qui permettent aux entreprises d'accéder à une variété de points de contrôle des premiers modèles et de combiner des données propriétaires avec des ensembles de données sélectionnés par Amazon à chaque étape de la formation des modèles. Cela permet aux modèles de maximiser l'apprentissage à partir de données propriétaires tout en minimisant le risque d'oublier des compétences fondamentales telles que le raisonnement.

Nova Forge fournit les fonctionnalités clés suivantes :
+ Accédez aux points de contrôle à toutes les phases du développement des modèles et tirez parti des nouveaux modèles Nova avant qu'ils ne soient largement disponibles
+ Combinez vos données propriétaires avec les données de formation sélectionnées par Amazon Nova
+ Procédez à un apprentissage par renforcement avec des fonctions de récompense dans votre environnement
+ Utilisez des recettes à bouton-poussoir optimisées pour être créées avec Nova via des flux de travail visuels ou une interface de ligne de commande
+ Utilisez le Responsible AI Toolkit pour aligner les modèles sur les directives d'Amazon Nova en matière d'IA responsable pendant le processus de formation et mettez en œuvre des contrôles d'exécution pour modérer les réponses des modèles lors de l'inférence.

## Conditions préalables
<a name="nova-forge-prereq"></a>

**Topics**
+ [

### Abonnez-vous à Nova Forge
](#nova-forge-prereq-access)
+ [

### Autres prérequis
](#nova-forge-prereq-other)

### Abonnez-vous à Nova Forge
<a name="nova-forge-prereq-access"></a>

Pour demander l'accès au service Amazon Nova Forge, ajoutez la balise suivante à votre rôle IAM dans la console : key forge-subscription with value true. Après avoir ajouté ce tag à votre rôle, rendez-vous dans SageMaker AI Console > Entraînement et personnalisation des modèles, puis cliquez sur Nova Forge. Sur cette page, vous trouverez des informations sur le service, les tarifs et les fonctionnalités. Vous pouvez demander un abonnement puis gérer votre abonnement à partir de cette page.

1. Le rôle doit être autorisé à appeler l'API`ListAttachedRolePolicy`, et la réponse doit inclure soit une politique, `AdministratorAccess` soit une `AmazonSageMakerFullAccess` politique.

1. Le rôle de connexion doit être autorisé à appeler l'API`ListRoleTags`, et les balises de réponse doivent inclure`tag.key=forge-subscription`.

### Autres prérequis
<a name="nova-forge-prereq-other"></a>

Assurez-vous également que les conditions préalables suivantes sont remplies :

1. [Prérequis généraux](https://docs.aws.amazon.com//nova/latest/nova2-userguide/nova-model.html#nova-model-general-prerequisites)

1. Étapes supplémentaires pour les utilisateurs : ajoutez un groupe d'instances restreint (RIG) à votre SageMaker HyperPod cluster (pour terminer, suivez les étapes [ici](https://docs.aws.amazon.com//sagemaker/latest/dg/nova-hp-cluster.html))

# Accès et configuration de Nova Forge
<a name="nova-forge-access"></a>

Pour vous intégrer à Nova Forge, suivez ce processus en deux étapes :
+ Étape 1 : Abonnez-vous à Nova Forge
+ Étape 2 : Configuration de HyperPod l'infrastructure

## Obtenir les documents de Nova Forge
<a name="nova-forge-get-docs"></a>

Pour obtenir les documents de Nova Forge, suivez les étapes ci-dessous :

```
mkdir NovaForgeHyperpodCLI
cd NovaForgeHyperpodCLI
aws s3 cp s3://nova-forge-c7363-206080352451-us-east-1/v1/ ./ --recursive
pip install -e .
```

## Étape 1 : Abonnez-vous à Nova Forge
<a name="nova-forge-step1"></a>

### Résumé rapide :
<a name="nova-forge-quick-summary"></a>

1. Vérifiez que vous disposez d'un accès administrateur au compte Amazon Web Services.

1. Accédez à la console SageMaker AI et demandez l'accès à Nova Forge.

1. Attendez que l'équipe Nova vous envoie un e-mail de confirmation une fois votre demande d'abonnement approuvée.

1. Marquez votre rôle d'exécution avec le `forge-subscription` tag. Cette balise est requise pour accéder aux fonctionnalités et aux points de contrôle de Nova Forge. Ajoutez la balise suivante à votre rôle d'exécution :
   + Clé : `forge-subscription`
   + Valeur : `true`

### Guide détaillé
<a name="nova-forge-detailed-guide"></a>

Pour s'abonner à Nova Forge et utiliser efficacement le service de personnalisation, un client Amazon Web Services doit disposer d'un accès administrateur à son compte Amazon Web Services ou demander à son administrateur de lui accorder un accès administrateur. Ce document décrit les étapes nécessaires pour :
+ Accès administrateur sécurisé
+ Définissez des politiques pour vous abonner à Nova Forge
+ Accédez à des recettes de personnalisation
+ Configuration de la personnalisation
+ Surveiller le flux de travail
+ Évaluer le point de contrôle du modèle personnalisé

### Option A
<a name="nova-forge-option-a"></a>

Flux 1 : L'utilisateur du compte doit contacter l'administrateur du compte pour demander ce qui suit :
+ Ajoutez le `forge-subscription` tag au compte via IAM (voir l'annexe A pour les étapes à suivre).
+ Ajoutez les `ListAttachedRolePolicies` autorisations `ListRoleTags` et via IAM (voir l'annexe B pour les étapes).

![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/nova/latest/nova2-userguide/images/Onboarding-option-a.png)


### Option B
<a name="nova-forge-option-b"></a>

Flux : l'utilisateur du compte doit contacter l'administrateur du compte pour demander l'accès administrateur au compte.
+ Une fois que l'accès administrateur est accordé, suivez les étapes de Flow 2.

### Flux 2. Compte Amazon Web Services avec accès administrateur
<a name="nova-forge-flow2"></a>
+ Ajoutez le tag Forge-Subscription au compte via IAM. Voir les étapes à l'annexe A

### Annexe A. Ajouter une politique de forgeage d'abonnement au compte Amazon Web Services
<a name="nova-forge-appendix-a"></a>

1. Accédez au tableau de bord IAM d'Amazon Web Services. Cliquez sur Rôles sur la gauche. Recherchez admin et cliquez sur le rôle admin  
![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/nova/latest/nova2-userguide/images/add-forge-sub-policy.png)

1. Sélectionnez < AssumedRoleToUse > (par exemple, libsAdminAccess). Cliquez sur l'onglet Tags.  
![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/nova/latest/nova2-userguide/images/add-forge-sub-policy-2.png)

1. Cliquez sur Gérer les onglets. Ajoutez un nouveau tag. Tapez « forge-subscription » sous Key et cliquez sur Enregistrer les modifications  
![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/nova/latest/nova2-userguide/images/add-forge-sub-tag-policy.png)

1. Assurez-vous de voir forge-subscription comme une clé dans la section Tags  
![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/nova/latest/nova2-userguide/images/forge-tag-policy-verify.png)

### Annexe B. Ajout ListRoleTags et ListAttachedPolicies politiques au compte Amazon Web Services pour le rôle d'administrateur non administrateur
<a name="nova-forge-appendix-b"></a>

1. Accédez au tableau de bord IAM d'Amazon Web Services. Cliquez sur Rôles sur la gauche. Recherchez < AssumedRoleToUse > (par exemple, ForgeAccessRole) et cliquez sur le rôle < AssumedRoleToUse > (par exemple, ForgeAccessRole)  
![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/nova/latest/nova2-userguide/images/forge-list-tags-policy.png)

1. Cliquez sur le rôle < AssumedRoleToUse > (par exemple, ForgeAccessRole) et sélectionnez Tags. Ajoutez un nouveau tag avec le type « forge-subscription »  
![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/nova/latest/nova2-userguide/images/forge-tag-appendix.png)

1. Sous Autorisations, ajoutez une nouvelle autorisation : Ajouter des autorisations → Créer une politique en ligne → Ajoutez la politique suivante répertoriée ci-dessous

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "VisualEditor0",
               "Effect": "Allow",
               "Action": [
                   "iam:ListRoleTags",
                   "iam:ListAttachedRolePolicies"
               ],
               "Resource": "*"
           }
       ]
   }
   ```  
![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/nova/latest/nova2-userguide/images/forge-add-tag-polices-example.png)

## Étape 2. Configuration de HyperPod l'infrastructure
<a name="nova-forge-step2"></a>

Configurez l'infrastructure nécessaire en suivant les [instructions de l'atelier](https://catalog.us-east-1.prod.workshops.aws/workshops/dcac6f7a-3c61-4978-8344-7535526bf743/en-US) pour configurer l'environnement avec les fonctionnalités compatibles avec Forge.

## Paramètres de modération du contenu
<a name="nova-forge-content-moderation"></a>

Si vous avez besoin d'accéder à Nova Forge, des paramètres de modération de contenu (CCMS) personnalisables sont disponibles pour les modèles Amazon Nova Lite 1.0 et Pro 1.0. Le CCMS permet d'ajuster les contrôles de modération du contenu pour les aligner sur les exigences commerciales spécifiques tout en maintenant les garanties essentielles et responsables de l'IA. Pour déterminer si un modèle commercial convient au CCMS, contactez un responsable de AWS compte.

Pour plus d'informations sur la configuration et l'utilisation de CCMS avec des modèles personnalisés, consultez la [section Responsible AI Toolkit and Content Moderation](nova-responsible-ai-toolkit.md).

# Pré-entraînement continu et mi-entraînement
<a name="nova-forge-cpt"></a>

**Note**  
Une documentation détaillée est fournie une fois que vous êtes abonné

Nova Forge CPT offre des fonctionnalités avancées allant au-delà du CPT standard, notamment l'accès à des points de contrôle intermédiaires et le mixage de données avec le corpus de pré-entraînement de Nova. Ces fonctionnalités permettent une adaptation plus efficace des domaines et une meilleure préservation des fonctionnalités générales du modèle.

## Quels sont les points de contrôle intermédiaires et pourquoi sont-ils nécessaires ?
<a name="nova-forge-cpt-checkpoints"></a>

Les points de contrôle intermédiaires sont des instantanés du modèle Amazon Nova enregistrés à différentes étapes de la pré-formation, avant que le modèle n'atteigne son état final prêt pour la production. Au cours du développement du modèle, Amazon Nova est soumis à plusieurs phases de formation : pré-formation initiale avec un taux d'apprentissage constant, réduction du taux d'apprentissage, formation à l'extension du contexte et enfin formation à l'alignement et à la sécurité suivant les instructions. Pour le CPT, les points de contrôle intermédiaires sont souvent préférables au point de contrôle final Prod car ils sont plus plastiques et réceptifs à l'adaptation au domaine. Le point de contrôle Prod a fait l'objet d'une formation approfondie sur l'alignement et la sécurité, qui optimise le modèle pour une utilisation conversationnelle générale, mais peut le rendre résistant à l'apprentissage de nouveaux modèles spécifiques à un domaine pendant le CPT. En revanche, les points de contrôle contenant uniquement du texte partiellement ou entièrement préentraîné conservent les caractéristiques du modèle avant l'entraînement. Ils n'ont pas été fortement orientés vers des comportements spécifiques, ce qui en fait des points de départ plus efficaces pour l'adaptation au domaine. Lorsque vous effectuez un CPT à grande échelle (>10 milliards de jetons), le fait de partir de points de contrôle intermédiaires se traduit généralement par une convergence plus rapide, une meilleure stabilité de la formation et une acquisition plus efficace des connaissances du domaine. Toutefois, pour les CPT à petite échelle (<10 milliards de jetons), ou lorsque les capacités de suivi des instructions doivent être préservées, le point de contrôle Prod peut être plus approprié car il permet l'adaptation du domaine tout en préservant les capacités conversationnelles du modèle.

Plusieurs points de contrôle intermédiaires sont nécessaires pour le CPT car ils offrent différents niveaux de plasticité du modèle qui affectent l'efficacité avec laquelle le modèle peut absorber les nouvelles connaissances du domaine. Le point de contrôle final du Prod a fait l'objet d'une formation approfondie sur l'alignement et la sécurité, qui l'optimise pour une utilisation conversationnelle générale, mais le rend résistant à l'apprentissage de nouveaux modèles spécifiques au domaine. En d'autres termes, il a été renforcé après l'entraînement. En revanche, les points de contrôle antérieurs conservent les caractéristiques du modèle avant l'entraînement et n'ont pas été fortement orientés vers des comportements spécifiques, ce qui les rend plus souples et plus réceptifs à l'adaptation au domaine.

Pour optimiser l'efficacité de l'entraînement, plusieurs points de contrôle intermédiaires sont fournis.

## Quels sont les points de contrôle disponibles ?
<a name="nova-forge-cpt-available"></a>

**Nova 2.0**  
Il existe trois points de contrôle Amazon Nova Lite 2.0.
+ PRÉ-ENTRAÎNÉ - [`nova-lite-2/pretraining-text-RD`] : Il s'agit du point de contrôle après le taux d'apprentissage constant et les étapes de réduction progressive de la pré-formation d'Amazon Nova, au cours desquelles le modèle est entraîné avec des milliards de jetons.
+ FORMATION INTERMÉDIAIRE - [`nova-lite-2/pretraining-text-CE`] : Ce point de contrôle permet d'introduire des volumes intermédiaires de données non structurées avec un taux d'apprentissage plus modéré qu'avant la formation, absorbant ainsi des connaissances spécifiques à un domaine tout en évitant un oubli catastrophique.
+ APRÈS ENTRAÎNEMENT - [`nova-lite-2/prod`] : Il s'agit du point de contrôle final entièrement aligné du modèle qui a suivi toutes les étapes pertinentes et postérieures à la formation.

Le tableau suivant décrit les différentes conditions avant et pendant l'entraînement.


| Type de données | Exécuter | Avec Checkpoint | 
| --- |--- |--- |
| Données de domaine brutes non structurées à grande échelle (documents, journaux, articles, code, etc.) | Formation préalable continue | Pré-formé | 
| Données de domaine brutes non structurées à grande échelle (documents, journaux, articles, code, etc.) | Au milieu de l'entraînement | Pré-formé | 
| Petits volumes de données brutes non structurées. Traces de raisonnement structurées/données CoT | Au milieu de l'entraînement | Entraîné à mi-parcours | 
| Démonstrations structurées (paires entrées-sorties de haute qualité, instructions de tâches sélectionnées, dialogues à plusieurs tours) | Réglage précis complet | Entraîné à mi-parcours | 
| Démonstrations structurées (paires entrées-sorties de haute qualité, instructions de tâches sélectionnées, dialogues à plusieurs tours) | Réglage précis efficace des paramètres | Après avoir suivi une formation | 

## Quel point de contrôle utiliser ?
<a name="nova-forge-cpt-which"></a>

Les points de contrôle partiellement pré-entraînés uniquement en texte et entièrement pré-entraînés uniquement en texte convergent généralement plus rapidement et nécessitent moins d'étapes de formation pour l'adaptation au domaine. Cependant, ils n'ont pas d'instructions ajustées et devraient suivre des étapes après la formation pour pouvoir effectuer des tâches utiles et suivre les instructions. Le point de contrôle GA peut nécessiter plus d'étapes pour s'adapter, mais constitue un point de départ plus sûr pour les expériences à petite échelle et conservera certaines de ses capacités après la formation, même après la formation du CPT.

En général, avec de grands ensembles de données d'entraînement (>10 milliards de jetons), commencez par des points de contrôle partiellement préentraînés uniquement en texte ou entièrement préentraînés uniquement en texte pour une formation plus efficace et plus stable, car la base de connaissances du modèle sera considérablement modifiée. Avec de petits ensembles de données (<10 Go de jetons), utilisez le point de contrôle GA pour préserver les capacités de suivi des instructions tout en vous adaptant au domaine.

## Comment utiliser le mixage de données pour Nova 2.0 ?
<a name="nova-forge-cpt-mixing"></a>

Lors de l'exécution du CPT avec de nouvelles données de domaine, il est très avantageux de mélanger les nouvelles données avec certaines des données utilisées précédemment lors de la phase de pré-apprentissage du modèle. Le mélange d'anciennes données avec de nouvelles données de domaine permet de résoudre deux problèmes :
+ Contrôle de l'oubli : prévient l'oubli catastrophique en préservant les compétences et les connaissances existantes sur le modèle. Sans mélange de données, l'entraînement exclusivement sur des données de domaine restreint entraîne le remplacement des capacités générales du modèle. Par exemple, un modèle formé uniquement sur des documents juridiques risque de perdre sa capacité à coder ou à effectuer des calculs. Le mélange des ensembles de données du domaine général préserve ces compétences générales lors de l'acquisition du nouveau domaine.
+ Stabilité d'optimisation : Maintient la stabilité de l'entraînement en ancrant les représentations internes du modèle. Au cours du CPT, les caractéristiques apprises du modèle sont modifiées et le mélange de données fournit des dégradés provenant de diverses sources qui guident cette adaptation en douceur. Sans cela, l'entraînement sur des distributions étroites peut provoquer une instabilité du gradient, les représentations du modèle étant modifiées de manière trop drastique, ce qui entraîne une divergence d'apprentissage, des pics de pertes ou un effondrement des capacités existantes. Il s'agit du compromis entre stabilité et plasticité : le modèle doit être suffisamment souple pour acquérir de nouvelles connaissances dans le domaine, mais suffisamment stable pour ne pas altérer ce qu'il sait déjà.

**Capacités de mixage de données Nova CPT**  
L'accès aux données de pré-formation et aux points de contrôle d'Amazon Nova est l'une des principales offres de personnalisation d'Amazon Nova CPT. La personnalisation d'Amazon Nova CPT permet de mélanger facilement les données de domaine avec le corpus de pré-formation d'Amazon Nova. En outre, le taux d'échantillonnage des catégories de données spécifiques d'Amazon Nova (par exemple, code, mathématiques, raisonnement, etc.) peut être modifié et leurs proportions contrôlées pour compléter les données du domaine. Cela permet de renforcer les fonctionnalités qui correspondent au cas d'utilisation tout en adaptant le modèle au domaine spécifique.

**Trouver le rapport de mélange optimal**  
Le ratio optimal entre les données Amazon Nova et les données de domaine dépend du domaine, de la complexité, de la taille, de la qualité du jeu de données et de l'importance de maintenir les fonctionnalités générales. Ce ratio doit être découvert par l'expérimentation. Voici un cadre d'expérimentation permettant de décider de la quantité de données Amazon Nova à mélanger.

Sélectionnez un sous-ensemble représentatif de données de domaine (par exemple, 5 milliards de jetons) et maintenez-le constant pendant tous les essais expérimentaux.

Exécutez des expériences CPT à petite échelle en faisant varier uniquement la quantité de données Amazon Nova mélangées dans :
+ Pas de mixage : 100 % domaine → domaine 5 B uniquement (total 5 B)
+ Mélange de lumière : domaine 90 % → domaine 5B \$1 \$10,56 B Amazon Nova (total \$15,56 B)
+ Mixage moyen : 70 % de domaine → domaine 5 B \$1 \$12,14 B Amazon Nova (total \$17,14 B au total)
+ Mixage intensif : 50 % de domaine → domaine 5 B \$1 5 Go Amazon Nova (total 10 B)

Évaluez chaque point de contrôle sur les benchmarks internes et généraux du domaine. Évaluez également le point de départ (point de contrôle Amazon Nova avant toute formation).
+ Les performances du domaine client restent-elles à peu près constantes d'un cycle à l'autre ? C'est généralement le cas, car chaque exécution a généré le même nombre de jetons de domaine. Si les performances du domaine s'améliorent grâce à un plus grand mixage, les données Amazon Nova fournissent une régularisation utile.
+ Les scores de référence généraux s'améliorent-ils à mesure que le mixage augmente ?
  + Le comportement attendu est que les fonctionnalités générales devraient s'améliorer de manière monotone à mesure que de nouvelles données Amazon Nova sont ajoutées.
  + Mesurez plusieurs repères généraux : MMLU (connaissances générales), HumanEval (codage), GSM8 K (mathématiques) ou repères spécifiques qui vous intéressent.
+ Sélectionnez le ratio de mixage qui permet de maintenir les performances du domaine tout en offrant des fonctionnalités générales acceptables pour les cas d'utilisation. Tenez compte du coût supplémentaire de la formation en mélangeant davantage les données.

Une fois que le rapport de mélange optimal a été identifié, exécutez le CPT à grande échelle en utilisant l'ensemble de données de domaine complet avec le rapport de mélange sélectionné.

## Disséquer les catégories de mixage de données
<a name="nova-forge-cpt-data-mixing-categories"></a>

Nous analysons ci-dessous chaque catégorie disponible dans Data Mixing, afin que vous puissiez décider au mieux quelles catégories de données doivent être représentées dans votre mélange de données global.

### Comment activer le mixage des données
<a name="nova-forge-cpt-enable-mixing"></a>

Ajoutez la `data_mixing` section à votre recette avec la distribution en pourcentage appropriée entre les catégories de jeux de données. La somme des `nova_data` pourcentages doit être égale à 100.

#### Configuration Nova 2.0 avec mixage de données
<a name="nova-forge-cpt-nova2-config"></a>

```
# Note:
# This recipe can run on p5.48xlarge

# Run config
display_name: "Nova Lite Pretrain on P5 GPU"
versions: ["2.0"]
instance_types: ["ml.p5.48xlarge"]

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

## Training specific configs
training_config:
  task_type: cpt
  max_length: 8192              # Maximum context window size (tokens)
  global_batch_size: 64        # 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
    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

data_mixing:
  dataset_catalog: cpt_text_lite
  sources:
    nova_data:   # percent inputs for Nova data must sum to 100%; use 0% if you want to exclude a data grouping
      agents: 20
      business-and-finance: 4
      scientific: 10
      code: 5
      factual-and-news: 5
      longform-text: 6
      health-and-medicine: 1
      humanities-and-education: 1
      legal: 1
      math: 9
      additional-languages: 15
      social-and-personal-interest: 11
      entertainment: 0.5
      reasoning: 10
      other: 0.5
      tables: 1
    customer_data: # percent input of customer data. 100 = use only customer data, 0 = use only the nova_data mix above
      percent: 25
```

**Que signifient ces catégories**

**Remarque** : Nova 2.0 inclut des catégories supplémentaires spécifiques au raisonnement (par exemple, `reasoning-code``reasoning-math`,`reasoning-instruction-following`) qui ne sont pas disponibles dans Nova 1.0.

Résumé des catégories et des étiquettes d'information :


| Nom de la catégorie | Détail de l'information | 
| --- | --- | 
| agents | Données de formation axées sur la prise de décision autonome, l'exécution des tâches et le comportement axé sur les objectifs dans les systèmes d'IA | 
| baseline | Données linguistiques fondamentales axées sur la compréhension générale, la communication de base et les capacités linguistiques de base | 
| chat | Des échanges conversationnels démontrant un flux de dialogue naturel, le maintien du contexte et des interactions sociales appropriées | 
| code | Code source de programmation, documentation et discussions techniques à partir de différents langages de programmation et plateformes. | 
| factuality | Matériaux de référence et informations vérifiées axés sur l'exactitude, la validation des sources et l'évaluation de la vérité | 
| identity | Cadres de personnalité et modèles comportementaux axés sur des traits de caractère, des valeurs et des styles d'interaction cohérents | 
| long-context | Des textes étendus et des récits complexes axés sur le maintien de la cohérence et de la pertinence lors de longs échanges | 
| math | Contenu mathématique, y compris les manuels, les problèmes, les solutions et les discussions mathématiques. | 
| rai | Cas et scénarios mettant l'accent sur les principes éthiques de l'IA, les considérations de sécurité et le déploiement responsable des technologies | 
| instruction-following | Exemples d'exécution précise de tâches basées sur différents niveaux d'instructions et de directives utilisateur | 
| stem | Contenu technique couvrant les sciences, la technologie, l'ingénierie et les mathématiques, y compris la résolution de problèmes et les concepts théoriques | 
| planning | Séquences illustrant la réflexion stratégique, la répartition des step-by-step tâches et l'allocation efficace des ressources | 
| reasoning-chat | Scénarios de dialogue analytique axés sur des discussions logiques et des flux de conversation structurés | 
| reasoning-code | Défis de programmation et problèmes algorithmiques axés sur le développement systématique de solutions | 
| reasoning-factuality | Scénarios d'évaluation des informations axés sur les processus critiques d'évaluation et de vérification | 
| reasoning-instruction-following | Analyse de tâches complexes axée sur l'interprétation systématique et l'exécution méthodique | 
| reasoning-math | Scénarios mathématiques de résolution de problèmes axés sur la progression logique et les stratégies de résolution | 
| reasoning-planning | Scénarios de prise de décision stratégique axés sur une approche systématique de la réalisation des objectifs | 
| reasoning-rag | Scénarios de recherche et de synthèse d'informations axés sur la compréhension contextuelle et l'application pertinente | 
| reasoning-rai | Scénarios de prise de décision éthique axés sur l'évaluation systématique de la sécurité et de l'équité de l'IA | 
| reasoning-stem | Scénarios scientifiques de résolution de problèmes axés sur l'analyse méthodique et le développement de solutions | 
| rag | Exemples de combinaison efficace de connaissances externes récupérées avec des réponses générées pour fournir des informations contextuelles précises | 
| translation | Paires de contenus multilingues présentant une traduction précise tout en préservant le contexte, le ton et les nuances culturelles | 

#### Guide des paramètres
<a name="nova-forge-cpt-param-guide"></a>
+ **dataset\$1catalog :** La seule valeur est cpt\$1text\$1lite pour le moment, jusqu'à ce que nous activions l'entraînement multimodal.
+ **nova\$1data :** pourcentage des catégories individuelles de données Nova lorsqu'elles sont mélangées. Leur somme devrait atteindre 1,0.
+ **customer\$1data** : le pourcentage de données du client mélangées aux données Nova.

Le nombre total de jetons utilisés pendant l'entraînement peut être calculé à partir de `max_length` \$1 `global_batch_size` \$1 `max_steps`

**Limitations**  
Le CPT actuel ne prend en charge que les données texte et ne prend en charge aucun ensemble de données multimodaux des clients.

# Réglage précis supervisé
<a name="nova-forge-sft"></a>

## Introduction
<a name="introduction"></a>

Le réglage fin supervisé utilise un ensemble de données avec des paires d'entrées-sorties pour la tâche qui vous intéresse. En d'autres termes, vous fournissez des exemples d'instructions (questions, instructions, etc.) ainsi que les réponses correctes ou souhaitées et vous poursuivez la formation du modèle sur ces questions. Les poids du modèle sont ajustés pour minimiser les pertes supervisées, généralement une entropie croisée entre ses prédictions et les jetons de réponse cibles.

## Quand utiliser SFT ?
<a name="when-to-use-sft"></a>

SFT est préférable lorsque vous avez une tâche bien définie avec des résultats souhaités clairs. Si vous pouvez dire explicitement « Étant donné une entrée X, la correct/desired sortie est Y » et que vous pouvez recueillir des exemples de tels mappages X-Y, le réglage fin supervisé est un excellent choix. Parmi les scénarios dans lesquels SFT excelle, citons :
+ **Tâches de classification structurées ou complexes** : par exemple, classification de documents internes ou de contrats dans de nombreuses catégories personnalisées. Avec SFT, le modèle peut apprendre ces catégories spécifiques bien mieux que de le demander seul.
+ **Tâches de réponse à des questions ou de transformation avec des réponses connues** : par exemple, affiner un modèle pour répondre aux questions de la base de connaissances d'une entreprise, ou pour convertir des données entre formats, chaque entrée ayant une réponse correcte.
+ **Cohérence du formatage et du style** : si vous souhaitez que le modèle réponde toujours dans un certain format ou dans un certain ton, vous pouvez affiner les exemples de format/de tonalité appropriés. Par exemple, une formation sur des paires prompte-réponse illustrant une voix ou un style de marque en particulier peut apprendre au modèle à utiliser ce style dans ses sorties. Le comportement suivant les instructions est souvent initialement enseigné via SFT sur des exemples sélectionnés de bons comportements d'assistant.

SFT est le moyen le plus direct d'enseigner à un LLM une nouvelle compétence ou un nouveau comportement lorsque vous pouvez spécifier à quoi ressemble le bon comportement. Il tire parti de la compréhension linguistique existante du modèle et le concentre sur votre tâche. N'utilisez pas le SFT lorsque l'écart est lié aux connaissances plutôt qu'au comportement ; cela n'obligera pas le modèle à apprendre de nouveaux faits, du jargon ou des événements récents. Dans ces cas, préférez une formation préalable continue sur de grands corpus internes au domaine ou une génération augmentée par extraction afin d'intégrer des connaissances externes à des fins d'inférence. Lorsque vous pouvez mesurer la qualité mais que vous ne pouvez pas identifier une seule bonne réponse, il LLM-as-judge peut être préférable de peaufiner le renforcement avec des récompenses vérifiables ou une réponse au SFT.

En fonction de la complexité des tâches et des performances du modèle Nova sans réglage, planifiez des milliers, voire des dizaines de milliers de démonstrations par tâche, la qualité, la cohérence et la diversité des données étant plus importantes que le volume brut.

## Quand utiliser le paramètre Efficient et quand utiliser le SFT à rang complet ?
<a name="parameter-efficient-vs-full-rank"></a>

Les recettes de personnalisation Nova vous permettent d'exécuter des paramètres efficaces, en particulier LoRa ou SFT de rang complet. Si vous souhaitez une mise à jour de modèle simple et rentable, ou si vous disposez de très peu de données, privilégiez des méthodes économes en paramètres afin de former de petits adaptateurs sans toucher à la majeure partie de l'épine dorsale (le SFT complet met à jour tous les paramètres du modèle).

## Mixage de données pour SFT
<a name="data-mixing"></a>

Le mixage des données vous permet de combiner vos ensembles de données d'entraînement personnalisés avec les données d'entraînement exclusives de Nova. Cette fonctionnalité est disponible pour les modèles Nova 1.0 et Nova 2.0.

**Type de données propriétaire Nova** : Nova prend en charge les types de données SFT textuels et multimodaux. Il est organisé en plusieurs catégories de données, chacune contenant un mélange de tâches pertinentes pour la catégorie correspondante.

**Catégories de données propriétaires Nova** : Les ensembles de données textuels incluent plusieurs catégories, notamment : prise de décision autonome, achèvement des tâches, ensembles de données orientés vers les objectifs (agents), ensembles de données d'exécution précise des tâches avec ou sans raisonnement (suivi des instructions)reasoning-instruction-following, séquences démontrant une réflexion stratégique et une répartition des step-by-step tâches (planification), IA responsable (rai), contexte long, factualité, mathématiques, STEM et bien d'autres encore. De même, les ensembles de données multimodaux incluent des vidéos, des captures d'écran, des graphiques et bien d'autres.

La fonction de mixage des données vous permet de mélanger vos propres échantillons d'entraînement avec des échantillons provenant des ensembles de données Nova utilisés pour affiner le Nova. Cela peut éviter de trop adapter votre entraînement personnalisé et d' « oublier de manière catastrophique » les capacités de Nova, ou vous aider à renforcer vos capacités lorsque vous vous entraînez à partir d'un nouveau point de contrôle préentraîné.

Pour intégrer des données Nova, il vous suffit d'ajouter un bloc data\$1mixing à votre fichier YAML de recette, dans la section training\$1config. Les blocs de mélange de texte et de données multimodales ont un contenu différent. Veuillez vous référer aux recettes correspondantes.

### Modèles pris en charge
<a name="supported-models"></a>
+ Nova 2.0 Lite

### Modalité prise en charge
<a name="supported-modality"></a>
+ Texte
+ Multimodal

## Exemples de configuration YAML
<a name="yaml-configuration-examples"></a>

### Exemple de configuration de Nova 2.0
<a name="nova-2-configuration"></a>

```
run:
  name: my-lora-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
  replicas: 4
  output_s3_path: s3://my-bucket-name/outputs/
  mlflow_tracking_uri: ""
  mlflow_experiment_name: "my-lora-sft-experiment"
  mlflow_run_name: "my-lora-sft-run"
  
training_config:
  max_steps: 100
  save_steps: 10
  save_top_k: 5
  max_length: 32768
  global_batch_size: 32
  reasoning_enabled: true
  lr_scheduler:
    warmup_steps: 15
    min_lr: 1e-6
  optim_config:
    lr: 1e-5
    weight_decay: 0.0
    adam_beta1: 0.9
    adam_beta2: 0.95
  peft:
    peft_scheme: "lora"
    lora_tuning:
      alpha: 64
      lora_plus_lr_ratio: 64.0
```

### Mixage de données texte Nova 2.0
<a name="nova-2-text-mixing"></a>

```
data_mixing:
  dataset_catalog: sft_1p5_text_chat
  sources:
    customer_data:
      percent: 50
    nova_data:
      agents: 1
      baseline: 10
      chat: 0.5
      code: 10
      factuality: 0.1
      identity: 1
      long-context: 1
      math: 2
      rai: 1
      instruction-following: 13
      stem: 0.5
      planning: 10
      reasoning-chat: 0.5
      reasoning-code: 0.5
      reasoning-factuality: 0.5
      reasoning-instruction-following: 45
      reasoning-math: 0.5
      reasoning-planning: 0.5
      reasoning-rag: 0.4
      reasoning-rai: 0.5
      reasoning-stem: 0.4
      rag: 1
      translation: 0.1
```

### Mélange de données multimodales Nova 2.0
<a name="nova-2-multimodal-mixing"></a>

```
data_mixing:
  dataset_catalog: sft_1p5_mm_chat
  sources:
    customer_data:
      percent: 50
    nova_data:
      charts: 1
      chat: 38
      code: 20
      docs: 3
      general: 2
      grounding: 1
      rag: 4
      screenshot: 4
      text: 8
      translation: 4
      video: 15
```

## Modéliser les points de contrôle
<a name="model-checkpoints"></a>

### Points de contrôle Nova 2.0
<a name="nova-2-checkpoints"></a>
+ **PRÉ-ENTRAÎNÉ** [`nova-lite-2/pretraining-text-RD`] : Point de contrôle après un taux d'apprentissage constant et des étapes de réduction progressive au cours desquelles le modèle est entraîné sur des milliards de jetons. [Résultat de l'étape 2]
+ **FORMATION INTERMÉDIAIRE** [`nova-lite-2/pretraining-text-CE`] : Permet aux clients disposant de volumes intermédiaires de données non structurées d'introduire leurs données avec un taux d'apprentissage plus modéré qu'avant la formation, absorbant ainsi les connaissances spécifiques au domaine tout en évitant un oubli catastrophique. [Résultat de l'étape 3]
+ **FINAL** [`nova-lite-2/prod`] : Point de contrôle final entièrement aligné qui a suivi toutes les étapes avant et après l'entraînement. [Résultat de l'étape 4]

**Étapes de formation :**
+ Étape 1 : PT Ckpt, pré-formation initiale avec un taux d'apprentissage constant
+ Étape 2 : PT Copt, réduction du taux d'apprentissage
+ Étape 3 : PT Copt, formation d'extension du contexte
+ Étape 4 : alignement suivant les instructions et formation à la sécurité

## Approches de formation
<a name="training-approaches"></a>


**Guide de sélection de l'approche de formation**  

| Type de données | Volume de données | Exécuter | Avec Checkpoint | 
| --- | --- | --- | --- | 
| Données de domaine brutes non structurées à grande échelle (documents, journaux, articles, code, etc.) | Jetons 1T\$1 | Formation préalable continue | Fin du taux d'apprentissage constant (CLR) | 
| Données de domaine brutes non structurées à grande échelle | Plus de 100 milliards de jetons | Au milieu de l'entraînement | Fin du CLR | 
| Petits volumes de données brutes non structurées ; traces de raisonnement structurées/données CoT | Plus de 1 milliard de jetons | Au milieu de l'entraînement | Modèle de base Nova | 
| Démonstrations structurées (paires entrées-sorties de haute qualité, instructions de tâches sélectionnées, dialogues à plusieurs tours) | Plus de 1 000 exemples | Réglage fin supervisé (SFT) | Modèle de base Nova | 

## Pré-requis avant de commencer
<a name="prerequisites"></a>
+ Nous supposons que vous avez déjà configuré un cluster SMHP avec un groupe d'instances restreint (RIG) doté d'une capacité active. Si ce n'est pas le cas, veuillez vous référer ici pour terminer la configuration de votre cluster SMHP et de votre RIG [[Docs Link](https://docs.aws.amazon.com/sagemaker/latest/dg/nova-forge.html), [Workshop Link](https://catalog.us-east-1.prod.workshops.aws/workshops/dcac6f7a-3c61-4978-8344-7535526bf743/en-US)]
+ Vous aurez besoin d'instances EC2 **p5.48xlarge** pour exécuter cette recette. Le nombre minimum d'instances requis pour exécuter efficacement cette recette est le suivant :
  + **Nova Lite 2.0 - 4 p5.48 x large**
+ Installez la SageMaker HyperPod CLI spécifique à Forge en suivant les instructions fournies [ici](https://catalog.us-east-1.prod.workshops.aws/workshops/dcac6f7a-3c61-4978-8344-7535526bf743/en-US)
+ Vérifiez que vous pouvez vous connecter à votre cluster à l'aide de `hyperpod get-clusters`
  + Notez que cette commande listera tous les clusters SMHP de votre compte
+ Vérifiez que votre formation, et éventuellement les données de validation, sont disponibles dans un compartiment S3 accessible par le rôle d'exécution de votre cluster SMHP. Pour la préparation des données, reportez-vous à la section suivante.
+ La configuration est terminée. Si vous n'avez pas terminé la configuration, veuillez suivre le [guide](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) ci-dessous.
+ **Vérification** : Après avoir terminé la configuration, confirmez que vous pouvez exécuter avec succès les commandes ci-dessous

  ```
  aws sagemaker describe-cluster --cluster-name <cluster-name> --region <region>
  
  hyperpod connect-cluster --cluster-name cluster-name
  ```

## Une approche systématique pour réussir le SFT
<a name="systematic-approach"></a>
+ **Préparation des données** : suivez les directives établies pour créer, nettoyer ou reformater les ensembles de données selon la structure requise. Assurez-vous que les entrées, les sorties et les informations auxiliaires (telles que les traces de raisonnement ou les métadonnées) sont correctement alignées et formatées.
+ **Configuration de l'entraînement** : définissez la manière dont le modèle sera entraîné. Lorsque vous utilisez Amazon SageMaker HyperPod, cette configuration est écrite dans un fichier de recette YAML qui inclut :
  + Chemins des sources de données (ensembles de données de formation et de validation)
  + Hyperparamètres clés (nombre d'étapes d'apprentissage, taux d'apprentissage, taille du lot)
  + Composants optionnels (paramètres d'entraînement distribués, etc.)
  + Paramètre de mixage des données (définit les proportions des catégories de données client et Nova)
+ **Optimisation des hyperparamètres SFT : les** valeurs des paramètres de recette SFT que nous recommandons constituent un excellent point de départ et un choix solide. Si vous souhaitez les optimiser davantage pour votre cas d'utilisation, effectuez plusieurs exécutions SFT avec différentes combinaisons de paramètres et choisissez la meilleure. Vous pouvez sélectionner des combinaisons de paramètres en suivant la méthode d'optimisation des hyperparamètres de votre choix. Une approche simple consiste à faire varier la valeur d'un paramètre (default\$10.5, default, default\$12) tout en conservant une autre valeur par défaut pour les autres paramètres, à répéter cette opération pour chaque paramètre que vous souhaitez optimiser et à itérer si nécessaire. Les paramètres les plus pertinents pour LoRa sont le taux d'apprentissage, l'alpha (paramètre de mise à l'échelle), le nombre d'époques d'entraînement et les étapes d'échauffement ; pour le grade complet, il s'agit principalement du taux d'apprentissage, du nombre d'époques et des étapes d'échauffement.

## Séquençage d'expériences et mélange de données
<a name="experiment-sequencing"></a>
+ Si vous ne disposez que de données SFT (train/dev/test) pour un ensemble de tâches et que vous ne vous souciez que des performances des tests sur ces tâches
  + Effectuez le SFT sans mixer sur le point de contrôle [FINAL] Nova. Utilisez les hyperparamètres SFT par défaut et optimisez-les éventuellement pour votre cas d'utilisation. Surveillez les métriques de validation et and/or évaluez les points de contrôle intermédiaires pour des ensembles de données plus importants.
+ Si vous ne disposez que de données SFT (train/dev/test) pour un ensemble de tâches et que vous vous souciez des performances des tests sur ces tâches et des points de référence généraux dans le domaine qui vous intéresse
  + Commencez par mixer les données SFT avec Nova sur un point de contrôle préalable à l'entraînement (point de contrôle PRÉ-ENTRAÎNÉ ou MI-ENTRAÎNÉ, pas FINAL). L'utilisation d'un point de contrôle intermédiaire permet au modèle de mieux intégrer vos données personnalisées aux données propriétaires de Nova tout en conservant de solides capacités générales.
  + Exécutez des sessions d'entraînement SFT plus courtes avec une quantité variable de données Nova dans le mix (par exemple, 10 %, 25 %, 50 %, 75 %) et des sélections de catégories de données Nova qui complètent votre cas d'utilisation (par exemple, choisissez les instructions par catégorie si vous vous souciez des instructions générales suivant les capacités). Surveillez les métriques de validation et évaluez si le mixage améliore les performances par rapport aux benchmarks généraux. Sélectionnez le mix d'entraînement et le point de contrôle qui vous permettront d'obtenir la meilleure combinaison de performance sur votre tâche et de performance générale. Selon le cas d'utilisation, les tâches et les performances générales peuvent être encore améliorées grâce au réglage fin du renforcement (RFT).

## Préparer le jeu de données pour SFT
<a name="dataset-preparation"></a>

**Nova 2.0** : utilisez le format [https://docs.aws.amazon.com/bedrock/latest/userguide/conversation-inference-call.html](https://docs.aws.amazon.com/bedrock/latest/userguide/conversation-inference-call.html) de l'API Converse. Le format de données Nova 2.0 peut contenir des champs de raisonnement supplémentaires : [https://docs.aws.amazon.com/bedrock/latest/APIReference/APIReasoningContentBlock\$1runtime\$1](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ReasoningContentBlock.html) .html

Le contenu du raisonnement capture les étapes de réflexion intermédiaires du modèle avant de générer une réponse finale. À votre `assistant` tour, utilisez le `reasoningContent` champ pour inclure des traces de raisonnement. Utilisez du texte brut pour raisonner le contenu, évitez les balises de balisage telles `</thinking>` que `<thinking>` et sauf si cela est spécifiquement requis par votre tâche, et assurez-vous que le contenu du raisonnement est clair et pertinent pour le processus de résolution des problèmes.

## Méthodes d'évaluation
<a name="evaluation"></a>

### Conditions préalables
<a name="evaluation-prerequisites"></a>
+ Vérifiez l'URI S3 depuis le `manifest.json` fichier de votre tâche de formation (pour les modèles entraînés)
+ Ensemble de données d'évaluation chargé dans S3 dans le bon format
+ Chemin de sortie S3 pour les résultats d'évaluation

**Benchmarks prêts à l'emploi** : utilisez des benchmarks prêts à l'emploi pour valider les performances sur des tâches générales. Pour plus de détails, rendez-vous ici : [https://docs.aws.amazon.com/sagemaker/latest/dg/nova-hp-evaluate.html](https://docs.aws.amazon.com/sagemaker/latest/dg/nova-hp-evaluate.html)

### Apportez vos propres données
<a name="bring-your-own-data"></a>

Vous pouvez également fournir vos données personnalisées en les formatant dans le format ci-dessous, puis en utilisant les conteneurs mentionnés ci-dessous pour obtenir des résultats d'inférence ainsi que des probabilités logarithmiques pour les étalonnages si nécessaire.

Créez jsonl par tâche avec la structure suivante :

```
{
  "metadata": "{key:4, category:'apple'}",
  "system": "arithmetic-patterns, please answer the following with no other words: ",
  "query": "What is the next number in this series? 1, 2, 4, 8, 16, ?",
  "response": "32"
}
```

Les résultats générés pendant la phase d'inférence du travail d'évaluation auront la structure suivante :

```
{
  "prompt": "[{'role': 'system', 'content': 'arithmetic-patterns, please answer the following with no other words: '}, {'role': 'user', 'content': 'What is the next number in this series? 1, 2, 4, 8, 16, ?'}]",
  "inference": "['32']",
  "gold": "32",
  "metadata": "{key:4, category:'apple'}"
}
```

**Descriptions des champs :**
+ `prompt`: entrée formatée envoyée au modèle
+ `inference`: réponse générée par le modèle
+ `gold`: réponse correcte attendue de l'ensemble de données en entrée, champ de réponse de l'entrée
+ `metadata`: métadonnées facultatives transmises depuis l'entrée

### Préparer la configuration d'évaluation
<a name="evaluation-config"></a>

Commande pour lancer la tâche d'évaluation. `"--override-parameters"`À utiliser pour modifier n'importe quelle entrée de la recette.

```
hyperpod start-job -n kubeflow \
  --recipe evaluation/nova/nova_micro_p5_48xl_bring_your_own_dataset_eval \
  --override-parameters '{
    "instance_type": "p5.48xlarge",
    "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-evaluation-repo:SM-HP-Eval-latest",
    "recipes.run.name": "<your-eval-job-name>",
    "recipes.run.model_name_or_path": "<checkpoint-s3-uri>",
    "recipes.run.output_s3_path": "s3://<your-bucket>/eval-results/",
    "recipes.run.data_s3_path": "s3://<your-bucket>/eval-data.jsonl"
  }'
```

## Bonnes pratiques
<a name="best-practices"></a>
+ **Privilégiez la qualité des données au volume** : des données de formation de haute qualité, diversifiées et représentatives sont plus précieuses que de grandes quantités de données de faible qualité.
+ **Inclure reasoning-instruction-following la catégorie** : lorsque vous utilisez le mixage des données, incluez la catégorie reasoning-instruction-following « » pour maintenir de bonnes performances génériques entre les tâches.
+ **Utiliser les taux d'apprentissage par défaut** : commencez par les taux d'apprentissage par défaut (1e-5 pour LoRa, 5e-6 pour le SFT de haut rang) et ajustez uniquement si nécessaire en fonction des métriques de validation.
+ Mixage de **données Balance Nova : mélangez** un maximum de 50 % de données Nova pour un équilibre optimal entre latence et performances. Des pourcentages plus élevés peuvent améliorer les capacités générales mais peuvent augmenter le temps d'entraînement.
+ **Surveillez les mesures de validation** : évaluez régulièrement les points de contrôle intermédiaires pendant l'entraînement afin de détecter rapidement le surajustement ou la dégradation des performances.
+ **Testez sur des ensembles de données représentatifs** : assurez-vous que vos ensembles de données d'évaluation représentent précisément vos cas d'utilisation en production pour une évaluation significative des performances.

## Préparer la configuration du Job de formation
<a name="prepare-training-job-config"></a>

### Hyper paramètres
<a name="hyper-parameters"></a>

Ensemble complet d'hyperparamètres autres que le mixage de données :

```
## Run config
run:
  name: my-lora-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 (SMHP) only and not compatible with SageMaker Training jobs. Note replace my-bucket-name with your real bucket name for SMHP job
  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). Note replace my-bucket-name with your real bucket name for SMHP job
  
  ## MLFlow configs
  mlflow_tracking_uri: "" # Required for MLFlow
  mlflow_experiment_name: "my-lora-sft-experiment" # Optional for MLFlow. Note: leave this field non-empty
  mlflow_run_name: "my-lora-sft-run" # Optional for MLFlow. Note: leave this field non-empty
  
training_config:
  max_steps: 100                   # Maximum training steps. Minimal is 4.
  save_steps: 10 # This parameter suggests after how many training steps the checkpoints will be saved. Should be less than or equal to max_steps(please override this value with a numerical value equal or less than max_steps value; min: 4)
  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            # Golbal 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, must be between 0.0 and 1.0
    adam_beta2: 0.95               # Exponential decay rate for second-moment estimates, must be between 0.0 and 1.0

  peft:                            # Parameter-efficient fine-tuning (LoRA)
    peft_scheme: "lora"            # Enable LoRA for PEFT
    lora_tuning:
      alpha: 64                    # Scaling factor for LoRA weights ( options: 32, 64, 96, 128, 160, 192),
      lora_plus_lr_ratio: 64.0     # LoRA+ learning rate scaling factor (0.0–100.0)
```

Les paramètres les plus pertinents pour LoRa sont le taux d'apprentissage, l'alpha (paramètre de mise à l'échelle), le nombre d'époques d'entraînement et les étapes d'échauffement ; pour le grade complet, il s'agit principalement du taux d'apprentissage, du nombre d'époques et des étapes d'échauffement. Les recettes sont préremplies avec les valeurs par défaut recommandées.

## Configurer un bloc de mixage de données
<a name="set-up-data-mixing-block"></a>

Ajoutez la section data\$1mixing à votre recette avec la distribution en pourcentage appropriée entre les catégories de jeux de données.

Nous décrivons ci-dessous chaque catégorie de données Nova disponible.

### Configuration Nova 2.0 avec mixage de données
<a name="nova-2-config-data-mixing"></a>

```
data_mixing:
  dataset_catalog: sft_1p5_text_chat       # Nova text dataset catalog
  sources:
    customer_data:
      percent: 50                 # Percent of overall mix to draw from customer data
    nova_data:                    # The remainder will be drawn from Nova data. The categories below must add to 100
      agents: 1                   # autonomous decision-making, task completion, goal-oriented behavior in AI systems
      baseline: 10                 # [New in Nova 1.5]
      chat: 0.5                    # Conversational exchanges demonstrating natural dialogue flow
      code: 10                     # Programming examples and solutions spanning multiple languages
      factuality: 0.1               # [New in Nova 1.5]
      identity: 1                 # [New in Nova 1.5]
      long-context: 1             # [New in Nova 1.5]
      math: 2                     # [New in Nova 1.5]
      rai: 1                      # ethical AI principles, safety considerations, and responsible technology deployment
      instruction-following: 13   # precise task execution based on varying levels of user prompts and directives
      stem: 0.5                     # Technical content covering science, technology, engineering, and mathematics
      planning: 10                 # Sequences demonstrating strategic thinking and step-by-step task breakdown
      reasoning-chat: 0.5
      reasoning-code: 0.5
      reasoning-factuality: 0.5
      reasoning-instruction-following: 45
      reasoning-math: 0.5
      reasoning-planning: 0.5
      reasoning-rag: 0.4
      reasoning-rai: 0.5
      reasoning-stem: 0.4
      rag: 1                      # combining retrieved external knowledge with generated responses
      translation: 0.1
```

Que signifient ces catégories ?


**Catégories de données texte Nova 2.0**  

| Nom de la catégorie | Détail de l'information | 
| --- | --- | 
| agents | Données de formation axées sur la prise de décision autonome, l'exécution des tâches et le comportement axé sur les objectifs dans les systèmes d'IA | 
| référence | Données linguistiques fondamentales axées sur la compréhension générale, la communication de base et les capacités linguistiques de base | 
| chat | Des échanges conversationnels démontrant un flux de dialogue naturel, le maintien du contexte et des interactions sociales appropriées | 
| code | Code source de programmation, documentation et discussions techniques à partir de différents langages de programmation et plateformes. | 
| factualité | Matériaux de référence et informations vérifiées axés sur l'exactitude, la validation des sources et l'évaluation de la vérité | 
| une | Cadres de personnalité et modèles comportementaux axés sur des traits de caractère, des valeurs et des styles d'interaction cohérents | 
| contexte long | Des textes étendus et des récits complexes axés sur le maintien de la cohérence et de la pertinence lors de longs échanges | 
| math | Contenu mathématique, y compris les manuels, les problèmes, les solutions et les discussions mathématiques. | 
| rai | Cas et scénarios mettant l'accent sur les principes éthiques de l'IA, les considérations de sécurité et le déploiement responsable des technologies | 
| suivre les instructions | Exemples d'exécution précise de tâches basées sur différents niveaux d'instructions et de directives utilisateur | 
| radical | Contenu technique couvrant les sciences, la technologie, l'ingénierie et les mathématiques, y compris la résolution de problèmes et les concepts théoriques | 
| planification | Séquences illustrant la réflexion stratégique, la répartition des step-by-step tâches et l'allocation efficace des ressources | 
| discussion raisonnée | Scénarios de dialogue analytique axés sur des discussions logiques et des flux de conversation structurés | 
| code de raisonnement | Défis de programmation et problèmes algorithmiques axés sur le développement systématique de solutions | 
| raisonnement-factualité | Scénarios d'évaluation des informations axés sur les processus critiques d'évaluation et de vérification | 
| reasoning-instruction-following | Analyse de tâches complexes axée sur l'interprétation systématique et l'exécution méthodique | 
| mathématiques du raisonnement | Scénarios mathématiques de résolution de problèmes axés sur la progression logique et les stratégies de résolution | 
| planification du raisonnement | Scénarios de prise de décision stratégique axés sur une approche systématique de la réalisation des objectifs | 
| chiffon de raisonnement | Scénarios de recherche et de synthèse d'informations axés sur la compréhension contextuelle et l'application pertinente | 
| Reasoning-Rai | Scénarios de prise de décision éthique axés sur l'évaluation systématique de la sécurité et de l'équité de l'IA | 
| radical de raisonnement | Scénarios scientifiques de résolution de problèmes axés sur l'analyse méthodique et le développement de solutions | 
| chiffon | Exemples de combinaison efficace de connaissances externes récupérées avec des réponses générées pour fournir des informations contextuelles précises | 
| traduction | Paires de contenus multilingues présentant une traduction précise tout en préservant le contexte, le ton et les nuances culturelles | 

### Mixage de données multimodal (Nova 2.0)
<a name="nova-2-mm-data-mixing"></a>

```
data_mixing:
  dataset_catalog: sft_1p5_mm_chat       # Nova text dataset catalog
  sources:
    customer_data:
      percent: 50                 # Percent of overall mix to draw from customer data
    nova_data:                    # The remainder will be drawn from Nova data. The categories below must add to 100
      charts: 1
      chat: 38
      code: 20
      docs: 3
      general: 2
      grounding: 1
      rag: 4
      screenshot: 4
      text: 8
      translation: 4
      video: 15
```

Remarque : Nova 2.0 inclut la prise en charge de catégories de données vidéo qui n'est pas disponible dans Nova 1.0.

Que signifient ces catégories ?


**Catégories de données multimodales Nova 2.0**  

| Nom de la catégorie | Détail de l'information | 
| --- | --- | 
| graphiques | Représentations visuelles et descriptions de graphiques, de diagrammes à secteurs, de diagrammes à barres, de diagrammes linéaires et d'autres visualisations statistiques pour aider le modèle à comprendre et à communiquer efficacement les informations quantitatives | 
| chat | Des données conversationnelles associées à des éléments visuels axés sur la compréhension du dialogue contextuel et les interactions basées sur des images | 
| code | Interfaces de programmation et environnements de développement axés sur l'interprétation visuelle du code, les captures d'écran IDE et les diagrammes techniques | 
| médecins | Des données centrées sur le document combinant du texte, des images, des mises en page et des mises en forme pour apprendre aux modèles à comprendre et à traiter différents types et structures de documents afin de faciliter l'utilisation de concepts tels que la reconnaissance de contenu PDF | 
| general | Contenu visuel et textuel diversifié axé sur une large compréhension des images, des graphiques et du texte descriptif qui les accompagne | 
| ancrage | Des matériaux de référence visuels et des images étiquetées axés sur le lien entre les concepts linguistiques et les représentations visuelles du monde réel | 
| chiffon | Exemples de récupération multimodale montrant comment combiner et référencer efficacement des connaissances externes visuelles et textuelles afin de générer des réponses contextuelles précises | 
| capture d'écran | Captures d'interface d'application et affichage numérique d'images axées sur la compréhension des interfaces logicielles et des interactions numériques | 
| text | Un pool équilibré de données textuelles contextuelles créées à partir des catégories de jeux de données SFT Nova contenant uniquement du texte afin de fournir des capacités généralistes | 
| traduction | Contenu visuel multilingue axé sur l'interprétation multilingue du texte sous forme d'images et d'éléments visuels culturels | 
| vidéos | Contenu visuel basé sur le mouvement axé sur la compréhension temporelle et la compréhension séquentielle visuo-narrative | 

## Comment lancer une offre d'emploi
<a name="how-to-launch-job"></a>

Vous pouvez également vous référer au README, si vous n'avez besoin que des informations essentielles pour lancer la première exécution de SFT.

Informations sur le contenant :


**Informations sur le conteneur et commandes de lancement**  

| Modèle | Technique | Sous-catégorie | URI de l’image | Commande Hyperpod Launcher | 
| --- | --- | --- | --- | --- | 
| Nova 2.0 | Peaufinage | Texte SFT | 708977205387.dkr. ecr.us-east-1.amazonaws.com /:SM-HP-SFT-v2-Latest nova-fine-tune-repo | hyperpod start-job \$1 -n kubeflow \$1 --recipe fine- -:SM-HP-SFT-v2-latest »\$1 'tuning/nova/nova\$12\$10/nova\$1lite/SFT/nova\$1lite\$12\$10\$1p5\$1gpu\$1sft \$1 --override-parameters '\$1 "instance\$1type": "ml.p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/novafine-tune-repo | 
| Nova 2.0 | Peaufinage | Texte SFT\$1 Mixage de données | 708977205387.dkr. ecr.us-east-1.amazonaws.com /:SM-HP-SFT-V2-Datamixing-Latest nova-fine-tune-repo | hyperpod start-job \$1 -n kubeflow \$1 --recipe fine- -:SM-HP-SFT-V2-Datamixing-Latest »\$1 'tuning/nova/forge/nova\$12\$10/nova\$1lite/SFT/nova\$1lite\$12\$10\$1p5\$1gpu\$1sft\$1text\$1with\$1datamix \$1 --override-parameters '\$1 "instance\$1type": "ml.p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/novafine-tune-repo | 
| Nova 2.0 | Peaufinage | 1 MM DOUX | 708977205387.dkr. ecr.us-east-1.amazonaws.com /:SM-HP-SFT-v2-Latest nova-fine-tune-repo | hyperpod start-job \$1 -n kubeflow \$1 --recipe fine- -:SM-HP-SFT-v2-latest »\$1 'tuning/nova/nova\$12\$10/nova\$1lite/SFT/nova\$1lite\$12\$10\$1p5\$1gpu\$1sft \$1 --override-parameters '\$1 "instance\$1type": "ml.p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/novafine-tune-repo | 
| Nova 2.0 | Peaufinage | SFT MM \$1 Mixage de données | 708977205387.dkr. ecr.us-east-1.amazonaws.com /:SM-HP-SFT-V2-Datamixing-Latest nova-fine-tune-repo | hyperpod start-job \$1 -n kubeflow \$1 --recipe fine- -:SM-HP-SFT-V2-Datamixing-Latest »\$1 'tuning/nova/forge/nova\$12\$10/nova\$1lite/SFT/nova\$1lite\$12\$10\$1p5\$1gpu\$1sft\$1mm\$1with\$1datamix \$1 --override-parameters '\$1 "instance\$1type": "ml.p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/novafine-tune-repo | 

Une fois que tout est configuré, en commençant par la racine du sagemaker-hyperpod-cli référentiel, accédez au dossier de recettes par défaut de nova sft
+ cd/src/hyperpod\$1cli/sagemaker\$1hyperpod\$1recipes/recipes\$1collection/recipes/training/nova/
+ Ici, vous pouvez choisir d'exécuter les recettes nova 1 ou nova 2 en fonction du modèle de base choisi.

Pour Nova 2.0 sft :
+ Si vous souhaitez utiliser une tâche logicielle normale, vous devriez pouvoir voir une recette dans ce dossier
  + cd/src/hyperpod\$1cli/sagemaker\$1hyperpod\$1recipes/recipes\$1collection/recipes/fine-tuning/nova\$12\$10/nova\$1lite/SFTet alors vous devriez pouvoir voir une recette dans ce dossier appelée nova\$1lite\$12\$10\$1p5x8\$1gpu\$1sft.yaml
+ Si vous souhaitez utiliser datamixing sft Job, vous pouvez accéder au dossier des recettes de sft Forge
  + cd/src/hyperpod\$1cli/sagemaker\$1hyperpod\$1recipes/recipes\$1collection/recipes/fine-tuning/nova/forge/nova\$12\$10/nova\$1lite/SFTet vous devriez pouvoir voir une recette dans ce dossier appelée : nova\$1lite\$12\$10\$1p5x8\$1gpu\$1sft\$1with\$1datamix.yaml
+ Modifiez les sections de la recette requise par la tâche, telles que name, data\$1s3\$1path, validation\$1s3\$1path, output\$1s3\$1path et max\$1steps. Puisque nous exécutons sft, la notion d'époque ne s'applique pas ici.

La configuration de mixage des données aura la même apparence, mais avec une section de mixage de données supplémentaire en bas, similaire à celle-ci

```
data_mixing:
  dataset_catalog: sft_text_lite
  sources:
    nova_data:   # percent inputs for Nova data must sum to 100%; use 0% if you want to exclude a data grouping
      agents: 20
      business-and-finance: 20
      scientific: 20
      code: 20
      factual-and-news: 20
      longform-text: 0
      health-and-medicine: 0
      humanities-and-education: 0
      legal: 0
      math: 0
      additional-languages: 0
      social-and-personal-interest: 0
      entertainment: 0
      reasoning: 0
      other: 0
      tables: 0
    customer_data: # percent input of customer data. 100 = use only customer data, 0 = use only the nova_data mix above
      percent: 25
```

Il existe ici deux catégories de données de premier niveau :
+ nova\$1data : Il s'agit du véritable mélange de données, qui est subdivisé en encore plus de catégories. Il est impératif qu'ils se résument à 100 %
  + Vous trouverez ci-dessous une liste complète de ces catégories, y compris le nombre de jetons.
+ customer\$1data : Il s'agit de vos données d'entraînement référencées dans la clé data\$1s3\$1path en haut de votre fichier yaml. Le pourcentage indiqué ici détermine le pourcentage obtenu pour nova\$1data. Par exemple, dans les pourcentages de sélections ci-dessus, pendant la formation, nous utiliserons 25 % de customer\$1data et 75 % de nova\$1data, dont 15 % seront des agents, 15 % seront des agents, 15 % seront des scientifiques business-and-finance, 15 % seront du code et 15 % seront factual-and-news

Conseil : exécutez à nouveau pip install -e. et vous êtes prêt à soumettre votre travail \$1

Nous allons remplacer quelques paramètres ici pour utiliser le mixage des données :

```
hyperpod start-job \
 -n kubeflow \
 --recipe fine-tuning/nova/forge/nova_2_0/nova_lite/SFT/nova_lite_2_0_p5x8_gpu_sft_with_datamix \
 --override-parameters '{
 "instance_type": "ml.p5.48xlarge",
 "recipes.run.name": "nova-sft-datamixing",
 "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-V2-Datamix",
 "recipes.run.data_s3_path": "s3://sft-data/sft_train_data.jsonl",
 "recipes.run.validation_data_s3_path": "s3://sft-data/sft_val_data.jsonl",
 "recipes.run.output_s3_path": "s3://sft-data/output/
 }'
```

Votre sortie doit contenir le nom de la tâche comme suit :

```
⚡ MY Desktop ⚡ % hyperpod start-job \
 -n kubeflow \
 --recipe training/nova/forge/nova_2_0/nova_lite/sft/nova_lite_2_0_p5x8_gpu_pretrain_with_datamix \
 --override-parameters '{
 "instance_type": "ml.p5.48xlarge",
 "recipes.run.name": "nova-sft-datamixing",
 "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-V2-Datamix",
 "recipes.run.data_s3_path": "s3://sft-data/sft_train_data.jsonl",
 "recipes.run.validation_data_s3_path": "3://sft-data/sft_val_data.jsonl",
 "recipes.run.output_s3_path": "3://sft-data/output/
 }'
```

Le résultat serait le suivant :

```
Final command: python3 /local/home/my/Downloads/sagemaker-hyperpod-cli/src/hyperpod_cli/sagemaker_hyperpod_recipes/main.py recipes=training/nova/nova_micro_p5x8_gpu_pretrain cluster_type=k8s cluster=k8s base_results_dir=/local/home/niphaded/Downloads/sagemaker-hyperpod-cli/results cluster.pullPolicy="IfNotPresent" cluster.restartPolicy="OnFailure" cluster.namespace="kubeflow" instance_type="p5d.48xlarge" container="900867814919.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:sft-datamix-rig-final"
Prepared output directory at /local/home/my/Downloads/sagemaker-hyperpod-cli/results/my-sft-run-wzdyn/k8s_templates
Found credentials in shared credentials file: ~/.aws/credentials
Helm script created at /local/home/my/Downloads/sagemaker-hyperpod-cli/results/my-sft-run-wzdyn/niphaded-sft-run-wzdyn_launch.sh
Running Helm script: /local/home/my/Downloads/sagemaker-hyperpod-cli/results/my-sft-run-wzdyn/niphaded-sft-run-wzdyn_launch.sh

NAME: my-sft-run-wzdyn
LAST DEPLOYED: Tue Aug 26 16:21:06 2025
NAMESPACE: kubeflow
STATUS: deployed
REVISION: 1
TEST SUITE: None
Launcher successfully generated: /local/home/my/Downloads/sagemaker-hyperpod-cli/src/hyperpod_cli/sagemaker_hyperpod_recipes/launcher/nova/k8s_templates/SFT

{
 "Console URL": "https://us-east-1.console.aws.amazon.com/sagemaker/home?region=us-east-1#/cluster-management/hyperpod-eks-ga-0703"
}
```

Vous pouvez consulter le statut de votre tâche en utilisant hyperpod list-pods -n kubeflow --job-name my-sft-run-wzdyn

```
hyperpod list-pods -n kubeflow --job-name my-sft-run-wzdyn 
{
 "pods": [
  {
   "PodName": "my-sft-run-wzdyn-master-0",
   "Namespace": "kubeflow",
   "Status": "Pending",
   "CreationTime": "2025-08-26 16:21:06+00:00"
  },
  {
   "PodName": "my-sft-run-wzdyn-worker-0",
   "Namespace": "kubeflow",
   "Status": "Pending",
   "CreationTime": "2025-08-26 16:21:06+00:00"
  }
 ]
}
```

ou utilisez directement la commande kubectl pour les trouver.

Par exemple, 

```
kubectl get pods -o wide -w -n kubeflow | (head -n1 ; grep my-sft-run)

NAME                                                         READY   STATUS      RESTARTS   AGE     IP              NODE                           NOMINATED NODE   READINESS GATES
my-sft-run-5suc8-master-0                              0/1     Completed   0          3h23m   172.31.32.132   hyperpod-i-00b3d8a1bf25714e4   <none>           <none>
my-sft-run-5suc8-worker-0                              0/1     Completed   0          3h23m   172.31.44.196   hyperpod-i-0aa7ccfc2bd26b2a0   <none>           <none>
my-sft-run-5suc8-worker-1                              0/1     Completed   0          3h23m   172.31.46.84    hyperpod-i-026df6406a7b7e55c   <none>           <none>
my-sft-run-5suc8-worker-2                              0/1     Completed   0          3h23m   172.31.28.68    hyperpod-i-0802e850f903f28f1   <none>           <none>
```

Conseil de pro : veillez à toujours utiliser l'indicateur -o wide, car le nœud EKS sur lequel la tâche s'exécute vous aidera à retrouver vos journaux encore plus rapidement dans l'interface utilisateur AWS 

## Comment surveiller Job
<a name="how-to-monitor-job"></a>

Vous pouvez consulter vos journaux de trois manières :

### a) Utilisation CloudWatch
<a name="using-cloudwatch"></a>

Vos journaux sont disponibles sur votre compte Amazon Web Services qui contient le cluster Hyperpod sous CloudWatch. Pour les consulter dans votre navigateur, rendez-vous sur la CloudWatch page d'accueil de votre compte et recherchez le nom de votre cluster. Par exemple, si votre cluster était appelé, my-hyperpod-rig le groupe de journaux aurait le préfixe suivant :
+ Groupe de journaux :/aws/sagemaker/Clusters/my-hyperpod-rig/ \$1UUID\$1
+ Une fois que vous êtes dans le groupe de journaux, vous pouvez trouver votre journal spécifique à l'aide de l'ID d'instance du nœud, tel que hyperpod-i-00b3d8a1bf25714e4.
  + i-00b3d8a1bf25714e4 représente ici le nom de la machine adaptée aux hyperpodes sur laquelle se déroule votre tâche de formation. Rappelez-vous comment, dans la commande précédente kubectl get pods -o wide -w -n kubeflow \$1 (head -n1 ; grep my-cpt-run) output, nous avons capturé une colonne appelée NODE.
  + Le nœud « principal » exécuté était dans ce cas exécuté sur hyperpod-i-00b3d8a1bf25714e4. Nous allons donc utiliser cette chaîne pour sélectionner le groupe de journaux à afficher. Sélectionnez celui qui dit SagemakerHyperPodTrainingJob /rig-group/ [NODE]

Vos journaux devraient ressembler à ceci :

### b) Utilisation d' CloudWatch Insights
<a name="using-cloudwatch-insights"></a>

Si vous avez le nom de votre poste à portée de main et que vous ne souhaitez pas suivre toutes les étapes ci-dessus, vous pouvez simplement rechercher tous les journaux sous/aws/sagemaker/Clusters/my-hyperpod-rig/ \$1UUID\$1 pour trouver le journal individuel.

CPT

```
fields @timestamp, @message, @logStream, @log 
| filter @message like /(?i)Starting CPT Job/
| sort @timestamp desc 
| limit 100
```

Pour terminer la tâche, remplacez Starting SFT Job par SFT Job completed

Ensuite, vous pouvez cliquer sur les résultats et choisir celui qui indique « Epoch 0 », car ce sera votre nœud principal.

### C) Utilisation de l'interface de ligne de commande aws
<a name="using-aws-cli"></a>

Vous pouvez choisir de suivre vos journaux à l'aide du. Avant de le faire, veuillez vérifier votre version d'aws cli à l'aide de aws --version. Il est également recommandé d'utiliser ce script utilitaire qui facilite le suivi des journaux en direct sur votre terminal.

pour V1 :

```
aws logs get-log-events \
 --log-group-name /aws/sagemaker/YourLogGroupName \
 --log-stream-name YourLogStream \
 --start-from-head | jq -r '.events[].message'
```

pour V2 :

```
aws logs tail /aws/sagemaker/YourLogGroupName \
  --log-stream-name YourLogStream \
 --since 10m \
 --follow
```

### D) Configurer ML Flow :
<a name="setup-mlflow"></a>

Vous pouvez suivre les métriques via MLFlow.

Création d'une MLflow application

Utilisation de l'interface utilisateur de Studio : si vous créez une tâche de formation via l'interface utilisateur de Studio, une MLflow application par défaut est créée automatiquement et sélectionnée par défaut dans les options avancées.

Utilisation de la CLI : si vous utilisez la CLI, vous devez créer une MLflow application et la transmettre comme entrée à la demande d'API de la tâche de formation.

```
mlflow_app_name="<enter your MLflow app name>"  
role_arn="<enter your role ARN>"   
bucket_name="<enter your bucket name>"   
region="<enter your region>"  
  
mlflow_app_arn=$(aws sagemaker create-mlflow-app \  
  --name $mlflow_app_name \  
  --artifact-store-uri "s3://$bucket_name" \  
  --role-arn $role_arn \  
  --region $region)
```

Accédez à l' MLflow application

À l'aide de la CLI : créez une URL présignée pour accéder à l'interface utilisateur de l' MLflow application :

```
aws sagemaker create-presigned-mlflow-app-url \  
  --arn $mlflow_app_arn \  
  --region $region \  
  --output text
```

Une fois ML Flow configuré, vous pouvez transmettre l'URI dans votre recette ou utiliser le override au démarrage de la tâche. Vous trouverez un exemple de la façon de procéder dans le fichier README.

## Comment évaluer votre modèle après SFT ?
<a name="how-to-evaluate-after-sft"></a>

### Conditions préalables
<a name="eval-prerequisites"></a>
+ Vérifiez l'URI S3 depuis le fichier manifest.json de votre tâche de formation (pour les modèles entraînés)
+ Ensemble de données d'évaluation chargé dans S3 dans le bon format
+ Chemin de sortie S3 pour les résultats d'évaluation

Benchmarks prêts à l'emploi : utilisez des benchmarks prêts à l'emploi pour valider les performances sur des tâches générales. Pour plus de détails, cliquez ici.

### Apportez vos propres données :
<a name="bring-your-own-eval-data"></a>

Vous pouvez également fournir vos données personnalisées en les formatant dans le format ci-dessous, puis en utilisant les conteneurs mentionnés ci-dessous pour obtenir des résultats d'inférence ainsi que des probabilités logarithmiques pour les étalonnages si nécessaire.

Créez jsonl par tâche avec la structure suivante :

```
{
  "metadata": "{key:4, category:'apple'}",
  "system": "arithmetic-patterns, please answer the following with no other words: ",
  "query": "What is the next number in this series? 1, 2, 4, 8, 16, ?",
  "response": "32"
}
```

Les résultats générés pendant la phase d'inférence du travail d'évaluation auront la structure suivante :

```
{
  "prompt": "[{'role': 'system', 'content': 'arithmetic-patterns, please answer the following with no other words: '}, {'role': 'user', 'content': 'What is the next number in this series? 1, 2, 4, 8, 16, ?'}]",
  "inference": "['32']",
  "gold": "32",
  "metadata": "{key:4, category:'apple'}"
}
```

Descriptions des champs :
+ prompt : entrée formatée envoyée au modèle
+ inférence : réponse générée par le modèle
+ gold : réponse correcte attendue de l'ensemble de données d'entrée, champ de réponse de l'entrée
+ métadonnées : métadonnées facultatives transmises depuis l'entrée

### Préparer la configuration d'évaluation
<a name="prepare-eval-config"></a>

Commande pour lancer la tâche d'évaluation. Utilisez « --override-parameters » pour modifier n'importe quelle entrée de la recette.

```
hyperpod start-job -n kubeflow \
  --recipe evaluation/nova/nova_micro_p5_48xl_bring_your_own_dataset_eval \
  --override-parameters '{
    "instance_type": "p5.48xlarge",
    "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-evaluation-repo:SM-HP-Eval-latest",
    "recipes.run.name": "<your-eval-job-name>",
    "recipes.run.model_name_or_path": "<checkpoint-s3-uri>",
    "recipes.run.output_s3_path": "s3://<your-bucket>/eval-results/",
    "recipes.run.data_s3_path": "s3://<your-bucket>/eval-data.jsonl"
  }'
```

### Lancez votre job d'évaluation
<a name="launch-eval-job"></a>

Commandes de lancement de tâches pour différentes recettes avec les images correspondantes.


**Commandes de lancement des tâches d'évaluation**  

| Modèle | Technique | Sous-catégorie | URI de l’image | Commande | 
| --- | --- | --- | --- | --- | 
| Nova 2.0 | Évaluation | Éval | 708977205387.dkr. ecr.us-east-1.amazonaws.com /:SM-HP-Eval-Latest nova-evaluation-repo | hyperpod start-job -n kubeflow \$1 --recipe -Evaluation-Repo:SM-HP-Eval-Latest »\$1 'evaluation/nova/nova\$12\$10/nova\$1lite/nova\$1lite\$12\$10\$1p5\$148xl\$1gpu\$1ft\$1eval \$1 --override-parameters '\$1 "instance\$1type": "ml.p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova | 

## Leçons apprises et conseils
<a name="lessons-learned-tips"></a>
+ La qualité de l'ensemble de données SFT est essentielle. Vous devez tout mettre en œuvre pour filtrer les données de faible qualité. Si vous disposez d'un petit sous-ensemble de données d'une qualité exceptionnelle, à la fois en termes de complexité et de précision, vous pouvez envisager de le placer vers la fin de l'entraînement pour aider le modèle à mieux converger.
+ Nous utilisons à la fois des ensembles de données textuels et multimodaux (MM) pour le mixage des données. Nos expériences avec des jeux de données textuels montrent que l'ajout de la catégorie propriétaire « reasoning-instruction-following » de Nova améliore considérablement les performances par rapport aux benchmarks génériques. Nous vous recommandons d'inclure cette catégorie dans votre stratégie de mixage des données si vous vous intéressez à un benchmark générique régressé une fois que vous avez utilisé SFT avec vos ensembles de données.
+ Pour les ensembles de données MM, nos expériences indiquent que l'intégration de plus de 20 % de catégories vidéo dans le mix est bénéfique pour maintenir les performances de référence génériques.
+ De plus, le SFT avec mixage de données est assez sensible au taux d'apprentissage. Nos résultats suggèrent donc de l'ajuster avec le taux d'apprentissage par défaut, c'est-à-dire 1e-5 pour LoRa et 5e-6 pour FR.
+ Enfin, il existe un compromis entre latence et performances si vous mélangez des ensembles de données propriétaires de Nova. Nos résultats suggèrent donc de mélanger 50 % au maximum pour obtenir un bon équilibre.

# Apprentissage par renforcement
<a name="nova-hp-rft-forge"></a>

**Note**  
Une documentation détaillée est fournie une fois que vous êtes abonné

Nova Forge fournit des capacités avancées d'apprentissage par renforcement avec la possibilité d'utiliser des fonctions de récompense à distance dans votre propre environnement. Les clients peuvent choisir d'intégrer leur propre point de terminaison pour exécuter la validation afin d'obtenir des commentaires immédiats dans le monde réel, ou même d'utiliser leur propre orchestrateur pour coordonner les évaluations agentiques en plusieurs étapes dans votre environnement.

## Apportez votre propre orchestrateur pour des évaluations agentiques en plusieurs étapes
<a name="nova-hp-rft-forge-byoo"></a>

Pour les utilisateurs de Forge qui ont besoin de conversations à plusieurs tours ou de fonctions de récompense dépassant les 15 minutes, Nova Forge propose des fonctionnalités BYOO (Bring Your Own Orchestration). Cela vous permet de coordonner des évaluations agentiques à plusieurs tours dans votre environnement (par exemple, en utilisant des outils de chimie pour évaluer les conceptions moléculaires, ou des simulations robotiques qui récompensent l'exécution efficace des tâches et pénalisent les collisions).

**Topics**
+ [

### Présentation de l’architecture
](#nova-hp-rft-forge-architecture)
+ [

### Configuration et exécution
](#nova-hp-rft-forge-setup)

### Présentation de l’architecture
<a name="nova-hp-rft-forge-architecture"></a>

L'architecture BYOO fournit un contrôle total sur le processus de déploiement et de génération grâce à une infrastructure gérée par le client.

**VPC d'entraînement :**
+ **Déploiement** : coordonne la formation en déléguant la génération du déploiement à l'infrastructure du client
+ **Trainer** : effectue des mises à jour du poids des modèles en fonction des déploiements reçus

**VPC du client (tel qu'ECS sur EC2) :**
+ **Proxy Lambda** : reçoit les demandes de déploiement et assure la coordination avec l'infrastructure du client
+ **Réponse au déploiement SQS** : file d'attente pour le renvoi des déploiements terminés vers l'infrastructure de formation
+ **Generate Request SQS** : file d'attente pour les demandes de génération de modèles
+ **Generate Response SQS** : file d'attente pour les réponses de génération de modèles
+ **Conteneur client** : implémente une logique d'orchestration personnalisée (peut utiliser le kit de démarrage fourni)
+ **DynamoDB** : stocke et récupère l'état tout au long du processus d'orchestration

**Flux de travail :**

1. Le déploiement délègue la génération du déploiement à Proxy Lambda

1. Proxy Lambda envoie une demande d'API de déploiement pour générer une requête SQS

1. Le conteneur client traite les demandes, gère les interactions à plusieurs tours et appelle les fonctions de récompense

1. Le conteneur stocke et extrait l'état de DynamoDB selon les besoins

1. Container transmet les réponses de déploiement à Rollout Response SQS

1. Rollout envoie les déploiements terminés à Trainer pour qu'il mette à jour le poids

### Configuration et exécution
<a name="nova-hp-rft-forge-setup"></a>

Pour des instructions de configuration détaillées, des configurations de recettes, des formats de demande et de réponse, ainsi que des exemples d'environnement, reportez-vous à la documentation confidentielle fournie aux abonnés de Nova Forge. Pour obtenir les documents de Nova Forge, suivez les étapes ci-dessous :

```
aws s3 cp s3://nova-forge-c7363-206080352451-us-east-1/v1/ ./ --recursive
```

Une fois les ressources téléchargées, vous trouverez toute la documentation dans le `docs` dossier.

# Boîte à outils d'IA responsable et modération du contenu
<a name="nova-responsible-ai-toolkit"></a>

## Boîte à outils pour une IA responsable
<a name="nova-responsible-ai-toolkit-overview"></a>

Nova Forge fournit une boîte à outils d'IA responsable qui inclut des données de formation et d'évaluation pour aligner les modèles sur les directives d'Amazon Nova en matière d'IA responsable pendant le processus de formation, ainsi que des contrôles d'exécution pour modérer les réponses des modèles lors de l'inférence.

**Données de formation** — Des cas et des scénarios mettant l'accent sur les principes de l'IA responsable, les considérations de sécurité et le déploiement responsable des technologies sont disponibles pour le mixage des données afin d'aligner les modèles de manière responsable pendant la formation préalable continue.

**Évaluations** — Les évaluations testant la capacité du modèle à détecter et à rejeter le contenu inapproprié, préjudiciable ou incorrect sont disponibles en tant que tâche de référence pour déterminer le delta entre les performances du modèle de base et les performances du modèle personnalisé.

**Contrôles d'exécution** : par défaut, le moteur d'exécution d'Amazon Nova contrôle les réponses modérées du modèle lors de l'inférence. Pour modifier ces contrôles d'exécution, demandez les paramètres de modération de contenu personnalisables d'Amazon Nova en contactant un responsable de AWS compte.

La sécurité est une responsabilité partagée entre AWS et ses utilisateurs. La modification du modèle de base ou le recours à une formation préalable continue pour améliorer les performances dans un cas d'utilisation spécifique peuvent avoir un impact sur la sécurité, l'équité et d'autres propriétés du nouveau modèle. Une méthode d'adaptation robuste minimise les modifications apportées à la sécurité, à l'équité et aux autres protections intégrées aux modèles de base tout en minimisant l'impact sur les performances du modèle pour les tâches pour lesquelles le modèle n'a pas été personnalisé. End-to-enddes tests d'applications sur des ensembles de données représentatifs de cas d'utilisation sont nécessaires pour déterminer si les résultats des tests répondent aux attentes spécifiques en matière de sécurité, d'équité et d'autres propriétés, ainsi que d'efficacité globale. Pour plus d'informations, consultez le guide d'utilisation responsable de l'IA d'Amazon Web Services, la politique d'Amazon Web Services en matière d'intelligence artificielle responsable, la politique d'utilisation acceptable d'Amazon Web Services et les conditions de service d'Amazon Web Services.