

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

# Pre-formazione continua (CPT) su Nova 2.0 su SageMaker HyperPod
<a name="nova-cpt-2"></a>

Amazon Nova Lite 2.0 è un modello di ragionamento basato su set di dati più ampi e diversificati rispetto a Nova Lite 1.0. Nonostante sia un modello più grande, Nova Lite 2.0 offre un'inferenza più veloce rispetto a Nova Lite 1.0 offrendo al contempo capacità di ragionamento avanzate, lunghezze di contesto più lunghe e prestazioni multilingue migliorate.

Con CPT su Nova 2.0 Lite, puoi estendere queste funzionalità avanzate con i tuoi dati specifici del dominio e sviluppare competenze approfondite in aree specializzate, mantenendo al contempo le superiori capacità di ragionamento e analisi del modello.

## Esempio di ricetta CPT
<a name="nova-cpt-2-sample-recipe"></a>

Di seguito è riportato un esempio di ricetta per il CPT. Puoi trovare questa ricetta e altre nell'[archivio delle ](https://github.com/aws/sagemaker-hyperpod-recipes/tree/main/recipes_collection/recipes/training/nova) SageMaker HyperPod ricette su. GitHub

```
# Note:
# This recipe can run on p5.48xlarge
# Run config
run:
  name: "my-cpt-run"                           # A descriptive name for your training job
  model_type: "amazon.nova-2-lite-v1:0:256k"   # Model variant specification, do not change
  model_name_or_path: "nova-lite-2/prod"        # Base model path, do not change
  replicas: 8                                   # Number of compute instances for training, allowed values are 4, 8, 16, 32
  data_s3_path: ""                              # Customer data paths
  validation_data_s3_path: ""                   # Customer validation data paths
  output_s3_path: ""                            # Output artifact path, SageMaker HyperPod job-specific configuration - not compatible with standard SageMaker Training Jobs
  mlflow_tracking_uri: ""                       # Required for MLFlow
  mlflow_experiment_name: "my-cpt-experiment"   # Optional for MLFlow. Note: leave this field non-empty
  mlflow_run_name: "my-cpt-run"                 # Optional for MLFlow. Note: leave this field non-empty

## Training specific configs
training_config:
  task_type: cpt
  max_length: 8192                              # Maximum context window size (tokens)
  global_batch_size: 256                        # Global batch size, allowed values are 32, 64, 128, 256.

  trainer:
    max_steps: 10                               # The number of training steps to run total
    val_check_interval: 10                      # The number of steps between running validation. Integer count or float percentage
    limit_val_batches: 2                        # Batches of the validation set to use each trigger

  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

  optim:
    optimizer: adam
    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
    adam_beta1: 0.9                             # Beta1 for Adam optimizer
    adam_beta2: 0.95                            # Beta2 for Adam optimizer
    sched:
      warmup_steps: 10                          # Learning rate warmup steps
      constant_steps: 0                         # Steps at constant learning rate
      min_lr: 1e-6                              # Minimum learning rate, must be lower than lr
```

## Avvio di un lavoro di pre-formazione continua su SageMaker HyperPod
<a name="nova-cpt-2-starting-job"></a>

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

Per informazioni sul formato dei dati, sulle funzionalità supportate, sui vincoli e sulle migliori pratiche per la preparazione dei dati di formazione CPT, vedere. [Preparazione dei dati per il CPT su Amazon Nova 2](nova-data-prep-cpt-2.md)

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

Carica i set di dati di addestramento e convalida in un bucket S3. Specifica queste posizioni nel blocco della ricetta: `run`

```
## Run config
run:
  ...
  data_s3_path: "s3://<bucket-name>/<training-directory>/<training-file>.jsonl"
  validation_data_s3_path: "s3://<bucket-name>/<validation-directory>/<validation-file>.jsonl"
```

**Nota**  
Sostituisci `<bucket-name>``<training-directory>`, `<validation-directory>``<training-file>`, e `<validation-file>` con i percorsi S3 effettivi.

### Definizione della configurazione
<a name="nova-cpt-2-defining-config"></a>

Definisci il modello base utilizzando i `model_name_or_path` campi `model_type` e nel `run` blocco:

```
## Run config
run:
  ...
  model_type: amazon.nova-2-lite-v1:0:256k
  model_name_or_path: nova-lite-2/prod
  ...
```

## Parametri di ottimizzazione CPT
<a name="nova-cpt-2-tuning-parameters"></a>

I parametri disponibili per la regolazione fine con CPT includono:

**Configurazione run**  

