

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

# Formazione iterativa
<a name="nova-iterative-training"></a>

## Panoramica di
<a name="nova-iterative-overview"></a>

L'allenamento iterativo è il processo di messa a punto ripetutamente di un modello attraverso più cicli di allenamento utilizzando diversi metodi di allenamento (formazione, valutazione, analisi degli errori, aggiustamentodata/objectives/hyperparameters), con ogni round a partire dal checkpoint precedente. Questo approccio consente di individuare in modo sistematico le modalità di errore del modello, incorporare esempi curati che affrontano punti deboli specifici e adattarsi ai cambiamenti dei requisiti nel tempo.

**Vantaggi rispetto alla formazione con un solo passaggio:**
+ **Miglioramento mirato**: affronta i modelli di fallimento specifici scoperti attraverso la valutazione
+ **Perfezionamento adattivo**: rispondi ai cambiamenti di distribuzione o ai requisiti di prodotto in evoluzione
+ **Mitigazione del rischio**: convalida i miglioramenti in modo incrementale anziché impegnarsi in un unico lungo periodo di formazione
+ **Efficienza dei dati**: concentra gli sforzi di raccolta dei dati sulle aree in cui il modello ha prestazioni inferiori
+ **Formazione curricolare**: cicli di formazione multipli con dati di qualità sempre più elevata

## Come funziona
<a name="nova-iterative-how-it-works"></a>

### Ubicazione e accesso al checkpoint
<a name="nova-iterative-checkpoint-location"></a>

Al termine di ogni processo di formazione, viene generato un file manifesto nella posizione di output specificata dal `output_path` parametro nella configurazione di addestramento.

**Per accedere al tuo checkpoint**
+ Vai a quello specificato `output_path` in S3
+ Scarica ed estrai il `output.tar.gz` file
+ Apri il `manifest.json` file all'interno
+ Individua il `checkpoint_s3_bucket` parametro, che contiene l'URI S3 del tuo modello addestrato

**Esempio di struttura manifest.json**

```
{  
  "checkpoint_s3_bucket": "s3://customer-escrow-<account-number>-smtj-<unique-identifier>/<job-name>/stepID",  
  ...  
}
```

### Informazioni sui bucket di deposito a garanzia
<a name="nova-iterative-escrow-buckets"></a>

Poiché i pesi di Amazon Nova sono proprietari, i checkpoint dei modelli addestrati vengono archiviati in **bucket escrow S3** all'interno di account AWS gestiti anziché essere copiati nel tuo account. Questi secchi di deposito a garanzia:
+ Conservate in modo sicuro i pesi dei vostri modelli personalizzati
+ Può essere referenziato da altri AWS servizi (inferenza, valutazione e successivi lavori di formazione)
+ Sono accessibili solo al tuo AWS account tramite le autorizzazioni IAM
+ Addebita i costi di archiviazione standard di S3 nel tuo account (vedi Considerazioni sui costi)

Puoi utilizzare l'escrow bucket path come percorso di allenamento successivo per continuare l'`model_name_or_path`allenamento iterativo.

### Utilizzo dei checkpoint per la formazione iterativa
<a name="nova-iterative-using-checkpoints"></a>

Configura il tuo prossimo lavoro di formazione in modo da utilizzare il checkpoint precedente come modello base:

```
run:  
  name: "my-iterative-training-job"  
  model_type: amazon.nova-2-lite-v1:0:256k  
  model_name_or_path: "s3://customer-escrow-<account-number>-smtj-<unique-identifier>/<previous-job-name>"  
  data_s3_path: s3://<bucket>/<data-file>.jsonl  
  replicas: 4
```

## Quando utilizzare la formazione iterativa
<a name="nova-iterative-when-to-use"></a>

### Casi d'uso ideali
<a name="nova-iterative-ideal-use-cases"></a>

Usa la formazione iterativa quando hai:
+ **Circuiti di feedback**: capacità di raccogliere casi di fallimento reali e affrontarli sistematicamente
+ **Ambienti dinamici**: documentazione in evoluzione o argomenti di supporto che richiedono aggiornamenti APIs periodici del modello
+ **Valutazione affidabile**: benchmark e quadri di valutazione solidi (vedi esempi di seguito) per misurare i miglioramenti con sicurezza
+ **Capacità operative di machine learning**: risorse per gestire più cicli di formazione e controllo delle versioni

