Ottimizzazione dei modelli SageMaker Amazon Nova tramite processi di formazione - Amazon SageMaker AI

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.

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 conAmazonSageMakerFullAccess. 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. Questo strumento di convalida ti aiuterà a garantire che 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 di esempio sono disponibili nell'archivio delle ricette. Le tabelle seguenti mostrano configurazioni dettagliate che potrebbero essere utili.

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

- -
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. La tabella seguente mostra configurazioni dettagliate che potrebbero essere utili.

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

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

Per dettagli sui valori minimo, massimo e predefinito per le epoche, la frequenza di apprendimento e le fasi di riscaldamento dell'apprendimento, consulta Hyperparameters for Understanding models.

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