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 précis supervisé
Introduction
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 ?
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 ?
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
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_mixing à votre fichier YAML de recette, dans la section training_config. Les blocs de mélange de texte et de données multimodales ont un contenu différent, et les blocs de mélange de données sont quelque peu différents pour Nova 1.0 et Nova 2.0. Veuillez vous référer aux recettes correspondantes.
Modèles pris en charge
Nova 1.0 (Micro, Lite, Pro)
Nova 2.0 Lite
Modalité prise en charge
Texte
Multimodal
Exemples de configuration YAML
Exemple de bloc de mixage de données pour le mixage de texte Nova 1.0
## Run config run: name: "my-lora-run" # A descriptive name for your training job model_type: "amazon.nova-lite-v1:0:300k" # Model variant specification, do not change model_name_or_path: "nova-lite/prod" # Base model path, do not change replicas: 4 # Number of compute instances for training, allowed values are 4, 8, 16 data_s3_path: "" # Customer data path output_s3_path: "" # Output artifact path, SageMaker HyperPod job-specific configuration - not compatible with standard SageMaker Training jobs ## MLFlow configs mlflow_tracking_uri: "" # Required for MLFlow mlflow_experiment_name: "my-lora-experiment" # Optional for MLFlow. Note: leave this field non-empty mlflow_run_name: "my-lora-run" # Optional for MLFlow. Note: leave this field non-empty ## Training specific configs training_config: max_length: 32768 # Maximum context window size (tokens). global_batch_size: 64 # Global batch size, allowed values are 16, 32, 64 trainer: max_epochs: 2 # Number of training epochs 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 ffn_dropout: 0.0 # Dropout for feed-forward networks, must be between 0.0 and 1.0 optim: 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 betas: # Adam optimizer betas, must be between 0.0 and 1.0 - 0.9 - 0.999 sched: warmup_steps: 10 # Learning rate warmup steps constant_steps: 0 # Steps at constant learning rate min_lr: 1e-6 # Minimum learning rate peft: peft_scheme: "lora" # Enable LoRA for parameter-efficient fine-tuning lora_tuning: loraplus_lr_ratio: 8.0 # LoRA+ learning rate scaling factor, must be between 0.0 and 100.0 alpha: 32 # Scaling factor for LoRA weights. Allowed values are 32, 64, 96, 128, 160 and 192 adapter_dropout: 0.01 # Regularization for LoRA parameters. Must be between 0.0 and 1.0 data_mixing: dataset_catalog: sft_text # 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 chat: 51 # Conversational exchanges demonstrating natural dialogue flow code: 8 # Programming examples and solutions spanning multiple languages 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: 6 # science, technology, engineering, and mathematics content planning: 2 # sequences demonstrating strategic thinking and step-by-step task breakdown reasoning: 8 # logical problem-solving and analytical thinking demonstrations rag: 1 # retrieval-augmented generation examples translation: 9 # language translation tasks
Exemple de configuration de Nova 2.0
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
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 multimodal Nova 1.0
data_mixing: dataset_catalog: sft_mm sources: customer_data: percent: 50 nova_data: agents: 11 docs: 17 perception: 10 rag: 4 rai: 3 reasoning: 10 stem: 17 text: 10 video: 18
Mélange de données multimodal Nova 2.0
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
Points de contrôle Nova 1.0
-
PRÉ-ENTRAÎNÉ [
nova-<micro/lite/pro>/pretraining-text-partial] : Point de contrôle après la phase de pré-formation à taux d'apprentissage constant de Nova, au cours de laquelle le modèle est entraîné sur des milliards de jetons de texte. [Résultat de l'étape 1] -
MI-ENTRAÎNEMENT [
nova-<micro/lite/pro>/pretraining-text-full] : point de contrôle texte uniquement après toutes les étapes de pré-entraînement et de mi-entraînement avec Nova avec des milliards de jetons de texte. À utiliser si vous ne souhaitez pas que le modèle ait détecté de données multimodales. [Résultat de l'étape 3] -
À MI-ENTRAÎNEMENT [
nova-<lite/pro>/pretraining-mm-full] : point de contrôle après toutes les étapes de pré-entraînement et de mi-entraînement de Nova, y compris les données multimodales, avec des milliards de jetons. [Résultat de l'étape 3 avec données multimodales] -
FINAL [
nova-<micro/lite/pro>/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]
Points de contrôle Nova 2.0
-
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
| 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+ | 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 | À mi-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 | À mi-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
-
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, Workshop Link
] -
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
Nova Lite 1.0 — 4 p5,48 x large
Nova Micro 1.0 — 4 p5.48 x large
Nova Pro 1.0 — 6 p5,48 x large
-
Installez la SageMaker HyperPod CLI spécifique à Forge en suivant les instructions fournies ici
-
Vérifiez que vous pouvez vous connecter à votre cluster à l'aide de
hyperpod get-clustersNotez 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 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
-
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*0.5, default, default*2) 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
-
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
Nova 2.0 : utilisez le format de l'API Converse comme pour Nova 1.0 https://docs.aws.amazon.com/bedrock/latest/userguide/conversation-inference-call.html. 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_runtime_ .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.
Boîte à outils d'IA responsable et modération de contenu
Paramètres de modération du contenu : les clients de Nova Forge ont accès à des paramètres de modération de contenu (CCMS) personnalisables pour les modèles Nova Lite 1.0 et Pro 1.0. Le CCMS vous permet d'ajuster les contrôles de modération du contenu afin de les aligner sur les exigences spécifiques de votre entreprise tout en maintenant les garanties essentielles et responsables liées à l'IA. Pour déterminer si votre cas d'utilisation professionnelle est éligible au CCMS, contactez votre responsable de compte Amazon Web Services.
Nova Forge fournit une boîte à outils d'IA responsable qui comprend des données d'entraînement, des points de référence d'évaluation et des contrôles d'exécution pour vous aider à aligner vos modèles sur les directives de Nova en matière d'IA responsable.
Données de formation : La catégorie « RAI » du mixage de données contient 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. Utilisez-les pour aligner vos modèles de manière responsable pendant la période continue de pré-entraînement.
Évaluations : des tâches de référence sont disponibles pour tester la capacité de votre modèle à détecter et à rejeter le contenu inapproprié, préjudiciable ou incorrect. Utilisez ces évaluations pour mesurer la différence entre les performances du modèle de base et celles de votre modèle personnalisé.
Contrôles d'exécution : Par défaut, le moteur d'exécution de Nova contrôle les réponses modérées du modèle lors de l'inférence. Pour modifier ces contrôles en fonction de votre analyse de rentabilisation spécifique, demandez des paramètres de modération de contenu personnalisables (CCMS) en contactant votre responsable de compte Amazon Web Services.
Responsabilité partagée en matière de sécurité
La sécurité est une responsabilité partagée entre Amazon Web Services et nos clients. 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.
Nous utilisons une méthode d'adaptation robuste afin de minimiser les modifications apportées à la sécurité, à l'équité et aux autres protections intégrées à nos 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é.
Vous êtes responsable de :
End-to-end test de leurs applications sur des ensembles de données représentatifs de leurs cas d'utilisation
Déterminer si les résultats des tests répondent à leurs 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 AWS acceptable et les conditions de AWS service relatives aux services que vous prévoyez d'utiliser.
Paramètres de modération de contenu (CCMS) personnalisables
Le CCMS vous permet d'ajuster les contrôles en fonction des besoins de votre entreprise tout en conservant les contrôles essentiels et non configurables qui garantissent une utilisation responsable de l'IA.
Ces paramètres permettent de générer du contenu via trois configurations disponibles :
Sécurité uniquement
Sécurité, contenu sensible et équité combinés
Toutes catégories confondues
Les quatre catégories de modération du contenu sont les suivantes :
Sécurité — Couvre les activités dangereuses, les armes et les substances contrôlées
Contenu sensible : inclut les grossièretés, la nudité et le harcèlement
Équité : tient compte des préjugés et des considérations culturelles
Sécurité : implique la cybercriminalité, les logiciels malveillants et le contenu malveillant
Quelle que soit la configuration de votre système CCMS, Amazon Nova applique des contrôles essentiels et non configurables pour garantir une utilisation responsable de l'IA, tels que des contrôles visant à éviter de nuire aux enfants et à préserver la confidentialité.
Recommandations pour l'utilisation du CCMS
Lorsque vous utilisez le CCMS, nous vous recommandons d'utiliser la formation préalable continue (CPT) et de commencer par un point de contrôle d'alignement antérieur au RAI (pré-entraînement précoce PRE-TRAINING-Mid, ou) plutôt que par le point de contrôle. PRE-TRAINING-Final GA/FINAL Ces points de contrôle n'ont pas fait l'objet d'une formation en matière de sécurité ou n'ont pas été orientés vers des comportements spécifiques de la RAI, ce qui vous permet de les personnaliser plus efficacement en fonction de vos exigences de modération du contenu.
Conseil : Lorsque vous utilisez CCMS pour mélanger des données, pensez à ajuster le pourcentage de catégorie « rai » dans votre configuration nova_data afin de l'aligner sur vos exigences spécifiques de modération du contenu.
Disponibilité
Le CCMS est actuellement disponible pour les clients approuvés utilisant :
Modèles Nova Lite 1.0 et Pro 1.0
Inférence à la demande sur Amazon Bedrock
La région us-east-1 (Virginie du Nord)
Pour activer le CCMS pour vos modèles Forge, contactez votre responsable de compte Amazon Web Services.
Méthodes d'évaluation
Conditions préalables
Vérifiez l'URI S3 depuis le
manifest.jsonfichier 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
Apportez vos propres données
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èleinference: réponse générée par le modèlegold: réponse correcte attendue de l'ensemble de données en entrée, champ de réponse de l'entréemetadata: métadonnées facultatives transmises depuis l'entrée
Préparer la configuration d'évaluation
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
-
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
Hyper paramètres
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
Ajoutez la section data_mixing à 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 1.0 avec mixage de données
data_mixing: dataset_catalog: sft_text # 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 chat: 51 # Conversational exchanges demonstrating natural dialogue flow code: 8 # Programming examples and solutions spanning multiple languages 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: 6 # Technical content covering science, technology, engineering, and mathematics planning: 2 # Sequences demonstrating strategic thinking and step-by-step task breakdown reasoning: 8 # Logical deduction, critical thinking, and analytical problem-solving scenarios rag: 1 # combining retrieved external knowledge with generated responses translation: 9 # Multi-language content pairs showing accurate translation
Que signifient ces catégories ?
| Nom de la catégorie | Détails 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 |
| chat | Des échanges conversationnels démontrant un flux de dialogue naturel, le maintien du contexte et des interactions sociales appropriées |
| code | Exemples et solutions de programmation couvrant plusieurs langages, scénarios de débogage et meilleures pratiques de développement logiciel |
| 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 |
| raisonnement | Scénarios de déduction logique, de pensée critique et de résolution de problèmes analytiques avec des chaînes de raisonnement claires |
| 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 1.0)
data_mixing: dataset_catalog: sft_mm # Nova multi-modal 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: 11 # Combining visual and textual inputs docs: 17 # Document-centric data combining text, images, layouts, and formatting perception: 10 # Visual-linguistic pairs t rag: 4 # Combining retrieved external knowledge with generated responses rai: 3 # Ethical AI principles, safety considerations, and responsible technology deployment reasoning: 10 # Logical analysis, problem-solving, and drawing conclusions stem: 17 # Technical content pairing visual elements (diagrams, charts, equations) with text text: 10 # A balanced pool of contextual text data create from the text-only SFT datasets video: 18 # Video datasets
Que signifient ces catégories ?
| Nom de la catégorie | Détails de l'information |
|---|---|
| agents | Des paires d'entraînement combinant des entrées visuelles et textuelles qui montrent comment les systèmes d'IA doivent interpréter, agir sur et interagir avec les informations environnementales multisensorielles |
| 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 |
| perception | Modèles pédagogiques par paires visuo-linguistiques pour décrire, interpréter et raisonner avec précision des images, des vidéos et d'autres entrées visuelles en langage naturel |
| 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 |
| raisonnement | Cas combinant des éléments visuels et textuels qui démontrent une analyse logique, la résolution de problèmes et l'établissement de conclusions selon de multiples modalités |
| radical | Contenu technique associant des éléments visuels (diagrammes, graphiques, équations) à du texte pour enseigner des concepts scientifiques, mathématiques et techniques et la résolution de problèmes |
| 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 |
| vidéos | Contenu visuel basé sur le mouvement axé sur la compréhension temporelle et la compréhension séquentielle visuo-narrative |
Configuration Nova 2.0 avec mixage de données
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 ?
| Nom de la catégorie | Détails 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)
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 ?
| Nom de la catégorie | Détails 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
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 :
| Modèle | Technique | Sous-catégorie | URI de l’image | Commande Hyperpod Launcher |
|---|---|---|---|---|
| Nova 1.0 | Peaufinage | GAUCHE/GAUCHE | 708977205387.dkr. ecr.us-east-1.amazonaws.com /:SM-HP-SFT-Latest nova-fine-tune-repo | hyperpod start-job \ -n kubeflow \ --recipe fine- -:SM-HP-SFT-Latest »} 'tuning/nova/nova_1_0/nova_micro/SFT/nova_micro_1_0_p5_gpu_sft \ --override-parameters '{ "instance_type": "ml.p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/novafine-tune-repo |
| Nova 1.0 | Peaufinage | SFT avec mixage de données | 708977205387.dkr. ecr.us-east-1.amazonaws.com /:HP-SFT-DATAMIX nova-fine-tune-repo | hyperpod start-job \ -n kubeflow \ --recipe fine- -:HP-SFT-DATAMIX »} 'tuning/nova/forge/nova_1_0/nova_micro/SFT/nova_micro_1_0_p5_gpu_sft_text_with_datamix \ --override-parameters '{ "instance_type": "ml.p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/novafine-tune-repo |
| 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 \ -n kubeflow \ --recipe fine- -:SM-HP-SFT-v2-latest »} 'tuning/nova/nova_2_0/nova_lite/SFT/nova_lite_2_0_p5_gpu_sft \ --override-parameters '{ "instance_type": "ml.p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/novafine-tune-repo |
| Nova 2.0 | Peaufinage | Texte SFT+ 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 \ -n kubeflow \ --recipe fine- -:SM-HP-SFT-V2-Datamixing-Latest »} 'tuning/nova/forge/nova_2_0/nova_lite/SFT/nova_lite_2_0_p5_gpu_sft_text_with_datamix \ --override-parameters '{ "instance_type": "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 \ -n kubeflow \ --recipe fine- -:SM-HP-SFT-v2-latest »} 'tuning/nova/nova_2_0/nova_lite/SFT/nova_lite_2_0_p5_gpu_sft \ --override-parameters '{ "instance_type": "ml.p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/novafine-tune-repo |
| Nova 2.0 | Peaufinage | SFT MM + 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 \ -n kubeflow \ --recipe fine- -:SM-HP-SFT-V2-Datamixing-Latest »} 'tuning/nova/forge/nova_2_0/nova_lite/SFT/nova_lite_2_0_p5_gpu_sft_mm_with_datamix \ --override-parameters '{ "instance_type": "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_cli/sagemaker_hyperpod_recipes/recipes_collection/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 1.0 sft :
-
Si vous souhaitez utiliser une tâche logicielle normale, vous devriez pouvoir voir une recette dans ce dossier
cd/src/hyperpod_cli/sagemaker_hyperpod_recipes/recipes_collection/recipes/fine-tuning/nova_1_0/nova_lite/SFTet alors vous devriez pouvoir voir une recette dans ce dossier appelée nova_lite_1_0_p5x8_gpu_sft.yaml
-
Si vous souhaitez utiliser datamixing sft Job, vous pouvez accéder au dossier des recettes de sft Forge
cd/src/hyperpod_cli/sagemaker_hyperpod_recipes/recipes_collection/recipes/fine-tuning/nova/forge/nova_1_0/nova_lite/SFTet vous devriez pouvoir voir une recette dans ce dossier appelée : nova_lite_1_0_p5x8_gpu_sft_with_datamix.yaml
Modifiez les sections de la recette requise par la tâche, telles que name, data_s3_path, validation_s3_path, output_s3_path et max_steps. Puisque nous exécutons sft, la notion d'epochs ne s'applique pas ici.
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_cli/sagemaker_hyperpod_recipes/recipes_collection/recipes/fine-tuning/nova_2_0/nova_lite/SFTet alors vous devriez pouvoir voir une recette dans ce dossier appelée nova_lite_2_0_p5x8_gpu_sft.yaml
-
Si vous souhaitez utiliser datamixing sft Job, vous pouvez accéder au dossier des recettes de sft Forge
cd/src/hyperpod_cli/sagemaker_hyperpod_recipes/recipes_collection/recipes/fine-tuning/nova/forge/nova_2_0/nova_lite/SFTet vous devriez pouvoir voir une recette dans ce dossier appelée : nova_lite_2_0_p5x8_gpu_sft_with_datamix.yaml
Modifiez les sections de la recette requise par la tâche, telles que name, data_s3_path, validation_s3_path, output_s3_path et max_steps. 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_data : 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_data : Il s'agit de vos données d'entraînement référencées dans la clé data_s3_path en haut de votre fichier yaml. Le pourcentage indiqué ici détermine le pourcentage obtenu pour nova_data. Par exemple, dans les pourcentages de sélections ci-dessus, pendant la formation, nous utiliserons 25 % de customer_data et 75 % de nova_data, 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 !
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
Vous pouvez consulter vos journaux de trois manières :
a) Utilisation CloudWatch
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/ {UUID}
-
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 | (head -n1 ; grep my-cpt-run) output, nous avons capturé une colonne appelée NODE.
Le nœud « maître » 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
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/ {UUID} 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
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 :
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 ?
Conditions préalables
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 :
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
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
Commandes de lancement de tâches pour différentes recettes avec les images correspondantes.
| Modèle | Technique | Sous-catégorie | URI de l’image | Commande |
|---|---|---|---|---|
| Nova 1.0 | Évaluation | Éval | 708977205387.dkr. ecr.us-east-1.amazonaws.com /:SM-HP-Eval-Latest nova-evaluation-repo | hyperpod start-job \ -n kubeflow \ --recipe -Evaluation-Repo:SM-HP-Eval-Latest »} 'evaluation/nova/nova_1_0/nova_lite/nova_lite_2_0_p5_48xl_gpu_ft_eval \ --override-parameters '{ "instance_type": "ml.p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova |
| 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 \ --recipe -Evaluation-Repo:SM-HP-Eval-Latest »} 'evaluation/nova/nova_2_0/nova_lite/nova_lite_2_0_p5_48xl_gpu_ft_eval \ --override-parameters '{ "instance_type": "ml.p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova |
Leçons apprises et conseils
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 un jeu de données texte 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.