**Esempi di solidi framework di valutazione**
+ Suite di benchmark automatizzate con soglie pass/fail 
+ Protocolli di valutazione umana con metriche di affidabilità tra valutatori
+ Scenari di test red-Team che coprono casi limite e input contraddittori
+ Infrastruttura di test A/B per misurare l'impatto sulla produzione

### Schemi comuni
<a name="nova-iterative-common-patterns"></a>

**SFT → RFT Pipeline**: Un modello iterativo usato di frequente prevede:
+ **SFT first**: insegna al modello come risolvere i problemi attraverso esempi dimostrativi
+ **RFT second**: ottimizza le prestazioni nell'ambito più ampio dei problemi utilizzando segnali di ricompensa

Questa sequenza è essenziale quando i modelli hanno inizialmente prestazioni scadenti: la RFT su modelli con precisione prossima allo zero non migliorerà le prestazioni senza prima stabilire le funzionalità di base per la risoluzione dei problemi tramite SFT.

### Quando non utilizzare la formazione iterativa
<a name="nova-iterative-when-not-to-use"></a>

Evita la formazione iterativa per:
+ **Attività stabili e ben definite**: dati stazionari con requisiti coerenti che consentono già prestazioni quasi massime
+ **Problemi di classificazione semplici**: attività limitate in cui è sufficiente una formazione in un solo passaggio
+ **Limiti in termini di risorse:** mancanza di funzionalità operative ML dedicate per gestire più cicli di formazione
+ **Guadagni marginali**: quando i costi generali non giustificano miglioramenti minimi delle prestazioni

## Esempio di flusso di lavoro: SFT → RFT
<a name="nova-iterative-example-workflow"></a>

Questo esempio dimostra un modello di addestramento iterativo comune per i modelli di ragionamento.

### Fase 1: formazione iniziale SFT
<a name="nova-iterative-step1"></a>

Configura e avvia il tuo processo di formazione SFT con il tuo set di dati:

```
run:  
  name: "initial-sft-training"  
  model_type: amazon.nova-2-lite-v1:0:256k  
  model_name_or_path: "nova-lite-2/prod"  
  data_s3_path: s3://<bucket>/sft-training-data.jsonl  
  validation_data_s3_path: s3://<bucket>/sft-validation-data.jsonl
```

**Fondamento logico**: SFT fornisce dimostrazioni aggiuntive che modellano gli output del modello nel formato e nella voce desiderati, stabilendo funzionalità di base.

**Al termine dell'allenamento**
+ Nota quanto `output_path` configurato nel tuo corso di formazione
+ Effettua il download `output.tar.gz` da quella posizione
+ Estrai e localizza `manifest.json`
+ Copia il `checkpoint_s3_bucket` valore

### Fase 2: formazione RFT sul checkpoint SFT
<a name="nova-iterative-step2"></a>

Crea un nuovo lavoro di formazione RFT utilizzando il checkpoint SFT:

```
run:  
  name: "rft-on-sft-checkpoint"  
  model_type: amazon.nova-2-lite-v1:0:256k  
  model_name_or_path: "s3://customer-escrow-<account-number>-smtj-<unique-identifier>/<initial-sft-training>"  
  data_s3_path: s3://<bucket>/rft-training-data.jsonl  
  reward_lambda_arn: <your-reward-function-arn>
```

Fondamento **logico**: la formazione RFT si basa sulle fondamenta SFT e consente al modello di sviluppare modelli di ragionamento più complessi ottimizzati dalla funzione di ricompensa.

### Fase 3: valutazione e iterazione
<a name="nova-iterative-step3"></a>

Esegui la valutazione sul checkpoint RFT per valutare le prestazioni:

```
run:  
  name: "evaluate-rft-checkpoint"  
  model_type: amazon.nova-2-lite-v1:0:256k  
  model_name_or_path: "s3://customer-escrow-<account-number>-smtj-<unique-identifier>/<rft-on-sft-checkpoint>"  
  data_s3_path: s3://<bucket>/evaluation-data.jsonl
```

Se le metriche target non sono soddisfatte, continua a iterare con dati o iperparametri modificati.

