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à.
Ottimizza Nova 1.0
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 gli stessi in Regione AWS 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, consulta Come utilizzare i ruoli di SageMaker esecuzione. -
Ricette base di Amazon Nova; consulta Recupero di ricette Amazon Nova.
Preparazione dei dati
La preparazione di dati di alta qualità e formattati correttamente è una fase fondamentale nel processo di fine-tuning di modelli linguistici di grandi dimensioni. Che si utilizzi il fine-tuning supervisionato (SFT, Supervised Fine-Tuning) o l’ottimizzazione diretta delle preferenze (DPO, Direct Preference Optimization), con approcci a dimensionalità completa e LoRA (Low-Rank Adaptation), i dati devono rispettare requisiti di formato specifici per garantire un addestramento dei modelli efficace. Questa sezione descrive i formati di dati, i metodi di convalida e le best practice necessari per preparare i set di dati in modo efficace per il fine-tuning dei modelli Amazon Nova.
SFT
Requisiti del formato dei dati SFT - Sia per SFT completo che per LoRa SFT, i dati devono seguire il formato mostrato di seguito. Per esempi e vincoli di questo formato, consulta Preparing data for fine-tuning Understanding models.
Convalida dei dati SFT - Per convalidare il formato del set di dati prima dell’invio, è consigliabile utilizzare il seguente script di convalida dal repository di esempi di Amazon Bedrockjsonl rispettino le specifiche di formato richieste e a identificare eventuali problemi potenziali prima di inviare il processo di fine-tuning.
DPO
Requisiti relativi al formato dei dati del DPO - Sia per il DPO con rango completo che per il DPO con LoRa, i dati devono seguire il formato mostrato di seguito. Inoltre, il set di dati deve essere in un formato simile a quello di SFT, tranne per l’ultima fase, che deve avere coppie di preferenze.
Altri vincoli sui set di dati DPO - Altri vincoli sui set di dati sono gli stessi per SFT. Per ulteriori informazioni, consulta Dataset constraints. Sono previsti un unico file JSONL per l’addestramento e un unico file JSONL per la convalida. Il set di convalida è facoltativo.
Consigli sui set di dati DPO - Un minimo di 1.000 coppie di preferenze per un addestramento efficace. Dati sulle preferenze di alta qualità generano risultati più efficienti.
Esempio di formato di dati DPO
// N-1 turns same as SFT format { "role": "assistant", "candidates": [ { "content": [ { "text": "..." } // content list can contain multiple 'text' objects ], "preferenceLabel": "preferred" }, { "content": [ { "text": "..." } // content list can contain multiple 'text' objects ], "preferenceLabel": "non-preferred" } ] }
Esempio di formato di dati DPO (più fasi)
{ "system": [ { "text": "..." } ], "messages":[ { "role": "user", "content": [ { "text": "..." } ] }, { "role": "assistant", "content": [ { "text": "..." } ] }, { "role": "user", "content": [ { "text": "..." } ] }, { "role": "assistant", "candidates": [ { "content": [ { "text": "..." } ], "preferenceLabel": "preferred" }, { "content": [ { "text": "..." } ], "preferenceLabel": "non-preferred" } ] } ], }
Esempio di formato di dati DPO (con immagini)
{ "system": [ { "text": "..." } ], "messages":[ { "role": "user", "content": [ { "text": "..." }, { "text": "..." }, { "image": { "format": "jpeg", "source": { "s3Location": { "uri": "s3://your-bucket/your-path/your-image.jpg", "bucketOwner": "your-aws-account-id" } } } } // "content" can have multiple "text" and "image" objects. // max image count is 10 ] }, { "role": "assistant", "content": [ { "text": "..." } ] }, { "role": "user", "content": [ { "text": "..." }, { "text": "..." }, { "image": { "format": "jpeg", "source": { "s3Location": { "uri": "s3://your-bucket/your-path/your-image.jpg", "bucketOwner": "your-aws-account-id" } } } } // "content" can have multiple "text" and "image" objects. // max image count is 10 ] }, { "role": "assistant", "candidates": [ { "content": [ { "text": "..." } ], "preferenceLabel": "preferred" }, { "content": [ { "text": "..." } ], "preferenceLabel": "non-preferred" } ] } ], }
Per impostazione predefinita, i job di addestramento hanno un limite temporale di 1 giorno, sebbene le stime nelle tabelle seguenti presuppongano una durata dell’addestramento di 5 giorni a scopo illustrativo. Come best practice, è consigliabile aumentare il limite temporale per l’addestramento a un massimo di 28 giorni per far fronte a carichi di lavoro di addestramento più lunghi. Per ottenere un aumento di questo limite, consulta Richiesta di aumento delle quote.
Limiti dei set di dati SFT
| Lunghezza del contesto | Modello | Metodo | Set di dati | Description |
|---|---|---|---|---|
|
Job con lunghezza del contesto pari a 32.000 |
Amazon Nova Micro | A dimensionalità completa e LoRA | Solo testo |
In caso di utilizzo di un set di dati in cui tutti i record hanno una lunghezza di contesto pari a 32.000 e, ad esempio, durano 5 epoch, è possibile avere solo fino a 100.000 record. |
|
Amazon Nova Lite |
A dimensionalità completa | Solo testo |
In caso di utilizzo di un set di dati in cui tutti i record hanno una lunghezza di contesto pari a 32.000 e, ad esempio, durano 5 epoch, è possibile avere fino a 100.000 record. |
|
| Immagine e video |
In caso di utilizzo di un set di dati in cui tutti i record hanno una lunghezza di contesto pari a 32.000 e, ad esempio, durano 5 epoch, è possibile avere fino a 50.000 record. |
|||
| LoRA | Solo testo |
In caso di utilizzo di un set di dati in cui tutti i record hanno una lunghezza di contesto pari a 32.000 e, ad esempio, durano 5 epoch, è possibile avere fino a 100.000 record. |
||
| Immagine e video | In caso di utilizzo di un set di dati in cui tutti i record hanno una lunghezza di contesto pari a 32.000 e, ad esempio, durano 5 epoch, è possibile avere fino a 90.000 record. | |||
|
Amazon Nova Pro |
A dimensionalità completa | Solo testo |
In caso di utilizzo di un set di dati in cui tutti i record hanno una lunghezza di contesto pari a 32.000 e, ad esempio, durano 5 epoch, è possibile avere fino a 40.000 record. |
|
| Immagine e video |
In caso di utilizzo di un set di dati in cui tutti i record hanno una lunghezza di contesto pari a 32.000 e, ad esempio, durano 5 epoch, è possibile avere fino a 30.000 record. |
|||
| LoRA | Solo testo |
In caso di utilizzo di un set di dati in cui tutti i record hanno una lunghezza di contesto pari a 32.000 e, ad esempio, durano 5 epoch, è possibile avere fino a 40.000 record. |
||
| Immagine e video |
In caso di utilizzo di un set di dati in cui tutti i record hanno una lunghezza di contesto pari a 32.000 e, ad esempio, durano 5 epoch, è possibile avere fino a 35.000 record. |
|||
|
Job con lunghezza del contesto pari a 64.000 |
Amazon Nova Micro | A dimensionalità completa e LoRA | Solo testo |
In caso di utilizzo di un set di dati in cui tutti i record hanno una lunghezza di contesto pari a 64.000 e, ad esempio, durano 5 epoch, è possibile avere solo fino a 50.000 record. |
|
Amazon Nova Lite |
A dimensionalità completa | Solo testo |
In caso di utilizzo di un set di dati in cui tutti i record hanno una lunghezza di contesto pari a 64.000 e, ad esempio, durano 5 epoch, è possibile avere fino a 50.000 record. |
|
|
Immagine e video |
In caso di utilizzo di un set di dati in cui tutti i record hanno una lunghezza di contesto pari a 64.000 e, ad esempio, durano 5 epoch, è possibile avere fino a 30.000 record. |
|||
| LoRA | - |
LoRA non è supportato a 64.000 per Nova Lite. |
||
| Amazon Nova Pro | A dimensionalità completa e LoRA | Solo testo |
In caso di utilizzo di un set di dati in cui tutti i record hanno una lunghezza di contesto pari a 64.000 e, ad esempio, durano 5 epoch, è possibile avere fino a 17.000 record. |
|
|
Immagine e video |
In caso di utilizzo di un set di dati in cui tutti i record hanno una lunghezza di contesto pari a 64.000 e, ad esempio, durano 5 epoch, è possibile avere fino a 15.000 record. |
Limiti dei set di dati DPO
| Lunghezza del contesto | Modello | Metodo | Set di dati | Description |
|---|---|---|---|---|
|
Job con lunghezza del contesto pari a 16.000 |
Amazon Nova Micro | A dimensionalità completa | Solo testo |
In caso di utilizzo di un set di dati in cui tutti i record hanno una lunghezza di contesto pari a 16.000 e, ad esempio, durano 5 epoch, è possibile avere solo fino a 120.000 record. |
| LoRA | Solo testo |
In caso di utilizzo di un set di dati in cui tutti i record hanno una lunghezza di contesto pari a 16.000 e, ad esempio, durano 5 epoch, è possibile avere solo fino a 125.000 record. |
||
|
Amazon Nova Lite |
A dimensionalità completa | Solo testo |
In caso di utilizzo di un set di dati in cui tutti i record hanno una lunghezza di contesto pari a 16.000 e, ad esempio, durano 5 epoch, è possibile avere fino a 130.000 record. |
|
|
Immagine |
In caso di utilizzo di un set di dati in cui tutti i record hanno una lunghezza di contesto pari a 16.000 e, ad esempio, durano 5 epoch, è possibile completare 20.000 campioni in 2 giorni |
|||
| LoRA | Solo testo |
In caso di utilizzo di un set di dati in cui tutti i record hanno una lunghezza di contesto pari a 16.000 e, ad esempio, durano 5 epoch, è possibile avere fino a 140.000 record. |
||
|
Immagine |
In caso di utilizzo di un set di dati in cui tutti i record hanno una lunghezza di contesto pari a 16.000 e, ad esempio, durano 5 epoch, è possibile completare 20.000 campioni in 2 giorni. |
|||
|
Amazon Nova Pro |
A dimensionalità completa | Solo testo |
In caso di utilizzo di un set di dati in cui tutti i record hanno una lunghezza di contesto pari a 16.000 e, ad esempio, durano 5 epoch, è possibile avere fino a 45.000 record. |
|
|
Immagine |
In caso di utilizzo di un set di dati in cui tutti i record hanno una lunghezza di contesto pari a 16.000 e, ad esempio, durano 5 epoch, è possibile completare 20.000 campioni in 4 giorni |
|||
| LoRA | Solo testo |
In caso di utilizzo di un set di dati in cui tutti i record hanno una lunghezza di contesto pari a 16.000 e, ad esempio, durano 5 epoch, è possibile avere fino a 55.000 record. |
||
|
Immagine |
In caso di utilizzo di un set di dati in cui tutti i record hanno una lunghezza di contesto pari a 16.000 e, ad esempio, durano 5 epoch, è possibile completare 20.000 campioni in 4 giorni |
|||
|
Job con lunghezza del contesto pari a 32.000 |
Amazon Nova Micro | A dimensionalità completa | Solo testo |
In caso di utilizzo di un set di dati in cui tutti i record hanno una lunghezza di contesto pari a 32.000 e, ad esempio, durano 5 epoch, è possibile avere solo fino a 45.000 record. |
| LoRA | Solo testo |
In caso di utilizzo di un set di dati in cui tutti i record hanno una lunghezza di contesto pari a 32.000 e, ad esempio, durano 5 epoch, è possibile avere solo fino a 50.000 record. |
||
|
Amazon Nova Lite |
A dimensionalità completa | Solo testo |
In caso di utilizzo di un set di dati in cui tutti i record hanno una lunghezza di contesto pari a 32.000 e, ad esempio, durano 5 epoch, è possibile avere fino a 55.000 record. |
|
| Immagine |
In caso di utilizzo di un set di dati in cui tutti i record hanno una lunghezza di contesto pari a 32.000 e, ad esempio, durano 5 epoch, è possibile avere fino a 35.000 record. |
|||
| LoRA | Solo testo |
In caso di utilizzo di un set di dati in cui tutti i record hanno una lunghezza di contesto pari a 32.000 e, ad esempio, durano 5 epoch, è possibile avere fino a 60.000 record. |
||
| Immagine |
In caso di utilizzo di un set di dati in cui tutti i record hanno una lunghezza di contesto pari a 32.000 e, ad esempio, durano 5 epoch, è possibile avere fino a 35.000 record. |
|||
| Amazon Nova Pro | A dimensionalità completa | Solo testo |
In caso di utilizzo di un set di dati in cui tutti i record hanno una lunghezza di contesto pari a 32.000 e, ad esempio, durano 5 epoch, è possibile avere fino a 20.000 record. |
|
| Immagine |
In caso di utilizzo di un set di dati in cui tutti i record hanno una lunghezza di contesto pari a 64.000 e, ad esempio, durano 5 epoch, è possibile avere fino a 16.000 record. |
|||
| LoRA | Solo testo |
In caso di utilizzo di un set di dati in cui tutti i record hanno una lunghezza di contesto pari a 32.000 e, ad esempio, durano 5 epoch, è possibile avere fino a 22.000 record. |
||
| Immagine |
In caso di utilizzo di un set di dati in cui tutti i record hanno una lunghezza di contesto pari a 64.000 e, ad esempio, durano 5 epoch, è possibile avere fino a 18.000 record. |
Riducendo il numero di epoch o la lunghezza del contesto dei record, è possibile fornire più record.
Configurazioni SFT a dimensionalità completa e PEFT LoRA
Questa sezione fornisce indicazioni sulle configurazioni delle ricette per gli approcci di fine-tuning supervisionato (SFT, Supervised Fine-Tuning) a dimensionalità completa e fine-tuning efficiente in termini di parametri (PEFT, Parameter-Efficient Fine-Tuning) LoRA (Low-Rank Adaptation). Questi file di ricette fungono da blueprint per i processi di personalizzazione dei modelli e consentono di specificare parametri di addestramento, iperparametri e altre impostazioni critiche che determinano il modo in cui il modello apprende dai dati. Per regolare gli iperparametri, segui le linee guida in Selecting hyperparameters.
Configurazioni di fine-tuning (SFT a dimensionalità completa e PEFT LoRA)
L’unica differenza tra SFT a dimensionalità completa e PEFT LoRA in termini di ricetta è la configurazione PEFT LoRA, che è impostata su “null” per la dimensionalità completa e sui valori appropriati in caso di utilizzo di fine-tuning basato su PEFT LoRA. Ricette di esempio sono disponibili nell'archivio delle ricette. SageMaker HyperPod
Informazioni sulla configurazione “run”.
| Chiave | Definizione | Micro | Lite | Pro | |
|---|---|---|---|---|---|
| Configurazione run | model_type |
Specifica la variante del modello Nova da utilizzare. Non modificare questo campo. |
«Amazon. nova-micro-v1:01:28k» |
«amazzone». nova-lite-v1:30,00 k» |
«amazzone. nova-pro-v1:30,00 k» |
| model_name_or_path |
Il percorso del modello di base. |
“nova-micro/prod” |
“nova-lite/prod” |
“nova-pro/prod” |
|
| replicas |
Il numero di istanze di calcolo da utilizzare per l’addestramento distribuito. |
2, 4 o 8 |
4, 8 o 16 |
6, 12 o 24 |
Informazioni sulla configurazione “training_config”.
| Chiave root | Chiavi secondarie | Definizione | Min | Max | |
|---|---|---|---|---|---|
| max_length |
La lunghezza massima della sequenza in token. Determina la dimensione della finestra di contesto per l’addestramento. Ottimizzabile al multiplo di 1.024 più vicino, valore massimo: 65.536 (per Lite LoRA 32768). |
1.024 |
65.536, tranne Lite LoRA che supporta 32.768. | ||
| global_batch_size |
Numero totale di campioni per fase, i valori consentiti sono 16, 32, 64. Valore massimo: 32 per Nova Pro, 64 per Nova Lite e Micro. |
16 | 32 per Nova Pro, 64 per Nova Lite e Micro. | ||
| Configurazione trainer | trainer | max_epochs |
Il numero di passaggi completi nel set di dati di addestramento. Per la maggior parte delle attività di personalizzazione, in genere sono sufficienti 1-5 epoch. È consigliabile mantenere fino a 5 epoch. |
1 | - |
| Configurazione del modello | modello | hidden_dropout |
Probabilità di eliminare output di stato nascosti. Aumenta il valore (0,0-0,2) per ridurre l’overfitting su set di dati più piccoli. I limiti sono compresi tra 0 e 1. |
0 | 1 |
| modello | attention_dropout |
Probabilità di eliminare pesi di attenzione. Può essere utile con la generalizzazione. I limiti sono compresi tra 0 e 1. |
0 | 1 | |
| modello | ffn_dropout |
Probabilità di eliminare output di rete feed-forward. I limiti sono compresi tra 0 e 1. |
0 | 1 | |
| Configurazione optimizer | model.optim | lr |
Tasso di apprendimento, controlla la dimensione del passaggio durante l’ottimizzazione. I limiti sono compresi tra 0 e 1. In genere impostato tra 1e-6 e 1e-4 per ottenere buone prestazioni. |
0 | 1 |
| model.optim | nome |
Algoritmo dell’ottimizzatore. Attualmente è supportato solo |
- | - | |
| model.optim | adam_w_mode |
Abilita la modalità AdamW (true/false). |
- | - | |
| model.optim | eps |
Epsilon per la stabilità numerica. |
|||
| model.optim | weight_decay |
Potenza di regolarizzazione L2, deve essere un valore compreso tra 0,0 e 1,0. |
0 | 1 | |
| model.optim | betas |
Beta dell’ottimizzatore Adam, devono essere comprese tra 0,0 e 1,0. |
0 | 1 | |
| model.optim | sched_warmup_steps |
Numero di passaggi per aumentare gradualmente il tasso di apprendimento. Migliora la stabilità dell’addestramento. Tra 1 e 20. |
1 | 20 | |
| model.optim | sched_constant_steps |
Passaggi a un tasso di apprendimento costante. |
1.00E-10 | 1,00E-06 | |
| model.optim | sched.min_lr |
Tasso minimo di apprendimento alla fine del decadimento. I limiti sono compresi tra 0 e 1, ma devono essere inferiori al tasso di apprendimento. |
0 | 1 | |
|
Configurazione PEFT LoRA |
model.peft | peft_scheme |
Utilizza “lora” o “null”. “lora” utilizza il metodo PEFT LoRA per il fine-tuning efficiente in termini di parametri. “null” avvia in fine-tuning a dimensionalità completa. |
- | - |
| model.peft | lora_tuning.loraplus_lr_ratio |
Fattore di dimensionamento del tasso di apprendimento LoRA+, deve essere compreso tra 0,0 e 100,0. |
0 | 100 | |
| model.peft | lora_tuning.alpha |
Fattore di dimensionamento per pesi LoRA. I valori consentiti sono 32, 64, 96, 128, 160 e 192. |
32 | 192 | |
| model.peft | lora_tuning.adapter_dropout |
Regolarizzazione per i parametri LoRA. Deve essere compresa tra 0,0 e 1,0. |
0 | 1 |
Configurazioni specifiche per il fine-tuning (DPO)
L'unica differenza tra Direct Preference Optimization (DPO) rispetto a LoRa PEFT e FullRank SFT è in termini di configurazione di dpo_cfg e valori consentiti. Fai riferimento alla tabella seguente (esempio) per informazioni sui valori consentiti specificamente per DPO. Ricette di esempio sono disponibili nell'archivio delle ricette. SageMaker HyperPod
| Chiave root | Chiavi secondarie | Definizione | Min | Max | |
|---|---|---|---|---|---|
| max_length | La lunghezza massima della sequenza in token. Determina la dimensione della finestra di contesto per l’addestramento. Ottimizzabile al multiplo di 1.024 più vicino, valore massimo: 32.768. |
1.024 |
32768 |
||
| global_batch_size |
Dimensione globale del batch, i valori consentiti sono {16, 32, 64, 128, 256}. |
16 | 256 | ||
| Configurazione trainer | trainer | max_epochs |
Il numero di passaggi completi nel set di dati di addestramento. Per la maggior parte delle attività di personalizzazione, in genere sono sufficienti 1-5 epoch. Il numero massimo di epoch è 5. |
1 | 5 |
| Configurazione del modello | modello | hidden_dropout |
Probabilità di eliminare output di stato nascosti. Aumenta il valore (0,0-0,2) per ridurre l’overfitting su set di dati più piccoli. I limiti sono compresi tra 0 e 1. |
0 | 1 |
| modello | attention_dropout |
Probabilità di eliminare pesi di attenzione. Può essere utile con la generalizzazione. I limiti sono compresi tra 0 e 1. |
0 | 1 | |
| modello | ffn_dropout |
Probabilità di eliminare output di rete feed-forward. I limiti sono compresi tra 0 e 1. |
0 | 1 | |
| Configurazione optimizer | model.optim | lr |
Tasso di apprendimento, controlla la dimensione del passaggio durante l’ottimizzazione. I limiti sono compresi tra 0 e 1. In genere impostato tra 1e-6 e 1e-4 per ottenere buone prestazioni. |
0 | 1 |
| model.optim | nome |
Algoritmo dell’ottimizzatore. Attualmente è supportato solo |
- | - | |
| model.optim | adam_w_mode |
Abilita la modalità AdamW (true/false). |
- | - | |
| model.optim | eps |
Epsilon per la stabilità numerica. |
1.00E-10 | 1,00E-06 | |
| model.optim | weight_decay |
Potenza di regolarizzazione L2, deve essere un valore compreso tra 0,0 e 1,0. |
0 | 1 | |
| model.optim | betas |
Beta dell’ottimizzatore Adam, devono essere comprese tra 0,0 e 1,0. |
0 | 1 | |
| model.optim | sched_warmup_steps |
Numero di passaggi per aumentare gradualmente il tasso di apprendimento. Migliora la stabilità dell’addestramento. Tra 1 e 20. |
1 | 20 | |
| model.optim | sched_constant_steps |
Passaggi a un tasso di apprendimento costante. |
|||
| model.optim | sched.min_lr |
Tasso minimo di apprendimento alla fine del decadimento. I limiti sono compresi tra 0 e 1, ma devono essere inferiori al tasso di apprendimento. |
0 | 1 | |
|
Configurazione PEFT LoRA |
model.peft | peft_scheme |
Utilizza “lora” o “null”. “lora” utilizza il metodo PEFT LoRA per il fine-tuning efficiente in termini di parametri. “null” avvia in fine-tuning a dimensionalità completa. |
- | - |
| model.peft | lora_tuning.loraplus_lr_ratio |
Fattore di dimensionamento del tasso di apprendimento LoRA+, deve essere compreso tra 0,0 e 100,0. |
0 | 100 | |
| model.peft | lora_tuning.alpha |
Fattore di dimensionamento per pesi LoRA. I valori consentiti sono 32, 64, 96, 128, 160 e 192. |
32 | 192 | |
| model.peft | lora_tuning.adapter_dropout |
Regolarizzazione per i parametri LoRA. Deve essere un valore compreso tra 0,0 e 1,0. |
0 | 1 | |
| Configurazione DPO | model-dpo_cfg | beta |
Potenza dell’applicazione di preferenze. |
0.001 | 0.1 |
Esecuzione di un modello Nova personalizzato durante i lavori SageMaker di formazione
Questa sezione mostra come eseguire un modello Nova personalizzato su lavori di SageMaker formazione tramite un ambiente notebook Jupyter. Troverai un esempio completo che illustra il processo di configurazione e avvio di un processo di formazione, insieme a tabelle di riferimento per la selezione dell'immagine del contenitore e delle configurazioni di istanza appropriate. URIs Questo approccio offre il controllo programmatico sui flussi di lavoro di ottimizzazione, sfruttando al contempo l'infrastruttura gestita di cui dispone per la personalizzazione dei modelli. SageMaker Per ulteriori informazioni, consulta Utilizzare uno stimatore di SageMaker intelligenza artificiale per eseguire un processo di formazione.
Tabelle di riferimento
Prima di eseguire il notebook di esempio, consulta le seguenti tabelle per selezionare l'immagine del contenitore URIs e le configurazioni dell'istanza appropriate.
Selezione dell’URI delle immagini
| Recipe | URI immagine |
|---|---|
|
URI immagine SFT |
708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-TJ-SFT-latest |
|
URI immagine DPO |
708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-TJ-DPO-latest |
Selezione del tipo e del numero di istanze
| Modello | Tipo di processo | Tipo di istanza | Numero di istanze consigliato | Numero di istanze consentito |
|---|---|---|---|---|
| Amazon Nova Micro | Ottimizzazione (SFT/DPO, LoRa) | g5.12xlarge, g6.12xlarge, g5.48xlarge,
g6.48xlarge |
1 | 1 |
| Amazon Nova Micro | Ottimizzazione (SFT, FFT) |
g5.48xlarge, g6.48xlarge |
1 | 1 |
| Amazon Nova Lite | Fine-tuning (SFT, LoRA) |
g5.12xlarge, g6.12xlarge, g5.48xlarge,
g6.48xlarge |
1 | 1 |
| Amazon Nova Lite | Ottimizzazione (DPO, LoRa) |
g5.48xlarge, g6.48xlarge |
1 | 1 |
| Amazon Nova Micro | Ottimizzazione (SFT) |
p5.48xlarge, p5en.48xlarge |
2 | 1,2,4,8 |
| Amazon Nova Lite | Ottimizzazione (SFT) |
p5.48xlarge, p5en.48xlarge |
4 | 2, 4, 8, 16 |
| Amazon Nova Pro | Ottimizzazione (SFT) |
p5.48xlarge, p5en.48xlarge |
6 | 3,6,12,24 |
| Amazon Nova Micro | Ottimizzazione (DPO) |
p5.48xlarge, p5en.48xlarge |
2 | 2,4,8 |
| Amazon Nova Lite | Ottimizzazione (DPO) |
p5.48xlarge, p5en.48xlarge |
4 | 4,8,16 |
| Amazon Nova Pro | Ottimizzazione (DPO) |
p5.48xlarge, p5en.48xlarge |
6 | 6,12,24 |
Notebook di esempio
Il seguente notebook di esempio mostra come eseguire un job di addestramento. Per altri taccuini introduttivi su come personalizzare i modelli Nova utilizzando i processi di formazione basati sull' SageMaker intelligenza artificiale, consulta Utilizzare uno stimatore di intelligenza SageMaker artificiale per eseguire un processo di formazione.
# 1. Install dependencies !pip install sagemaker==2.254.1 # 2. Import dependencies and initialize sagemaker session import sagemaker,boto3 sm = boto3.client('sagemaker', region_name='us-east-1') sagemaker_session = sagemaker.session.Session(boto_session=boto3.session.Session(), sagemaker_client=sm) # 3. Configure your job # Define the core configuration for launching a SageMaker Training Job. This includes input/output S3 URIs, container image, hardware setup, and other runtime parameters. Update the placeholders below before submitting the job. job_name = "<Your Job Name>" input_s3_uri = "<S3 path to input data>" validation_s3_uri = "<S3 path to validation data>" # optional, leave blank if no validation data output_s3_uri = "<S3 path to output location>" image_uri = "<Image URI from documentation>" # you can choose the image for SFT/DPO instance_type = "ml.p5.48xlarge" # do not change instance_count = <Integer number of hosts> # change hosts as needed. Refer to documentation for allowed values based on model type. role_arn = "<IAM Role you want to use to run the job>" recipe_path = "<Local path to the recipe file>" # 4. Launch SageMaker Training Job # This block sets up and runs the SageMaker training job using the PyTorch estimator. It configures the training image, hardware, input channels, and TensorBoard integration. Validation data is included if provided. from sagemaker.debugger import TensorBoardOutputConfig from sagemaker.pytorch import PyTorch from sagemaker.inputs import TrainingInput tensorboard_output_config = TensorBoardOutputConfig( s3_output_path=output_s3_uri, ) estimator = PyTorch( output_path=output_s3_uri, base_job_name=job_name, role=role_arn, instance_count=instance_count, instance_type=instance_type, training_recipe=recipe_path, sagemaker_session=sagemaker_session, image_uri=image_uri, tensorboard_output_config=tensorboard_output_config, # Add the setting for using TensorBoard. disable_profiler=True, debugger_hook_config=False ) trainingInput = TrainingInput( s3_data=input_s3_uri, distribution='FullyReplicated', s3_data_type='Converse' ) if (validation_s3_uri): validationInput = TrainingInput( s3_data=validation_s3_uri, distribution='FullyReplicated', s3_data_type='Converse' ) estimator.fit(inputs={"train": trainingInput, "validation": validationInput}) # inputs must be called "train" and "validation", do not change else: estimator.fit(inputs={"train": trainingInput})
Indicazioni di ottimizzazione degli iperparametri
Il fine-tuning di un modello linguistico di grandi dimensioni (LLM, Large Language Model) Nova richiede un’attenta selezione degli iperparametri. Sebbene questa sezione spieghi la struttura e i componenti di base della ricetta, l’ottimizzazione degli iperparametri per un caso d’uso specifico richiede spesso ulteriori indicazioni. Per consigli completi sulla selezione degli iperparametri, sulle best practice e sulle strategie di ottimizzazione, consulta Selecting hyperparameters. Questa risorsa fornisce indicazioni dettagliate sulla selezione dei tassi di apprendimento, sulle dimensioni dei batch, sulle epoch di formazione e su altri parametri critici appropriati in base alle caratteristiche del set di dati e agli obiettivi di addestramento. È consigliabile consultare questa guida durante il fine-tuning della configurazione di una ricetta per ottenere prestazioni ottimali del modello.
Per dettagli sui valori minimo, massimo e predefinito per le epoch, il tasso di apprendimento e le fasi di riscaldamento dell’apprendimento, consulta Hyperparameters for Understanding models.
Modifiche comuni alle ricette
Ecco alcune modifiche comuni alle ricette in base a casi d’uso specifici:
-
Per set di dati di dimensioni ridotte (< 1.000 esempi)
training_config: max_epochs: 2 # More passes through a smaller dataset model: hidden_dropout: 0.1 # Increase regularization weight_decay: 0.01 # Increase regularization
-
Per efficienza con calcolo limitato
peft: peft_scheme: "lora" lora_tuning:
-
Per ottimizzazione di istruzioni complesse
optim: lr: 5e-6 # Lower learning rate for more stable learning sched: warmup_steps: 100 # Longer warmup for stability