View a markdown version of this page

Réglage fin supervisé (SFT) sur Nova 2.0 sur SageMaker HyperPod - Amazon Nova

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

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 dansFonctionnalités prises en charge.

Pour déterminer si le SFT convient à votre cas d'utilisation, consultezPeaufinage supervisé (SFT).

Vous trouverez ci-dessous un exemple de recette pour SFT. Vous pouvez trouver cette recette et d'autres dans le référentiel de 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)

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.

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)

  2. 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.

Commencer un travail de mise au point sur SageMaker HyperPod

Préparation de vos données

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, consultezPréparation des données pour SFT sur Amazon Nova 2.

Téléchargement de vos données

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

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

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 sontamazon.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 sontnova-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

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.