**Importante**  
La tecnica di allenamento (LoRa vs. Full Rank) deve rimanere coerente in tutte le iterazioni:  
**Se usi SFT con LoRa, devi usare RFT con **LoRa****
**Se usi SFT con Full **Rank, devi usare RFT con Full Rank****
Non è possibile passare da LoRa a Full Rank a metà pipeline

**Importante**  
Se viene utilizzata una chiave KMS per la crittografia nel bucket di output S3 di proprietà di Amazon, la stessa chiave KMS deve essere utilizzata per tutte le iterazioni future.

## Monitoraggio dei progressi tra le iterazioni
<a name="nova-iterative-monitoring"></a>

Puoi tenere traccia delle metriche MLflow [configurando MLflow](nova-model-monitor.md#nova-customization-mlflow-setup) i tuoi lavori.

### Crea un'app MLflow
<a name="nova-iterative-create-mlflow"></a>

**Utilizzo dell'interfaccia utente di Studio**: se crei un lavoro di formazione tramite l'interfaccia utente di Studio, viene creata automaticamente MLflow un'app predefinita e selezionata per impostazione predefinita in Opzioni avanzate.

**Utilizzo della CLI**: se utilizzi la CLI, devi creare un' MLflow app e passarla come input alla richiesta API del lavoro di formazione.

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

### Accedi all'app MLflow
<a name="nova-iterative-access-mlflow"></a>

**Utilizzo della CLI**: crea un URL predefinito per accedere all'interfaccia utente dell' MLflow app:

```
aws sagemaker create-presigned-mlflow-app-url \  
  --arn $mlflow_app_arn \  
  --region $region \  
  --output text
```

**Utilizzo dell'interfaccia utente di Studio**: l'interfaccia utente di Studio mostra le metriche chiave archiviate MLflow e fornisce un collegamento all'interfaccia utente dell' MLflow app.

### Metriche chiave da monitorare
<a name="nova-iterative-key-metrics"></a>

Monitora queste metriche tra le iterazioni per valutare i miglioramenti e monitorare l'avanzamento del lavoro:

**Per SFT**
+ Curve di perdita in allenamento
+ Numero di campioni consumati e tempo di elaborazione dei campioni
+ Precisione delle prestazioni su set di test esauriti
+ Conformità del formato (ad esempio, velocità di output JSON valida)
+ Perplessità sui dati di valutazione specifici del dominio

**Per RFT**
+ Punteggi medi di ricompensa rispetto agli allenamenti
+ Distribuzione dei premi (percentuale di risposte ad alto rendimento)
+ Tendenze di convalida e ricompensa (attenzione all'overfitting)
+ Percentuali di successo specifiche delle attività (ad esempio, velocità di esecuzione del codice, precisione dei problemi matematici)

**Ambito generale**
+ Effettua il benchmark dei delta prestazionali tra le iterazioni
+ Punteggi di valutazione umana su campioni rappresentativi
+ Metriche di produzione (se implementate in modo iterativo)

### Determinare quando fermarsi
<a name="nova-iterative-when-to-stop"></a>

Interrompi l'iterazione quando:
+ **Livelli prestazionali**: la formazione aggiuntiva non migliora più in modo significativo le metriche target
+ **Il cambio di tecnica aiuta**: se una tecnica si stabilizza, prova a cambiarla (ad esempio, SFT → RFT → SFT) per superare i limiti prestazionali
+ **Metriche target raggiunte**: i tuoi criteri di successo sono soddisfatti
+ **Rilevata regressione**: le nuove iterazioni riducono le prestazioni (vedi le procedure di rollback di seguito)

**Per le procedure di valutazione dettagliate, consulta la sezione Valutazione.**

## Best practice
<a name="nova-iterative-best-practices"></a>

### Inizia in piccolo e scala gradualmente
<a name="nova-iterative-start-small"></a>

Inizia con set di dati minimi e singole epoche di formazione per convalidare il tuo approccio prima di espanderlo. Questo aumenta la fiducia e aiuta a identificare tempestivamente i problemi.

### Stabilisci metriche di successo chiare
<a name="nova-iterative-success-metrics"></a>

Definisci indicatori quantitativi e qualitativi prima di iniziare:

**Esempi di metriche di successo per caso d'uso**
+ **Risposta alle domande**: precisione esatta della corrispondenza, punteggio F1, valutazioni delle preferenze umane
+ **Generazione di codice**: frequenza di superamento del test unitario, successo della compilazione, tempo di esecuzione
+ **Attività di ragionamento**: precisione dei passaggi, correttezza della risposta finale, punteggi di ricompensa
+ **Generazione di contenuti**: punteggi di coerenza, precisione dei fatti, aderenza allo stile

### Implementa la valutazione automat
<a name="nova-iterative-automated-eval"></a>

Imposta pipeline di valutazione automatizzate per monitorare le prestazioni dopo ogni round, consentendo iterazioni rapide e confronti obiettivi.

### Mantieni un controllo rigoroso delle versioni
<a name="nova-iterative-version-control"></a>

Documento per ogni iterazione:
+ Versioni e modifiche del set di dati
+ Posizioni dei checkpoint dei modelli
+ Modifiche agli iperparametri
+ Metriche e delta delle prestazioni
+ Osservazioni qualitative

Ciò aumenta la conoscenza istituzionale e consente il debug.

### Concentrati sulla qualità dei dati piuttosto che sulla quantità
<a name="nova-iterative-data-quality"></a>

Analizza i casi di fallimento dei round precedenti e aggiungi esempi mirati e di alta qualità anziché limitarti ad aumentare le dimensioni del set di dati.

### Pianifica il budget di iterazione
<a name="nova-iterative-iteration-budget"></a>

Pianifica **3-5 iterazioni** come intervallo tipico:
+ **1-2 iterazioni**: spesso sufficienti per semplici miglioramenti o rifiniture finali
+ **3-5 iterazioni**: adatto per attività complesse che richiedono più cicli di perfezionamento
+ **Più di 5 iterazioni**: può indicare una diminuzione dei rendimenti o la necessità di approcci diversi

Effettua la regolazione in base al budget di calcolo e ai tassi di miglioramento delle prestazioni.

### Implementa funzionalità di rollback
<a name="nova-iterative-rollback"></a>

Se un'iterazione introduce regressioni:
+ **Identifica la regressione: confronta le metriche** di valutazione tra i checkpoint
+ **Torna al checkpoint precedente**: utilizza il percorso S3 del checkpoint precedente come `model_name_or_path`
+ **Modifica l'approccio all'allenamento**: modifica i dati, gli iperparametri o la tecnica prima di riprovare
+ **Documenta l'errore**: registra ciò che ha causato la regressione per evitare che si ripeta

**Esempio di rollback**

```
run:  
  name: "rollback-to-iteration-2"  
  model_type: amazon.nova-2-lite-v1:0:256k  
  # Use iteration 2 checkpoint instead of failed iteration 3  
  model_name_or_path: "s3://customer-escrow-<account-number>-smtj-<unique-identifier>/<iteration-2-job-name>"
```

## Considerazioni sui costi
<a name="nova-iterative-cost"></a>

### Archiviazione ai checkpoint
<a name="nova-iterative-checkpoint-storage"></a>
+ **Ubicazione**: ai checkpoint archiviati in secchi di deposito a garanzia vengono addebitati i costi di archiviazione S3 standard addebitati sul tuo account AWS 
+ Conservazione: i **checkpoint vengono conservati** a tempo indeterminato, a meno che non vengano eliminati esplicitamente
+ **Gestione**: implementa politiche relative al ciclo di vita per archiviare o eliminare i vecchi checkpoint che non ti servono più

**Suggerimenti per l'ottimizzazione dei costi**
+ Elimina i checkpoint intermedi dopo aver convalidato le iterazioni più recenti
+ Archivia i checkpoint su S3 Glacier per conservarli a lungo termine a costi inferiori
+ Imposta politiche di conservazione in base alle tue esigenze di conformità e sperimentazione

## Limitazioni
<a name="nova-iterative-limitations"></a>

### Coerenza familiare modello
<a name="nova-iterative-model-consistency"></a>

Durante l'addestramento iterativo, è necessario utilizzare lo **stesso tipo di modello** in tutte le iterazioni.

**Addestramento iniziale**

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

**Le iterazioni successive devono utilizzare lo stesso model\$1type**

```
run:  
  model_type: amazon.nova-2-lite-v1:0:256k  # Must match original  
  model_name_or_path: "s3://customer-escrow-<account-number>-smtj-<unique-identifier>/<job-name>"
```

### Coerenza della tecnica di allenamento
<a name="nova-iterative-technique-consistency"></a>

La tecnica di allenamento deve rimanere coerente tra le iterazioni:
+ **I modelli addestrati da LoRa possono essere addestrati** solo iterativamente con LoRa
+ **Full-Rank-trained i modelli possono essere addestrati** solo iterativamente con Full-Rank

**Come funzionano gli adattatori LoRa nell'addestramento iterativo**
+ Ogni iterazione di addestramento LoRa produce nuovi pesi degli adattatori
+ I nuovi adattatori sostituiscono (non si impilano) con gli adattatori precedenti
+ Il modello base rimane bloccato; vengono aggiornati solo gli adattatori

### Matrice di compatibilità tecnica
<a name="nova-iterative-compatibility-matrix"></a>


| Addestramento iniziale | Può iterare con | 
| --- | --- | 
| SFT (Full-Rank) | SFT (Full-Rank), RFT (Full-Rank) | 
| SFT (LoRa) | SFT (LoRa), RFT (LoRa) | 
| RFT (Full-Rank) | RFT (Full-Rank) | 
| RFT (LoRa) | RFT (LoRa) | 

**Verifica della compatibilità prima di iniziare un lavoro**
+ Controlla la tua ricetta di allenamento precedente per identificare il tipo di modello e la tecnica di allenamento (LoRa vs. Full-Rank)
+ Assicurati che la tua nuova ricetta corrisponda sia al tipo di modello che alla tecnica
+ Controlla manifest.json per confermare che il percorso del checkpoint sia corretto

## Risoluzione dei problemi
<a name="nova-iterative-troubleshooting"></a>

### Errore: «Sono state rilevate tecniche di addestramento del modello incompatibili»
<a name="nova-iterative-error-incompatible"></a>

**Causa**: la tecnica di allenamento (LoRa vs. Full-Rank) non corrisponde alla tecnica del checkpoint.

**Risoluzione**: assicurati che la tua ricetta utilizzi la stessa tecnica di allenamento del modello originale:
+ Se il checkpoint è stato addestrato con LoRa, usa LoRa nella tua nuova ricetta
+ Se il checkpoint è stato addestrato con Full-Rank, usa Full-Rank nella tua nuova ricetta

### Errore: «Il modello base per il lavoro estratto da model\$1name\$1or\$1path non corrisponde a model\$1type»
<a name="nova-iterative-error-base-model"></a>

**Causa**: il tipo di modello specificato in `model_type` non corrisponde al modello effettivo nel checkpoint.

**Risoluzione**: verifica che:
+ Quello `model_type` contenuto nella tua ricetta corrisponde al tipo di modello originale
+ Il percorso del checkpoint S3 in `model_name_or_path` entrata è corretto
+ Stai utilizzando il percorso del file manifest.json corretto

**Esempio di configurazione corretta**

```
run:  
  model_type: amazon.nova-2-lite-v1:0:256k  # Must match checkpoint's model  
  model_name_or_path: "s3://customer-escrow-<account-number>-smtj-<unique-identifier>/<job-name>"
```

### Errore: «Configurazione del modello non trovata»
<a name="nova-iterative-error-config"></a>

**Causa**: il percorso di ingresso S3 non `model_name_or_path` è valido o è inaccessibile.

**Risoluzione:**
+ Verifica che il percorso S3 sia stato copiato correttamente dal file manifest.json
+ Assicurati che il tuo ruolo IAM disponga delle autorizzazioni per accedere al bucket escrow
+ Conferma che il precedente processo di formazione è stato completato con successo
+ Verifica la presenza di errori di battitura nel percorso

### Regressione delle prestazioni dopo l'iterazione
<a name="nova-iterative-error-regression"></a>

**Sintomi**: le metriche di valutazione diminuiscono dopo una nuova iterazione dell'allenamento.

**Risoluzione:**
+ **Rollback**: utilizza il checkpoint precedente come modello base
+ **Analizza**: esamina i registri di addestramento e la qualità dei dati per verificare se l'iterazione non è riuscita
+ **Modifica**: modifica gli iperparametri (riduci il tasso di apprendimento), migliora la qualità dei dati o riduci le epoche di formazione
+ **Riprova**: avvia una nuova iterazione con modifiche