

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
<a name="nova-sft-2-smtj"></a>

## Prerequisiti
<a name="nova-model-training-jobs-prerequisites2"></a>

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](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html).
+ 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 ](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html) di esecuzione dell' SageMaker IA.
+ Ricette base di Amazon Nova; consulta [Recupero di ricette Amazon Nova](nova-model-recipes.md#nova-model-get-recipes).

## Che cos'è SFT?
<a name="nova-2-what-is-sft"></a>

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)](nova-fine-tune.md)

## Avvio di un lavoro di formazione
<a name="nova-2-starting-training"></a>

### Preparazione dei dati
<a name="nova-2-data-preparation"></a>

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](nova-data-prep-sft-2.md)

### Caricamento dei dati
<a name="nova-2-uploading-data"></a>

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](https://docs.aws.amazon.com/sagemaker/latest/dg/nova-model-general-prerequisites.html)

### Selezione degli iperparametri e aggiornamento della ricetta
<a name="nova-2-selecting-hyperparameters"></a>

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 ](https://github.com/aws/sagemaker-hyperpod-recipes/tree/main/recipes_collection/recipes/fine-tuning/nova) 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
<a name="nova-2-start-job"></a>

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