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 dei modelli SageMaker Amazon Nova tramite processi di formazione
L'ottimizzazione dei modelli Amazon Nova SageMaker con lavori di formazione offre un modo efficace per personalizzare i modelli di base per i tuoi casi d'uso specifici.
Argomenti
Prerequisiti
Prima di iniziare un corso di formazione, tieni presente quanto segue.
-
Bucket Amazon S3 per archiviare i dati di input e output dei lavori di formazione. Puoi utilizzare un bucket per entrambi o bucket separati per ogni tipo di dati. Assicurati che i bucket si trovino nello stesso Regione AWS posto in cui crei tutte le altre risorse per la formazione. Per ulteriori informazioni, consulta Creazione di un bucket generico.
-
Un ruolo IAM con autorizzazioni per eseguire un processo di formazione. Assicurati di allegare una policy IAM con
AmazonSageMakerFullAccess
. Per ulteriori informazioni, consulta Come utilizzare i ruoli di SageMaker esecuzione. -
Ricette base di Amazon Nova, vediOttenere ricette Amazon Nova.
Preparazione dei dati
La preparazione di dati di alta qualità e formattati correttamente è un primo passo fondamentale nel processo di messa a punto di modelli linguistici di grandi dimensioni. Che si utilizzi il supervised fine-tuning (SFT) o la Direct Preference Optimization (DPO), con approcci full rank o low-rank adaptation (LoRa), i dati devono rispettare requisiti di formato specifici per garantire una formazione efficace dei modelli. Questa sezione descrive i formati di dati, i metodi di convalida e le best practice necessari per aiutarti a preparare i set di dati in modo efficace per la messa a punto 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 Converse. Per esempi e vincoli di questo formato, consulta Preparazione dei dati per la messa a punto dei modelli Understanding.
Convalida dei dati SFT: per convalidare il formato del set di dati prima dell'invio, ti consigliamo di utilizzare il seguente script di convalida dal repository di esempi di Amazon Bedrock.jsonl
i tuoi file rispettino le specifiche di formato richieste e a identificare eventuali problemi prima di inviare il lavoro di messa a punto.
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 Converse. Inoltre, il set di dati deve essere in un formato simile a quello di SFT, tranne per l'ultimo turno che deve avere coppie di preferenze.
Set di dati DPO altri vincoli - Gli altri vincoli sui set di dati sono gli stessi per SFT. Per ulteriori informazioni, vedere Vincoli del set di dati. È previsto un singolo file JSONL per la formazione e un unico file JSONL per la convalida. Il set di convalida è facoltativo.
Raccomandazioni sul set di dati del DPO: un minimo di 1.000 coppie di preferenze per una formazione efficace. Dati sulle preferenze di alta qualità produrranno risultati più efficienti.
Esempio di formato di dati del 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" } ] }
Formato dati DPO di esempio (multigiro)
{ "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" } ] } ], }
Formato di dati DPO di esempio (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 lavori di formazione hanno un limite di tempo di 1 giorno, sebbene le stime nelle tabelle seguenti presuppongano una durata della formazione di 5 giorni a scopo illustrativo. Come best practice, consigliamo di aumentare il limite di tempo di formazione a un massimo di 28 giorni per far fronte a carichi di lavoro di formazione più lunghi. Per richiedere un aumento del limite, consulta Richiesta di aumento della quota.
Limiti del set di dati SFT
Lunghezza del contesto | Modello | Metodo | Set di dati | Descrizione |
---|---|---|---|---|
32.000 lavori con durata contestuale |
Amazon NovaMicro | Full rank e LoRa | Solo testo |
Se utilizzi un set di dati in cui tutti i record hanno una lunghezza di contesto di 32.000 e, ad esempio, durano 5 epoche, puoi avere solo fino a 100.000 record. |
Amazon Nova Lite |
Grado completo | Solo testo |
Se utilizzi un set di dati in cui tutti i record hanno una lunghezza di contesto di 32.000 e, ad esempio, vengono eseguiti per 5 epoche, puoi avere fino a 100.000 record. |
|
Immagini e video |
Se utilizzi un set di dati in cui tutti i record hanno una lunghezza di contesto di 32.000 e, ad esempio, durano 5 epoche, puoi avere fino a 50.000 record. |
|||
LoRa | Solo testo |
Se utilizzi un set di dati in cui tutti i record hanno una lunghezza di contesto di 32.000 e, ad esempio, vengono eseguiti per 5 epoche, puoi avere fino a 100.000 record. |
||
Immagini e video | Se utilizzi un set di dati in cui tutti i record hanno una lunghezza di contesto di 32.000 e, ad esempio, durano 5 epoche, puoi avere fino a 90.000 record. | |||
Amazon Nova Pro |
Grado completo | Solo testo |
Se utilizzi un set di dati in cui tutti i record hanno una lunghezza di contesto di 32.000 e, ad esempio, vengono eseguiti per 5 epoche, puoi avere fino a 40.000 record. |
|
Immagini e video |
Se utilizzi un set di dati in cui tutti i record hanno una lunghezza di contesto di 32.000 e, ad esempio, durano 5 epoche, puoi avere fino a 30.000 record. |
|||
LoRa | Solo testo |
Se utilizzi un set di dati in cui tutti i record hanno una lunghezza di contesto di 32.000 e, ad esempio, vengono eseguiti per 5 epoche, puoi avere fino a 40.000 record. |
||
Immagini e video |
Se utilizzi un set di dati in cui tutti i record hanno una lunghezza di contesto di 32.000 e, ad esempio, durano 5 epoche, puoi avere fino a 35.000 record. |
|||
lavori con lunghezza contestuale da 64.000 |
Amazon NovaMicro | Full rank e LoRa | Solo testo |
Se utilizzi un set di dati in cui tutti i record hanno una lunghezza di contesto di 64.000 e, ad esempio, durano 5 epoche, puoi avere solo fino a 50.000 record. |
Amazon Nova Lite |
Grado completo | Solo testo |
Se utilizzi un set di dati in cui tutti i record hanno una lunghezza di contesto di 64.000 e, ad esempio, vengono eseguiti per 5 epoche, puoi avere fino a 50.000 record. |
|
Immagini e video |
Se utilizzi un set di dati in cui tutti i record hanno una lunghezza di contesto di 64.000 e, ad esempio, durano 5 epoche, puoi avere fino a 30.000 record. |
|||
LoRa | - |
LoRa non è supportato a 64k per Nova Lite. |
||
Amazon Nova Pro | Full rank e LoRa | Solo testo |
Se utilizzi un set di dati in cui tutti i record hanno una lunghezza di contesto di 64.000 e, ad esempio, vengono eseguiti per 5 epoche, puoi avere fino a 17.000 record. |
|
Immagini e video |
Se utilizzi un set di dati in cui tutti i record hanno una lunghezza di contesto di 64.000 e, ad esempio, durano 5 epoche, puoi avere fino a 15.000 record. |
Limiti del set di dati DPO
Lunghezza del contesto | Modello | Metodo | Set di dati | Descrizione |
---|---|---|---|---|
16.000 lavori con durata contestuale |
Amazon NovaMicro | Grado completo | Solo testo |
Se utilizzi un set di dati in cui tutti i record hanno una lunghezza di contesto di 16.000 e, ad esempio, durano 5 epoche, puoi avere solo fino a 120.000 record. |
LoRa | Solo testo |
Se utilizzi un set di dati in cui tutti i record hanno una lunghezza di contesto di 16.000 e, ad esempio, durano 5 epoche, puoi avere solo fino a 125.000 record. |
||
Amazon Nova Lite |
Grado completo | Solo testo |
Se utilizzi un set di dati in cui tutti i record hanno una lunghezza di contesto di 16.000 e, ad esempio, vengono eseguiti per 5 epoche, puoi avere fino a 130.000 record. |
|
Immagine |
Se utilizzi un set di dati in cui tutti i record hanno una lunghezza di contesto di 16.000 e, ad esempio, esegui per 5 epoche, puoi completare 20.000 campioni entro 2 giorni |
|||
LoRa | Solo testo |
Se utilizzi un set di dati in cui tutti i record hanno una lunghezza di contesto di 16.000 e, ad esempio, durano 5 epoche, puoi avere fino a 140.000 record. |
||
Immagine |
se utilizzi un set di dati in cui tutti i record hanno una lunghezza di contesto di 16.000 e, ad esempio, eseguiti per 5 epoche, puoi completare 20.000 campioni entro 2 giorni. |
|||
Amazon Nova Pro |
Grado completo | Solo testo |
Se utilizzi un set di dati in cui tutti i record hanno una lunghezza di contesto di 16.000 e, ad esempio, durano 5 epoche, puoi avere fino a 45.000 record. |
|
Immagine |
Se utilizzi un set di dati in cui tutti i record hanno una lunghezza di contesto di 16.000 e, ad esempio, esegui per 5 epoche, puoi completare 20.000 campioni entro 4 giorni |
|||
LoRa | Solo testo |
Se utilizzi un set di dati in cui tutti i record hanno una lunghezza di contesto di 16.000 e, ad esempio, durano 5 epoche, puoi avere fino a 55.000 record. |
||
Immagine |
Se utilizzi un set di dati in cui tutti i record hanno una lunghezza di contesto di 16.000 e, ad esempio, esegui per 5 epoche, puoi completare 20.000 campioni entro 4 giorni |
|||
32.000 lavori con durata contestuale |
Amazon NovaMicro | Grado completo | Solo testo |
Se utilizzi un set di dati in cui tutti i record hanno una lunghezza di contesto di 32.000 e, ad esempio, durano 5 epoche, puoi avere solo fino a 45.000 record. |
LoRa | Solo testo |
Se utilizzi un set di dati in cui tutti i record hanno una lunghezza di contesto di 32.000 e, ad esempio, durano 5 epoche, puoi avere solo fino a 50.000 record. |
||
Amazon Nova Lite |
Grado completo | Solo testo |
Se utilizzi un set di dati in cui tutti i record hanno una lunghezza di contesto di 32.000 e, ad esempio, vengono eseguiti per 5 epoche, puoi avere fino a 55.000 record. |
|
Immagine |
Se utilizzi un set di dati in cui tutti i record hanno una lunghezza di contesto di 32.000 e, ad esempio, esegui per 5 epoche, puoi avere fino a 35.000 record. |
|||
LoRa | Solo testo |
Se utilizzi un set di dati in cui tutti i record hanno una lunghezza di contesto di 32.000 e, ad esempio, durano 5 epoche, puoi avere fino a 60.000 record. |
||
Immagine |
Se utilizzi un set di dati in cui tutti i record hanno una lunghezza di contesto di 32.000 e, ad esempio, esegui per 5 epoche, puoi avere fino a 35.000 record. |
|||
Amazon Nova Pro | Grado completo | Solo testo |
Se utilizzi un set di dati in cui tutti i record hanno una lunghezza di contesto di 32.000 e, ad esempio, durano 5 epoche, puoi avere fino a 20.000 record. |
|
Immagine |
Se utilizzi un set di dati in cui tutti i record hanno una lunghezza di contesto di 64.000 e, ad esempio, esegui per 5 epoche, puoi avere fino a 16.000 record. |
|||
LoRa | Solo testo |
Se utilizzi un set di dati in cui tutti i record hanno una lunghezza di contesto di 32.000 e, ad esempio, durano 5 epoche, puoi avere fino a 22.000 record. |
||
Immagine |
Se utilizzi un set di dati in cui tutti i record hanno una lunghezza di contesto di 64.000 e, ad esempio, vengono eseguiti per 5 epoche, puoi avere fino a 18.000 record. |
Riducendo il numero di epoche o la lunghezza del contesto dei record, è possibile fornire più record.
Configurazioni SFT e LoRa PEFT complete
Questa sezione fornisce indicazioni sulle configurazioni delle ricette sia per gli approcci di regolazione di precisione con supervisione completa (SFT) che per gli approcci di ottimizzazione efficiente dei parametri di adattamento di basso livello (LoRa PEFT). Questi file di ricette fungono da modello per i processi di personalizzazione del modello 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 Selezione degli iperparametri.
Configurazioni di precisione (Full-Rank SFT e LoRa PEFT)
L'unica differenza tra SFT completo e LoRa PEFT in termini di ricetta è la configurazione LoRa PEFT, che è impostata su «null» per il rango completo e impostata sui valori appropriati se si utilizza la regolazione fine basata su LoRa PEFT. SageMaker HyperPod GitHub Ricette
Informazioni sulla configurazione «run».
Chiave | Definizione | Micro | leggero | Pro | |
---|---|---|---|---|---|
Esegui la configurazione | model_type |
Specifica la variante del modello Nova da utilizzare. Non modificate questo campo. |
«Amazon. nova-micro-v1:01:28k» |
«amazzone. nova-lite-v1:30,00 k» |
«amazzone. nova-pro-v1:30,00 k» |
nome_o_percorso_modello |
Il percorso del modello base. |
«nova-micro/prod» |
«nova-lite/prod» |
«nova-pro/prod» |
|
repliche |
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 di «training_config».
Chiave principale | Chiavi per bambini | Definizione | Min | Max | |
---|---|---|---|---|---|
max_length |
La lunghezza massima della sequenza in token. Ciò determina la dimensione della finestra contestuale per l'allenamento. Sintonizzabile sul multiplo 1024 più vicino, valore massimo: 65536 (per Lite Lora 32768). |
1.024 |
65536, tranne Lite LoRa che supporta 32768. | ||
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 del trainer | allenatore | 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 epoche. Si consiglia di conservarne fino a 5. |
1 | - |
Configurazione del modello | modello | hidden_dropout |
Probabilità di eliminare gli output di stato nascosti. Aumenta (0,0-0,2) per ridurre l'overfit su set di dati più piccoli. I limiti sono compresi tra 0 e 1. |
0 | 1 |
modello | attention_dropout |
Probabilità di abbassare i pesi di attenzione. Può aiutare con la generalizzazione. I limiti sono compresi tra 0 e 1. |
0 | 1 | |
modello | ffn_dropout |
Probabilità di interruzione degli output di rete feed-forward. I limiti sono compresi tra 0 e 1. |
0 | 1 | |
Configurazione dell'ottimizzatore | modello.optim | o |
Frequenza di apprendimento, controlla la dimensione dei passaggi durante l'ottimizzazione. I limiti sono compresi tra 0 e 1. In genere impostato tra 1e-6 e 1e-4. per buone prestazioni. |
0 | 1 |
modello.optim | nome |
Algoritmo di ottimizzazione. Attualmente è supportato solo |
- | - | |
modello.optim | adam_w_mode |
Abilita la modalità AdamW (true/false). |
- | - | |
modello.optim | eps |
Epsilon per la stabilità numerica. |
|||
modello.optim | decadimento del peso |
Forza di regolarizzazione L2, deve essere compresa tra 0,0 e 1,0. |
0 | 1 | |
modello.optim | beta |
Le versioni beta di Adam Optimizer devono essere comprese tra 0,0 e 1,0. |
0 | 1 | |
modello.optim | sched_warmup_steps |
Numero di passaggi per aumentare gradualmente il tasso di apprendimento. Ciò migliora la stabilità dell'allenamento. Tra 1 e 20. |
1 | 20 | |
modello.optim | sched_constant_steps |
Passi a ritmo di apprendimento costante. |
1,00E-10 | 1,00E-06 | |
modello.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 LoRa PEFT |
modello.peft | schema peft_ |
Usa «lora» o «null». «lora» utilizza il metodo LoRa PEFT per una regolazione precisa efficiente dei parametri. «null» dà il via a una messa a punto completa. |
- | - |
modello.sinistro | lora_tuning.loraplus_lr_ratio |
Il fattore di scala del tasso di apprendimento LoRA+ deve essere compreso tra 0,0 e 100,0. |
0 | 100 | |
modello.left | lora_tuning.alpha |
Fattore di scala per i pesi LoRa. I valori consentiti sono 32, 64, 96, 128, 160 e 192. |
32 | 192 | |
modello.left | lora_tuning.adapter_dropout |
Regolarizzazione per i parametri LoRa. Deve essere compresa tra 0,0 e 1,0. |
0 | 1 |
Ottimizzazione di configurazioni specifiche (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. Fate riferimento alla tabella seguente (esempio) per informazioni su ciò che è consentito specificamente per DPO. Le ricette di esempio sono disponibili nell' GitHub archivio delle SageMaker HyperPod ricette
Chiave principale | Chiavi per bambini | Definizione | Min | Max | |
---|---|---|---|---|---|
max_length | La lunghezza massima della sequenza in token. Ciò determina la dimensione della finestra contestuale per l'allenamento. Sintonizzabile sul multiplo 1024 più vicino, valore massimo: 32.768. |
1.024 |
32768 |
||
dimensione_batch globale |
Dimensione globale del batch, i valori consentiti sono {16, 32, 64, 128, 256}. |
16 | 256 | ||
Configurazione del trainer | allenatore | 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 epoche. Le epoche massime sono 5. |
1 | 5 |
Configurazione del modello | modello | hidden_dropout |
Probabilità di eliminare gli output di stato nascosti. Aumenta (0,0-0,2) per ridurre l'overfit su set di dati più piccoli. I limiti sono compresi tra 0 e 1. |
0 | 1 |
modello | attention_dropout |
Probabilità di abbassare i pesi di attenzione. Può aiutare con la generalizzazione. I limiti sono compresi tra 0 e 1. |
0 | 1 | |
modello | ffn_dropout |
Probabilità di interruzione degli output di rete feed-forward. I limiti sono compresi tra 0 e 1. |
0 | 1 | |
Configurazione dell'ottimizzatore | modello.optim | o |
Frequenza di apprendimento, controlla la dimensione dei passaggi durante l'ottimizzazione. I limiti sono compresi tra 0 e 1. In genere impostato tra 1e-6 e 1e-4. per buone prestazioni. |
0 | 1 |
modello.optim | nome |
Algoritmo di ottimizzazione. Attualmente è supportato solo |
- | - | |
modello.optim | adam_w_mode |
Abilita la modalità AdamW (true/false). |
- | - | |
modello.optim | eps |
Epsilon per la stabilità numerica. |
1,00E-10 | 1,00E-06 | |
modello.optim | decadimento del peso |
Forza di regolarizzazione L2, deve essere compresa tra 0,0 e 1,0. |
0 | 1 | |
modello.optim | beta |
Le versioni beta di Adam Optimizer devono essere comprese tra 0,0 e 1,0. |
0 | 1 | |
modello.optim | sched_warmup_steps |
Numero di passaggi per aumentare gradualmente il tasso di apprendimento. Ciò migliora la stabilità dell'allenamento. Tra 1 e 20. |
1 | 20 | |
modello.optim | sched_constant_steps |
Passi a ritmo di apprendimento costante. |
|||
modello.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 LoRa PEFT |
modello.peft | schema peft_ |
Usa «lora» o «null». «lora» utilizza il metodo LoRa PEFT per una regolazione precisa efficiente dei parametri. «null» dà il via a una messa a punto completa. |
- | - |
modello.sinistro | lora_tuning.loraplus_lr_ratio |
Il fattore di scala del tasso di apprendimento LoRA+ deve essere compreso tra 0,0 e 100,0. |
0 | 100 | |
modello.left | lora_tuning.alpha |
Fattore di scala per i pesi LoRa. I valori consentiti sono 32, 64, 96, 128, 160 e 192. |
32 | 192 | |
modello.left | lora_tuning.adapter_dropout |
Regolarizzazione per i parametri LoRa. Deve essere compreso tra 0,0 e 1,0. |
0 | 1 | |
Configurazione DPO | modello-dpo_cfg | beta |
Forza dell'applicazione delle preferenze. |
0.001 | 0.1 |
Esecuzione di un modello Nova personalizzato durante i lavori di SageMaker formazione
Questa sezione illustra come eseguire un modello Nova personalizzato sui 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 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, fate riferimento alle seguenti tabelle per selezionare l'immagine del contenitore URIs e le configurazioni dell'istanza appropriate.
Selezione dell'URI dell'immagine
Recipe | URI immagine |
---|---|
URI dell'immagine SFT |
708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-TJ-SFT-latest |
URI dell'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 consentite |
---|---|---|---|---|
Amazon NovaMicro | Ottimizzazione (SFT/DPO) |
p5.48xlarge |
2 | 2,4,8 |
Amazon Nova Lite | Ottimizzazione (SFT/DPO) |
p5.48xlarge |
4 | 4,8,16 |
Amazon Nova Pro | Ottimizzazione (SFT/DPO) |
p5.48xlarge |
6 | 6,12,24 |
Notebook di esempio
Il seguente taccuino di esempio mostra come eseguire un processo di formazione. 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 SageMaker intelligenza artificiale per eseguire un processo di formazione.
# 1. Install dependencies !pip install sagemaker # 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}) # 5. Monitor your training job # To monitor your training job, you can either: # * Go to your AWS console -> Amazon Sagemaker AI -> Training -> Training Jobs # * run the following command # sm.describe_training_job(TrainingJobName="<complete training job name>")
Guida all'ottimizzazione degli iperparametri
La messa a punto del modello Nova LLM in modo efficace 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 spesso richiede ulteriori indicazioni. Per consigli completi sulla selezione degli iperparametri, sulle migliori pratiche e sulle strategie di ottimizzazione, consulta Selezione degli iperparametri. Questa risorsa fornisce indicazioni dettagliate sulla selezione dei tassi di apprendimento, delle dimensioni dei batch, delle epoche di formazione e di altri parametri critici appropriati in base alle caratteristiche del set di dati e agli obiettivi di formazione. Consigliamo di consultare questa guida per ottimizzare la configurazione della ricetta per ottenere prestazioni ottimali del modello.
Modifiche comuni alle ricette
Ecco alcune modifiche comuni alle ricette basate su casi d'uso specifici:
-
Per set di dati più piccoli (< 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 l'efficienza con capacità di calcolo limitata
peft: peft_scheme: "lora" lora_tuning:
-
Per l'ottimizzazione di istruzioni complesse
optim: lr: 5e-6 # Lower learning rate for more stable learning sched: warmup_steps: 100 # Longer warmup for stability