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.
Supervisé Fine-Tuning
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 continuez à entraîner le modèle sur celles-ci. Les poids du modèle sont ajustés pour minimiser une perte supervisée, généralement une entropie croisée entre ses prédictions et les jetons de réponse cibles.
Quand utiliser SFT ?
Le SFT est idéal lorsque vous avez une tâche bien définie avec des résultats souhaités clairs. Si vous pouvez dire explicitement « Étant donné X en entrée, la correct/desired sortie est Y » et que vous pouvez rassembler des exemples de tels X-Y mappages, alors 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, classement de documents internes ou de contrats dans de nombreuses catégories personnalisées. Grâce à la technologie SFT, le modèle peut apprendre ces catégories spécifiques bien mieux qu'il ne le ferait à lui seul.
-
Question-answering ou des tâches de transformation dont les réponses sont connues : par exemple, affiner un modèle pour répondre à des questions de la base de connaissances d'une entreprise, ou pour convertir des données entre des formats, chaque entrée ayant une réponse correcte.
-
Cohérence de la mise en forme 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 appropriés format/tone. Par exemple, une formation sur les paires de réponses rapides qui illustrent la voix ou le style d'une marque en particulier peut enseigner au modèle ce style dans ses résultats. Instruction-following le comportement est souvent initialement enseigné via SFT sur la base d'exemples sélectionnés de bon comportement d'assistant.
La 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 la concentre sur votre tâche. N'utilisez pas le SFT lorsque l'écart est lié aux connaissances plutôt qu'au comportement ; cela ne permettra pas au modèle d'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 pour apporter des connaissances externes lors de l'inférence. Lorsque vous pouvez mesurer la qualité mais que vous ne pouvez pas étiqueter une seule bonne réponse, un ajustement du renforcement avec des récompenses vérifiables LLM-as-judge peut être préférable à la SFT.
En fonction de la complexité des tâches et des performances du modèle Nova sans réglage, prévoyez des milliers à 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 l'efficacité des paramètres et quand utiliser le classement SFT complet ?
Les recettes de personnalisation Nova vous permettent d'utiliser 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'infrastructure principale (la fonction SFT de rang 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 à la fois les types de données texte et les types de données SFT 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 comprennent plusieurs catégories, notamment : la prise de décision autonome, l'achèvement des tâches, les ensembles de données orientés vers les objectifs (agents), les ensembles de données d'exécution de tâches précises avec ou sans raisonnement (raisonnement-suivi des instructions, suivi des instructions), les séquences illustrant la réflexion stratégique et la répartition des tâches étape par étape (planification), l'IA responsable (rai), le contexte long, la factualité, les mathématiques, le stem et bien d'autres. De même, les ensembles de données multimodaux comprennent des vidéos, des captures d'écran, des graphiques et bien d'autres encore.
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 suréquiper 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 mélanger les données Nova, il vous suffit d'ajouter un bloc data_mixing à votre fichier YAML de recettes, dans la section training_config. Les blocs de mixage de texte et de données multimodales ont un contenu différent, et les blocs de mixage 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 textuelles 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
Points de contrôle modèles
Points de contrôle Nova 1.0
-
PRE-TRAINED[
nova-<micro/lite/pro>/pretraining-text-partial] : Point de contrôle après la phase à taux d'apprentissage constant de la pré-formation de Nova où le modèle est entraîné sur des milliards de jetons de texte. [Résultat de l'étape 1] -
MID-TRAINED[
nova-<micro/lite/pro>/pretraining-text-full] : Text-only point de contrôle après toutes les étapes de la pré-formation et de la mi-formation de Nova avec des milliards de jetons de texte. À utiliser si vous ne voulez pas que le modèle affiche des données multimodales. [Résultat de l'étape 3] -
MID-TRAINED[
nova-<lite/pro>/pretraining-mm-full] : Point de contrôle après toutes les étapes de la pré-formation et de la mi-formation de Nova, y compris les données multimodales, avec des milliards de jetons. [Résultat de la phase 3 avec des données multimodales] -
FINAL [
nova-<micro/lite/pro>/prod] : Point de contrôle final entièrement aligné qui a franchi toutes les étapes avant et après l'entraînement. [Résultat de l'étape 4]
Points de contrôle Nova 2.0
-
PRE-TRAINED[
nova-lite-2/pretraining-text-RD] : Point de contrôle après un taux d'apprentissage constant et des étapes de réduction au cours desquelles le modèle est entraîné sur des milliards de jetons. [Résultat de l'étape 2] -
MID-TRAINED[
nova-lite-2/pretraining-text-CE] : Permet aux clients disposant de volumes intermédiaires de données non structurées de présenter leurs données à un rythme d'apprentissage plus modéré qu'avant la formation, en absorbant les connaissances spécifiques au domaine tout en évitant des oublis catastrophiques. [Résultat de l'étape 3] -
FINAL [
nova-lite-2/prod] : Point de contrôle final entièrement aligné qui a franchi 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 taux d'apprentissage constant
Étape 2 : PT Ckpt, réduction du taux d'apprentissage
Étape 3 : PT Ckpt, formation à l'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 |
|---|---|---|---|
| Large-scale données de domaine brutes non structurées (documents, journaux, articles, code, etc.) | Jetons 1T+ | Suite Pre-Training | Fin du taux d'apprentissage constant (CLR) |
| Large-scale données de domaine brutes non structurées | Plus de 100 milliards de jetons | Mid-Training | 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 | Mid-Training | Modèle de base Nova |
| Démonstrations structurées (paires d'entrées-sorties de haute qualité, instructions de tâches organisées, dialogues à plusieurs tours) | Plus de 1 000 exemples | Supervisé Fine-Tuning (SFT) | Modèle de base Nova |
Pre-Requisites 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 requises pour exécuter cette recette efficacement est le suivant :
Nova Lite 2.0 - 4 x 5,48 x large
Nova Lite 1.0 — 4 x 5,48 x large
Nova Micro 1.0 — 4 x 5,48 x large
Nova Pro 1.0 — 6 x 5,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 en utilisant
hyperpod get-clustersNotez que cette commande répertorie tous les clusters SMHP de votre compte
-
Vérifiez que vos données d'entraînement, et éventuellement 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 AWS CLI configuration est terminée. Si vous n'avez pas terminé la configuration, veuillez suivre le guide ci-dessous.
-
Vérification : Une fois la configuration terminée, confirmez que vous pouvez exécuter correctement 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 des ensembles de données dans 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 recettes YAML qui inclut :
Chemins des sources de données (ensembles de données d'entraînement et de validation)
Hyperparamètres clés (nombre d'étapes de formation, taux d'apprentissage, taille des lots)
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 clients et Nova)
-
Optimisation des paramètres SFT Hyper : les valeurs des paramètres des recettes SFT que nous recommandons constituent un excellent point de départ et constituent un choix judicieux. 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 selon la méthode d' Hyper-Parameter optimisation de votre choix. Une approche simple consiste à faire varier la valeur d'un paramètre (par défaut*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 à effectuer une itération si nécessaire. Les paramètres les plus pertinents pour LoRa sont le taux d'apprentissage, l'alpha (paramètre d'échelle), le nombre d'époques d'entraînement et les étapes d'échauffement ; pour le rang complet, il s'agit principalement du taux d'apprentissage, du nombre d'époques et d'étapes d'échauffement.
Séquençage des 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 de test sur ces tâches
Effectuez SFT sans mixer sur [FINAL] Nova checkpoint. Utilisez les hyperparamètres SFT par défaut et optimisez-les éventuellement en fonction de votre cas d'utilisation. Les métriques de validation du moniteur and/or évaluent les points de contrôle intermédiaires pour les ensembles de données plus volumineux.
-
Si vous ne disposez que de données SFT (train/dev/test) pour un ensemble de tâches et que vous vous intéressez aux performances des tests sur ces tâches et aux benchmarks généraux dans le domaine qui vous intéresse
Commencez par effectuer un mixage de données SFT avec Nova sur un point de contrôle préalable à l'entraînement (PRE-TRAINED ou un point de MID-TRAINED contrôle, 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 fonctionnalités générales.
Effectuez des cycles d'entraînement SFT plus courts avec une quantité variable de données Nova dans la combinaison (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 une catégorie après l'instruction si vous vous souciez de la capacité à suivre les instructions générales). Surveillez les indicateurs de validation et évaluez si le mixage améliore les performances par rapport aux benchmarks généraux. Sélectionnez la combinaison d'entraînement et le point de contrôle qui permettent d'obtenir la meilleure combinaison de performances sur votre tâche et de performances générales. Selon le cas d'utilisation, les performances des 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 1.0 : La préparation des données est décrite sur https://docs.aws.amazon.com/sagemaker/latest/dg/nova-fine-tune.html
Nova 2.0 : utilisez le format d'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/API_runtime_ReasoningContentBlock.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 comme <thinking> et </thinking> 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 aux paramètres de modération de contenu personnalisables (CCMS) 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 en fonction des besoins spécifiques de votre entreprise tout en maintenant les garanties essentielles d'une IA responsable. Pour déterminer si votre cas d'utilisation professionnel 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 repères d'évaluation et des contrôles d'exécution pour vous aider à aligner vos modèles sur les directives d'IA responsable de Nova.
Données de formation : la catégorie « RAI » en matière de 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 de technologies. Utilisez-les pour aligner vos modèles de manière responsable lors de la pré-formation continue.
É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 peut 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 pour 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 tester 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 qu'en termes d'efficacité globale
Pour plus d'informations, consultez le Guide d'utilisation responsable de l'IA d'Amazon Web Services, la Politique d'utilisation responsable de l'IA d'Amazon Web Services, la Politique d'utilisation AWS acceptable et les Conditions de AWS service des services que vous prévoyez d'utiliser.
Paramètres de modération de contenu personnalisables (CCMS)
Le CCMS vous permet d'ajuster les contrôles en fonction des besoins de votre entreprise tout en conservant des 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 de contenu sont les suivantes :
Sécurité — Couvre les activités dangereuses, les armes et les substances contrôlées
Contenu sensible : inclut des blasphèmes, de la nudité et des brimades
Équité — Résiste aux préjugés et aux considérations culturelles
Sécurité : implique la cybercriminalité, les logiciels malveillants et le contenu malveillant
Quelle que soit la configuration de votre 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 blesser les 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 partir d'un point de contrôle d'alignement pré-RAI (PRE-TRAINING-Early PRE-TRAINING-Mid, ou PRE-TRAINING-Final) plutôt que du point de contrôle. GA/FINAL Ces points de contrôle n'ont pas fait l'objet d'une formation en matière de sécurité et n'ont pas été orientés vers des comportements RAI spécifiques, ce qui vous permet de les personnaliser plus efficacement en fonction de vos exigences de modération de contenu.
Conseil : Lorsque vous utilisez le CCMS avec le mixage de données, pensez à ajuster le pourcentage de catégorie « rai » dans votre configuration nova_data afin de l'aligner sur vos exigences spécifiques en matière de modération de 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 Amazon Bedrock On-Demand
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é sur S3 dans le format correct
Chemin S3 de sortie pour les résultats de l'é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 : 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 au 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 de log 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 d'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. Utilisez-le "--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" }'
Bonnes pratiques
-
Privilégiez la qualité des données par rapport au volume : High-quality des données de formation diversifiées et représentatives ont plus de valeur que de grandes quantités de données de faible qualité.
-
Inclure la catégorie « raisonnement, instructions et suivi » : lorsque vous utilisez le mixage de données, incluez la catégorie « raisonnement, instructions et suivi » afin de maintenir de bonnes performances génériques pour toutes 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 SFT de rang complet) et ajustez-les uniquement si nécessaire en fonction des mesures de validation.
-
Mixage des données Balance Nova : mélangez au maximum 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 indicateurs 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 avec précision vos cas d'utilisation de production pour une évaluation des performances significative.
Préparer la configuration des tâches de formation
Paramètres Hyper
Ensemble complet d'hyperparamètres autres que le mixage des 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 d'échelle), le nombre d'époques d'entraînement et les étapes d'échauffement ; pour le rang complet, il s'agit principalement du taux d'apprentissage, du nombre d'époques et d'étapes d'échauffement. Les recettes sont préremplies avec les valeurs par défaut recommandées.
Configurer le 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étail de l'information |
|---|---|
| agents | Données de formation axées sur la prise de décision autonome, l'exécution de 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 de programmation et solutions couvrant plusieurs langues, 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 de technologies |
| suivi des instructions | Exemples d'exécution précise de tâches en fonction de différents niveaux d'instructions et de directives de l'utilisateur |
| radical | Contenu technique couvrant la science, 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 tâches étape par étape et l'allocation efficace des ressources |
| raisonnement | Scénarios de déduction logique, de pensée critique et de résolution analytique de problèmes avec des chaînes de raisonnement claires |
| chiffon | Exemples de combinaison efficace des connaissances externes récupérées avec les réponses générées pour fournir des informations contextuelles précises |
| traduction | Multi-language des paires de contenus 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étail de l'information |
|---|---|
| agents | Paires de formation combinant des entrées visuelles et textuelles qui montrent comment les systèmes d'IA doivent interpréter les informations environnementales multisensorielles, agir en conséquence et interagir avec elles |
| médecins | Document-centric des données combinant du texte, des images, des mises en page et une mise en forme pour entraîner les modèles à comprendre et à traiter divers types et structures de documents afin de faciliter la compréhension de concepts tels que la reconnaissance de contenu PDF |
| perception | Visual-linguistic associe des modèles pédagogiques pour décrire, interpréter et raisonner avec précision à propos d'images, de vidéos et d'autres entrées visuelles en langage naturel |
| chiffon | Exemples de recherche multimodale montrant comment combiner et référencer efficacement des connaissances externes visuelles et textuelles pour 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 la formulation 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 fonctionnalités généralistes |
| vidéos | Motion-based contenu visuel axé sur la compréhension temporelle et la compréhension visuo-narrative séquentielle |
Configuration Nova 2.0 avec mélange 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étail de l'information |
|---|---|
| agents | Données de formation axées sur la prise de décision autonome, l'exécution de 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 divers 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éracité |
| 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 comprenant des manuels, des problèmes, des solutions et des 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 de technologies |
| suivi des instructions | Exemples d'exécution précise de tâches en fonction de différents niveaux d'instructions et de directives de l'utilisateur |
| radical | Contenu technique couvrant la science, 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 tâches étape par étape et l'allocation efficace des ressources |
| discussion sur le raisonnement | Scénarios de dialogue analytiques axés sur une discussion logique 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 |
| suivi des instructions de raisonnement | Analyse des tâches complexes axée sur l'interprétation systématique et l'exécution méthodique |
| raisonnement mathématique | 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écisions stratégiques 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 |
| raisonnement-rai | Scénarios de prise de décisions éthiques axés sur l'évaluation systématique de la sécurité et de l'équité de l'IA |
| tige 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 des connaissances externes récupérées avec les réponses générées pour fournir des informations contextuelles précises |
| traduction | Multi-language des paires de contenus 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 des 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étail de l'information |
|---|---|
| graphiques | Représentations visuelles et descriptions de graphiques, de diagrammes circulaires, 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 le dialogue contextuel, la compréhension et les interactions basées sur l'image |
| code | Interfaces de programmation et environnements de développement axés sur l'interprétation visuelle du code, les captures d'écran de l'IDE et les diagrammes techniques |
| médecins | Document-centric des données combinant du texte, des images, des mises en page et une mise en forme pour entraîner les modèles à comprendre et à traiter divers types et structures de documents afin de faciliter la compréhension de concepts tels que la reconnaissance de contenu PDF |
| general | Contenu textuel et visuel 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 visant à relier les concepts linguistiques aux représentations visuelles du monde réel |
| chiffon | Exemples de recherche multimodale montrant comment combiner et référencer efficacement des connaissances externes visuelles et textuelles pour 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 fonctionnalités généralistes |
| traduction | Cross-language contenu visuel axé sur l'interprétation multilingue du texte dans les images et les éléments visuels culturels |
| vidéos | Motion-based contenu visuel axé sur la compréhension temporelle et la compréhension visuo-narrative séquentielle |
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 utilisation de SFT.
Informations sur le contenant :
| Modèle | Technique | Sous-catégorie | URI de l’image | Commande Hyperpod Launcher |
|---|---|---|---|---|
| Nouveau 1.0 | Fine-tuning | GAUCHE/GAUCHE | 708977205387.dkr.ecr.us-east-1.amazonaws. com/nova-fine-tune-repo : SM-HP-SFT-latest | hyperpod start-job \ -n kubeflow \ --recipe fine-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/nova-fine-tune-repo : "} 'SM-HP-SFT-latest |
| Nouveau 1.0 | Fine-tuning | SFT avec mixage de données | 708977205387.dkr.ecr.us-east-1.amazonaws. com/nova-fine-tune-repo : HP-SFT-DATAMIX | hyperpod start-job \ -n kubeflow \ --recipe fine-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/nova-fine-tune-repo : "} 'HP-SFT-DATAMIX |
| Nouveau 2.0 | Fine-tuning | Texte SFT (avec ou sans mélange de données) | 708977205387.dkr.ecr.us-east-1.amazonaws. com/nova-fine-tune-repo : SM-HP-SFT-V2-latest | hyperpod start-job \ -n kubeflow \ --recipe fine-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/nova-fine-tune-repo : "} 'SM-HP-SFT-V2-latest |
| Nouveau 2.0 | Fine-tuning | SFT MM (avec ou sans mélange de données) | 708977205387.dkr.ecr.us-east-1.amazonaws. com/nova-fine-tune-repo : SM-HP-SFT-V2-latest | hyperpod start-job \ -n kubeflow \ --recipe fine-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/nova-fine-tune-repo : "} 'SM-HP-SFT-V2-latest |
Une fois que vous êtes configuré, en commençant par la racine du dépôt sagemaker-hyperpod-cli, accédez au dossier de recettes nova sft par défaut
cd//src/hyperpod_clisagemaker_hyperpod_recipes/recipes_collection/recipes/fine- tuning/nova /forge/
Vous pouvez choisir ici si vous souhaitez exécuter des recettes Nova 1 ou Nova 2 en fonction du modèle de base choisi.
Pour Nova 1.0 sft :
-
Si vous souhaitez utiliser un sft job normal, vous devriez pouvoir voir une recette dans ce dossier
cd//src/hyperpod_cli/recipes/fine- sagemaker_hyperpod_recipes/recipes_collectiontuning/nova_1_0/nova_lite/SFT et vous devriez pouvoir voir une recette dans ce dossier appelé nova_lite_1_0_p5x8_gpu_sft.yaml
-
Si vous souhaitez utiliser le mixage de données (sft Job), vous pouvez accéder au dossier des recettes de sft Forge.
cd///recipes/fine-src/hyperpod_cli/sagemaker_hyperpod_recipes/recipes_collectiontuning/novaforge/nova_1_0/nova_lite/SFT et vous devriez pouvoir voir une recette dans ce dossier appelé : 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'époques ne s'applique pas ici.
Pour Nova 2.0 sft :
-
Si vous souhaitez utiliser un sft job normal, vous devriez pouvoir voir une recette dans ce dossier
cd///recipes/fine- src/hyperpod_cli sagemaker_hyperpod_recipes/recipes_collectiontuning/nova_2_0/nova_lite/SFT et vous devriez pouvoir voir une recette dans ce dossier appelé nova_lite_2_0_p5x8_gpu_sft.yaml
-
Si vous souhaitez utiliser le mixage de données (sft Job), vous pouvez accéder au dossier des recettes de sft Forge.
cd///recipes/fine-src/hyperpod_cli/sagemaker_hyperpod_recipes/recipes_collectiontuning/novaforge/nova_2_0/nova_lite/SFT et vous devriez pouvoir voir une recette dans ce dossier appelé : 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 jouons en mode soft, 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 deux catégories de données de premier niveau ici :
-
nova_data : Il s'agit du mélange de données proprement dit et il est subdivisé en encore plus de catégories. Il est impératif qu'ils totalisent 100 %
Vous trouverez ci-dessous une ventilation 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 fourni ici détermine le pourcentage qui en résultera pour nova_data. Par exemple, dans les sélections en pourcentage ci-dessus, pendant la formation, nous utiliserons 25 % de customer_data et 75 % de nova_data, dont 15 % seront des agents, 15 % des informations commerciales et financières, 15 % des données scientifiques, 15 % des informations codées et 15 % des informations factuelles et actualités
Conseil : exécutez pip install -e. une fois de plus et vous êtes prêt à soumettre votre travail !
Nous allons modifier 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_p5_gpu_sft_text_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-latest", "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 un nom de tâche comme suit :
⚡ MY Desktop ⚡ % hyperpod start-job \ -n kubeflow \ --recipe fine-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", "recipes.run.name": "nova-sft-datamixing", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-V2-latest", "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/" }'
La sortie serait la suivante :
Final command: python3 /local/home/my/Downloads/sagemaker-hyperpod-cli/src/hyperpod_cli/sagemaker_hyperpod_recipes/main.py recipes=fine-tuning/nova/forge/nova_2_0/nova_lite/SFT/nova_lite_2_0_p5_gpu_sft_text_with_datamix cluster_type=k8s cluster=k8s base_results_dir=/local/home/my/Downloads/sagemaker-hyperpod-cli/results cluster.pullPolicy="IfNotPresent" cluster.restartPolicy="OnFailure" cluster.namespace="kubeflow" instance_type="ml.p5.48xlarge" container="708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-V2-latest" 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/my-sft-run-wzdyn_launch.sh Running Helm script: /local/home/my/Downloads/sagemaker-hyperpod-cli/results/my-sft-run-wzdyn/my-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 l'état 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 s'exécute la tâche vous aidera à retrouver vos journaux encore plus rapidement dans l'interface utilisateur AWS
Comment surveiller les tâches
Vous pouvez consulter vos journaux de trois manières différentes :
a) Utilisation CloudWatch
Vos journaux sont disponibles sur votre compte Amazon Web Services qui contient le cluster Hyperpod ci-dessous. 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 s'appelait my-hyperpod-rig, le groupe de journaux aurait le préfixe :
-
Groupe de journaux ://aws/sagemakerClusters/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 de nœud tel que - hyperpod-i-00b3d8a1bf25714e4.
i-00b3d8a1bf25714e4 représente ici le nom de la machine adaptée aux hyperpodes sur laquelle s'exécute votre tâche d'entraînement. 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 « master » exécuté s'exécutait dans ce cas sur hyperpod-i-00b3d8a1bf25714e4 et nous utiliserons donc 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 tâche à portée de main et que vous ne souhaitez pas suivre toutes les étapes ci-dessus, vous pouvez simplement interroger tous les journaux sousaws/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 maître.
C) À l'aide du AWS CLI
Vous pouvez choisir de suivre vos journaux à l'aide du AWS CLI. Avant de le faire, veuillez vérifier votre AWS CLI version à l'aide deaws --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) Configurez ML Flow :
Vous pouvez suivre les métriques via MLflow.
Création d'une application MLflow
Utilisation de l'interface utilisateur de Studio : si vous créez une tâche de formation via l'interface utilisateur de Studio, une application MLflow par défaut est créée automatiquement et sélectionnée par défaut dans Options avancées.
À l'aide de la CLI : si vous utilisez la CLI, vous devez créer une application MLflow et la transmettre en tant qu'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'application MLflow
À l'aide de la CLI : créez une URL présignée pour accéder à l'interface utilisateur de l'application MLflow :
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 override au démarrage de la tâche. Vous trouverez un exemple de la façon de procéder dans README.
Comment évaluer votre modèle après SFT ?
Conditions préalables
Vérifiez l'URI S3 à partir du fichier manifest.json de votre tâche de formation (pour les modèles entraînés)
Ensemble de données d'évaluation chargé sur S3 dans le format correct
Chemin S3 de sortie pour les résultats de l'é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 au 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 de log 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
or : réponse correcte attendue de l'ensemble de données d'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
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 travail 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 |
|---|---|---|---|---|
| Nouveau 1.0 | Évaluation | Éval | 708977205387.dkr.ecr.us-east-1.amazonaws. com/nova-repo d'évaluation : SM-HP-Eval-latest | hyperpod start-job \ -n kubeflow \ --recipe evaluation/nova/nova_1_0/nova_lite/nova_lite_2_0_p5_48xl_gpu_ft_eval \ --override-parameters '{« instance_type » : « ml.p5.48xlarge », « conteneur » : « 708977205387.dkr.ecr.us-east-1.amazonaws. com/nova-repo d'évaluation : "} 'SM-HP-Eval-latest |
| Nouveau 2.0 | Évaluation | Éval | 708977205387.dkr.ecr.us-east-1.amazonaws. com/nova-repo d'évaluation : SM-HP-Eval-latest | hyperpod start-job -n kubeflow \ --recipe evaluation/nova/nova_2_0/nova_lite/nova_lite_2_0_p5_48xl_gpu_ft_eval \ --override-parameters '{« instance_type » : « ml.p5.48xlarge », « conteneur » : « 708977205387.dkr.ecr.us-east-1.amazonaws. com/nova-repo d'évaluation : "} 'SM-HP-Eval-latest |
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, en termes de complexité et de précision, vous pouvez envisager de le placer vers la fin de la formation pour aider le modèle à mieux converger.
Nous exploitons à la fois des ensembles de données textuels et multimodaux (MM) pour mélanger les données. Nos expériences avec un ensemble de données textuelles montrent que l'ajout de la catégorie exclusive « raisonnement et suivi des instructions » de Nova améliore considérablement les performances des benchmarks génériques. Nous vous recommandons d'inclure cette catégorie dans votre stratégie de mixage de données si vous vous intéressez à un benchmark générique régressé après avoir effectué 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 de vidéos dans le mix est bénéfique pour maintenir les performances de référence génériques.
De plus, le SFT avec mélange de données est assez sensible au taux d'apprentissage. Nos résultats suggèrent donc d'affiner 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.