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.
Mise au point supervisée (SFT) sur Nova 2.0 sur Training Jobs SageMaker
Conditions préalables
Avant de commencer une tâche d’entraînement, notez les éléments suivants.
-
Compartiments Amazon S3 pour stocker vos données d’entrée et de sortie des tâches d’entraînement. Vous pouvez utiliser un compartiment pour les deux ou des compartiments distincts pour chaque type de données. Assurez-vous que vos compartiments se trouvent dans les mêmes emplacements que Région AWS ceux où vous créez toutes les autres ressources de formation. Pour plus d’informations, consultez Création d’un compartiment à usage général.
-
Un rôle IAM autorisé à exécuter une tâche d’entraînement. Assurez-vous de joindre une politique IAM à
AmazonSageMakerFullAccess. Pour plus d'informations, consultez Comment utiliser les rôles d'exécution de l' SageMaker IA. -
Recettes Amazon Nova de base, consultez Obtention de formules Amazon Nova.
Qu'est-ce que SFT ?
Le réglage fin supervisé (SFT) entraîne un modèle de langage à l'aide de paires d'entrées-sorties étiquetées. Le modèle apprend à partir d'exemples de démonstration composés d'invites et de réponses, en affinant ses capacités pour s'aligner sur des tâches, des instructions ou des comportements souhaités spécifiques.
Pour déterminer si le SFT convient à votre cas d'utilisation, consultezPeaufinage supervisé (SFT).
Commencer un travail de formation
Préparation de vos données
Pour plus d'informations sur le format des données, les fonctionnalités prises en charge, les contraintes et les meilleures pratiques pour la préparation des données d'entraînement SFT, consultezPréparation des données pour SFT sur Amazon Nova 2.
Téléchargement de vos données
Les ensembles de données doivent être chargés dans un compartiment accessible via les jobs de SageMaker formation. Pour plus d'informations sur la définition des autorisations appropriées, consultez la section Conditions préalables.
Sélection des hyperparamètres et mise à jour de la recette
La configuration de Nova 2.0 est en grande partie la même que celle de Nova 1.0. Une fois les données d'entrée téléchargées sur S3, utilisez la recette de 708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-TJ-SFT-V2-latest pour exécuter une tâche de réglage SFT.
Entrée d'échantillon
run: name: {peft_recipe_job_name} model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: {peft_model_name_or_path} data_s3_path: {train_dataset_s3_path} # 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: "" # 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 training_config: max_steps: 10 # Maximum training steps. Minimal is 4. save_steps: 10 # How many training steps the checkpoint will be saved. Should be less than or equal to max_steps save_top_k: 1 # Keep top K best checkpoints. Note supported only for SageMaker HyperPod jobs. Minimal is 1. max_length: 32768 # Sequence length (options: 8192, 16384, 32768 [default], 65536) global_batch_size: 32 # Global batch size (options: 32, 64, 128) reasoning_enabled: true # If data has reasoningContent, set to true; otherwise False lr_scheduler: warmup_steps: 15 # Learning rate warmup steps. Recommend 15% of max_steps min_lr: 1e-6 # Minimum learning rate, must be between 0.0 and 1.0 optim_config: # Optimizer settings lr: 1e-5 # Learning rate, must be between 0.0 and 1.0 weight_decay: 0.0 # L2 regularization strength, must be between 0.0 and 1.0 adam_beta1: 0.9 # Exponential decay rate for first-moment estimates, 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
La recette contient également en grande partie les mêmes hyperparamètres que Nova 1.0. Les hyperparamètres notables sont les suivants :
-
max_steps— Le nombre d'étapes pour lesquelles vous souhaitez exécuter la tâche. Généralement, pour une époque (une analyse de l'ensemble de votre ensemble de données), le nombre d'étapes = nombre d'échantillons de données/taille globale du lot. Plus le nombre d'étapes est élevé et plus la taille globale de votre lot est petite, plus l'exécution de la tâche sera longue. -
reasoning_enabled— Contrôle le mode de raisonnement de votre ensemble de données. Options :-
true: Active le mode raisonnement (équivalent à un raisonnement élevé) -
false: désactive le mode raisonnement
Remarque : Pour SFT, il n'existe pas de contrôle granulaire sur les niveaux d'effort de raisonnement.
reasoning_enabled: trueLe réglage permet une capacité de raisonnement complète. -
-
peft.peft_scheme— Le régler sur « lora » permet d' PEFT-based affiner le réglage. Le définir sur null (sans guillemets) permet d' Full-Rank affiner le réglage.
Commencez le travail de formation
from sagemaker.pytorch import PyTorch # define OutputDataConfig path if default_prefix: output_path = f"s3://{bucket_name}/{default_prefix}/{sm_training_job_name}" else: output_path = f"s3://{bucket_name}/{sm_training_job_name}" output_kms_key = "<KMS key arn to encrypt trained model in Amazon-owned S3 bucket>" # optional, leave blank for Amazon managed encryption recipe_overrides = { "run": { "replicas": instance_count, # Required "output_s3_path": output_path }, } estimator = PyTorch( output_path=output_path, base_job_name=sm_training_job_name, role=role, disable_profiler=True, debugger_hook_config=False, instance_count=instance_count, instance_type=instance_type, training_recipe=training_recipe, recipe_overrides=recipe_overrides, max_run=432000, sagemaker_session=sagemaker_session, image_uri=image_uri, output_kms_key=output_kms_key, tags=[ {'Key': 'model_name_or_path', 'Value': model_name_or_path}, ] ) print(f"\nsm_training_job_name:\n{sm_training_job_name}\n") print(f"output_path:\n{output_path}")
from sagemaker.inputs import TrainingInput train_input = TrainingInput( s3_data=train_dataset_s3_path, distribution="FullyReplicated", s3_data_type="Converse", ) estimator.fit(inputs={"validation": val_input}, wait=False)
Note
La transmission d'un jeu de données de validation n'est pas prise en charge pour le réglage précis supervisé de Nova 2.0 Lite.
Pour démarrer le travail :
-
Mettez à jour la recette avec les chemins et les hyperparamètres de votre ensemble de données
-
Exécutez les cellules spécifiées dans le bloc-notes pour soumettre le travail de formation
Le bloc-notes gère la soumission des tâches et permet de suivre leur statut.