View a markdown version of this page

Ottimizzazione supervisionata (SFT) su Nova 2.0 on Training Jobs SageMaker - Amazon Nova

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Ottimizzazione supervisionata (SFT) su Nova 2.0 on Training Jobs SageMaker

Prerequisiti

Prima di avviare un job di addestramento, verifica i seguenti requisiti.

  • Bucket Amazon S3 per archiviare i dati di input e output dei job di addestramento. È possibile utilizzare un bucket per entrambi o bucket distinti per ogni tipo di dati. Assicurati che i tuoi bucket siano nello stesso Regione AWS posto in cui crei tutte le altre risorse per la formazione. Per ulteriori informazioni, consulta Creating a general purpose bucket.

  • Un ruolo IAM con autorizzazioni per eseguire un job di addestramento. Assicurati di collegare una policy IAM con AmazonSageMakerFullAccess. Per ulteriori informazioni, vedi Come usare i ruoli di esecuzione dell' SageMaker IA.

  • Ricette base di Amazon Nova; consulta Recupero di ricette Amazon Nova.

Che cos'è SFT?

Il supervised fine-tuning (SFT) addestra un modello linguistico utilizzando coppie input-output etichettate. Il modello apprende da esempi dimostrativi costituiti da suggerimenti e risposte, perfezionando le sue capacità per allinearlo a compiti, istruzioni o comportamenti desiderati specifici.

Per determinare se SFT è adatto al tuo caso d'uso, consulta. Fine-tuning supervisionato (SFT)

Avvio di un lavoro di formazione

Preparazione dei dati

Per informazioni sul formato dei dati, sulle funzionalità supportate, sui vincoli e sulle best practice per la preparazione dei dati di formazione SFT, vedere. Preparazione dei dati per SFT su Amazon Nova 2

Caricamento dei dati

I set di dati devono essere caricati in un bucket a cui possono accedere i lavori di formazione. SageMaker Per informazioni sull'impostazione delle autorizzazioni corrette, vedi Prerequisiti. https://docs.aws.amazon.com/sagemaker/latest/dg/nova-model-general-prerequisites.html

Selezione degli iperparametri e aggiornamento della ricetta

La configurazione per Nova 2.0 è sostanzialmente la stessa di Nova 1.0. Una volta caricati i dati di input su S3, usa la ricetta di SageMaker HyperPod Recipes nella GitHub cartella Fine tuning. Per Nova 2.0 Lite, di seguito sono riportati alcuni degli iperparametri chiave che è possibile aggiornare in base al caso d'uso. Di seguito è riportato un esempio della ricetta Nova 2.0 Lite SFT PEFT. Per l'URI dell'immagine del contenitore, utilizzalo 708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-TJ-SFT-V2-latest per eseguire un lavoro di ottimizzazione SFT.

Esempio di input

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 ricetta contiene inoltre in gran parte gli stessi iperparametri di Nova 1.0. I principali iperparametri sono:

  • max_steps— Il numero di passaggi per cui si desidera eseguire il processo. In genere, per un'epoca (un'analisi dell'intero set di dati), il numero di passaggi = numero di campioni di dati/dimensione globale del batch. Maggiore è il numero di passaggi e minore è la dimensione del batch globale, maggiore sarà il tempo necessario per l'esecuzione del processo.

  • reasoning_enabled— Controlla la modalità di ragionamento per il tuo set di dati. Opzioni:

    • true: abilita la modalità di ragionamento (equivalente al ragionamento elevato)

    • false: Disattiva la modalità di ragionamento

    Nota: per SFT, non esiste un controllo granulare sui livelli di sforzo di ragionamento. L'impostazione reasoning_enabled: true consente la piena capacità di ragionamento.

  • peft.peft_scheme— L'impostazione su «lora» consente la regolazione PEFT-based fine. L'impostazione su null (senza virgolette) consente Full-Rank la regolazione fine.

Inizia il lavoro di formazione

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)
Nota

Il superamento di un set di dati di convalida non è supportato per la messa a punto supervisionata di Nova 2.0 Lite.

Per dare il via al lavoro:

  • Aggiorna la ricetta con i percorsi e gli iperparametri del set di dati

  • Esegui le celle specificate nel taccuino per inviare il lavoro di formazione

Il notebook gestisce l'invio dei lavori e fornisce il monitoraggio dello stato.