+ **nome**: un nome descrittivo per il tuo lavoro di formazione. Questo aiuta a identificare il lavoro nella console di AWS gestione.
+ **model\_type**: la variante del modello Amazon Nova da utilizzare. Le opzioni disponibili sono. `amazon.nova-2-lite-v1:0:256k`
+ **model\_name\_or\_path**: il percorso del modello base da utilizzare per l'allenamento. Le opzioni disponibili sono`nova-lite-2/prod`, o il percorso S3 per il checkpoint post-allenamento (). `s3://customer-escrow-bucket-unique_id/training_run_name`
+ **repliche**: il numero di istanze di calcolo da utilizzare per l'addestramento distribuito. I valori disponibili variano in base al modello scelto. Amazon Nova Lite 2.0 supporta 4, 8, 16 o 32 repliche.
+ **data\_s3\_path**: la posizione S3 del set di dati di training, che è un file JSONL. Questo file deve risiedere nello stesso account e nella stessa regione del cluster. AWS Tutte le posizioni S3 fornite devono trovarsi nello stesso account e nella stessa Regione.
+ **validation\_data\_s3\_path**: (Facoltativo) La posizione S3 del set di dati di convalida, che è un file JSONL. Questo file deve trovarsi nello stesso account e nella stessa Regione del cluster. Tutte le posizioni S3 fornite devono trovarsi nello stesso account e nella stessa Regione.
+ **output\_s3\_path: la posizione S3 in cui sono archiviati il manifest e i log. ** TensorBoard Tutte le sedi S3 fornite devono trovarsi nello stesso account e nella stessa regione. AWS AWS 
+ **mlflow\_tracking\_uri**: l'ARN dell'app MLFlow da utilizzare per la registrazione MLFlow
+ **mlflow\_experiment\_name**: nome dell'esperimento MLFlow
+ **mlflow\_run\_name**: nome dell'esecuzione MLFlow

**Configurazione di addestramento**  

+ **max\_length: la lunghezza ** massima della sequenza in token. Determina la dimensione della finestra di contesto per l’addestramento. Il valore massimo supportato è di 8.192 token per CPT.

  Sequenze più lunghe migliorano l’efficienza di addestramento a scapito di maggiori requisiti di memoria. Ti consigliamo di abbinare il parametro max\_length alla tua distribuzione dei dati.
+ **global\_batch\_size**: il numero totale di campioni di formazione elaborati insieme in un unico passaggio avanti o indietro su tutti i dispositivi e i lavoratori.

  Questo valore moltiplica la dimensione del batch per dispositivo e il numero di dispositivi. Influisce sulla stabilità dell’addestramento e sul throughput. È consigliabile iniziare con un batch di dimensioni idonee per la memoria e quindi aumentare verticalmente. Per i dati specifici del dominio, batch di dimensioni maggiori potrebbero rendere i gradienti eccessivamente uniformi.

**Impostazioni di addestramento**  

+ **max\_steps**: il numero di fasi di allenamento da eseguire. Ogni fase addestrerà il modello con un `global_batch_size` numero di elementi

**Impostazioni del modello**  

+ **hidden\_dropout**: La probabilità di eliminare gli output di stato nascosti. Aumenta questo valore di circa 0,0-0,2 per ridurre l’overfitting su set di dati più piccoli. I valori validi sono compresi tra 0 e 1, entrambi inclusi.
+ ****attention\_dropout: La probabilità di far cadere i pesi di attenzione. Questo parametro può agevolare la generalizzazione. I valori validi sono compresi tra 0 e 1, entrambi inclusi.

**Configurazione optimizer**  

+ **lr**: Il tasso di apprendimento, che controlla la dimensione del passo durante l'ottimizzazione. Sono consigliabili valori compresi tra 1e-6 e 1e-4 per ottenere buone prestazioni. I valori validi sono compresi tra 0 e 1, entrambi inclusi.
+ **nome**: L'algoritmo dell'ottimizzatore. Attualmente è supportato solo `distributed_fused_adam`.
+ **weight\_decay**: La forza di regolarizzazione L2. Valori maggiori (compresi tra 0,01 e 0,1) aumentano la regolarizzazione.
+ **warmup\_steps**: il numero di passaggi per aumentare gradualmente il tasso di apprendimento. Migliora la stabilità dell’addestramento. I valori validi sono compresi tra 1 e 20, entrambi inclusi.
+ **min\_lr**: il tasso di apprendimento minimo alla fine del decadimento. I valori validi sono compresi tra 0 e 1, entrambi inclusi, ma devono essere inferiori al tasso di apprendimento.