View a markdown version of this page

Supervisionato Fine-Tuning - Amazon Nova

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

Supervisionato Fine-Tuning

Introduzione

La messa a punto supervisionata utilizza set di dati con coppie input-output per l'attività di interesse. In altre parole, fornisci esempi di prompt (domande, istruzioni, ecc.) insieme alle risposte corrette o desiderate e continui ad addestrare il modello su queste domande. I pesi del modello vengono regolati per ridurre al minimo una perdita supervisionata, in genere un'entropia incrociata tra le sue previsioni e i token di risposta target.

Quando usare SFT?

SFT è la soluzione migliore quando si ha un'attività ben definita con risultati chiari e desiderati. Se potete dire esplicitamente «Dato l'input X, l' correct/desired output è Y» e potete raccogliere esempi di tali X-Y mappature, allora la messa a punto supervisionata è un'ottima scelta. Alcuni scenari in cui SFT eccelle includono:

  • Attività di classificazione strutturate o complesse: ad esempio classificazione di documenti o contratti interni in molte categorie personalizzate. Con SFT, il modello può apprendere queste categorie specifiche molto meglio rispetto alla semplice richiesta.

  • Question-answering o attività di trasformazione con risposte note: ad esempio mettere a punto un modello per rispondere alle domande della knowledge base di un'azienda o convertire i dati tra formati, in cui ogni input ha una risposta corretta.

  • Formattazione e coerenza stilistica: se hai bisogno che il modello risponda sempre in un determinato formato o tono, puoi perfezionare alcuni esempi di quelli corretti. format/tone Ad esempio, la formazione sulle coppie pronta-risposta che dimostrano una particolare voce o stile del marchio può insegnare al modello a utilizzare quello stile nei suoi output. Instruction-following il comportamento viene spesso insegnato inizialmente tramite SFT su esempi curati di buon comportamento da assistente.

La SFT è il modo più diretto per insegnare a un LLM una nuova abilità o comportamento quando è possibile specificare quale sia il comportamento giusto. Sfrutta la comprensione linguistica esistente del modello e la concentra sul tuo compito. Non utilizzate SFT quando il divario è costituito dalla conoscenza piuttosto che dal comportamento; non farà sì che il modello apprenda nuovi fatti, gergo o eventi recenti. In questi casi, preferite una formazione preliminare continua su grandi corpora interni al dominio o una generazione aumentata di recupero per trarre conclusioni da conoscenze esterne. Se riuscite a misurare la qualità ma non riuscite ad etichettare una sola risposta corretta, potrebbe essere preferibile una ottimizzazione del rinforzo con ricompense verificabili o con un metodo SFT. LLM-as-judge

A seconda della complessità delle attività e delle prestazioni del modello Nova senza alcuna ottimizzazione, pianifica da migliaia a decine di migliaia di dimostrazioni per attività, con qualità, coerenza e diversità dei dati più importanti del volume grezzo.

Quando utilizzare SFT in modo efficiente con i parametri e quando utilizzare SFT al livello completo?

Le ricette di personalizzazione Nova consentono di eseguire operazioni efficienti con i parametri, in particolare LoRa o SFT full rank. Se desiderate un aggiornamento del modello semplice ed economico o disponete di pochissimi dati, preferite metodi efficienti in termini di parametri, in modo da addestrare adattatori di piccole dimensioni lasciando intatta la maggior parte della struttura portante (SFT full rank aggiorna tutti i parametri del modello).

Miscelazione dei dati per SFT

La miscelazione dei dati consente di combinare i set di dati di allenamento personalizzati con i dati di allenamento proprietari di Nova. Questa funzione è disponibile per entrambi i modelli Nova 1.0 e Nova 2.0.

Tipo di dati proprietario Nova: Nova supporta i tipi di dati SFT testuali e multimodali. È organizzato in più categorie di dati, ciascuna contenente una combinazione di attività rilevanti per la categoria corrispondente.

Categorie di dati proprietari Nova: i set di dati di testo includono diverse categorie, tra cui: processo decisionale autonomo, completamento delle attività, set di dati orientati agli obiettivi (agenti), set di dati di esecuzione di attività precisi sia di ragionamento che non di ragionamento (ragionamento, istruzione), sequenze che dimostrano il pensiero strategico e la suddivisione delle attività passo dopo passo (pianificazione), IA responsabile (rai), contesto lungo, fattualità, matematica, stem e molti altri. Allo stesso modo, i set di dati multimodali includono video, screenshot, grafici e molto altro.

La funzione di miscelazione dei dati consente di combinare i propri campioni di addestramento per la messa a punto con campioni dei set di dati Nova utilizzati per ottimizzare Nova. In questo modo è possibile evitare un eccessivo adattamento della formazione personalizzata e una «catastrofica dimenticanza» delle funzionalità di Nova, oppure aiutarvi a sviluppare nuove capacità durante l'addestramento partendo da un nuovo checkpoint preaddestrato.

Per combinare i dati Nova, devi semplicemente aggiungere un blocco data_mixing al file YAML della tua ricetta, nella sezione training_config. I blocchi di miscelazione di dati di testo e multimodali hanno contenuti diversi e i blocchi di miscelazione dei dati sono leggermente diversi per Nova 1.0 e Nova 2.0. Si prega di fare riferimento alle ricette corrispondenti.

Modelli supportati

  • Nova 1.0 (Micro, Lite, Pro)

  • Nova 2.0 Lite

Modalità supportata

  • Testo

  • Multimodale

Esempi di configurazione YAML

Esempio di blocco di miscelazione dei dati per Nova 1.0 Text Mixing

## Run config run: name: "my-lora-run" # A descriptive name for your training job model_type: "amazon.nova-lite-v1:0:300k" # Model variant specification, do not change model_name_or_path: "nova-lite/prod" # Base model path, do not change replicas: 4 # Number of compute instances for training, allowed values are 4, 8, 16 data_s3_path: "" # Customer data path output_s3_path: "" # Output artifact path, SageMaker HyperPod job-specific configuration - not compatible with standard SageMaker Training jobs ## MLFlow configs mlflow_tracking_uri: "" # Required for MLFlow mlflow_experiment_name: "my-lora-experiment" # Optional for MLFlow. Note: leave this field non-empty mlflow_run_name: "my-lora-run" # Optional for MLFlow. Note: leave this field non-empty ## Training specific configs training_config: max_length: 32768 # Maximum context window size (tokens). global_batch_size: 64 # Global batch size, allowed values are 16, 32, 64 trainer: max_epochs: 2 # Number of training epochs model: hidden_dropout: 0.0 # Dropout for hidden states, must be between 0.0 and 1.0 attention_dropout: 0.0 # Dropout for attention weights, must be between 0.0 and 1.0 ffn_dropout: 0.0 # Dropout for feed-forward networks, must be between 0.0 and 1.0 optim: lr: 1e-5 # Learning rate name: distributed_fused_adam # Optimizer algorithm, do not change adam_w_mode: true # Enable AdamW mode eps: 1e-06 # Epsilon for numerical stability weight_decay: 0.0 # L2 regularization strength, must be between 0.0 and 1.0 betas: # Adam optimizer betas, must be between 0.0 and 1.0 - 0.9 - 0.999 sched: warmup_steps: 10 # Learning rate warmup steps constant_steps: 0 # Steps at constant learning rate min_lr: 1e-6 # Minimum learning rate peft: peft_scheme: "lora" # Enable LoRA for parameter-efficient fine-tuning lora_tuning: loraplus_lr_ratio: 8.0 # LoRA+ learning rate scaling factor, must be between 0.0 and 100.0 alpha: 32 # Scaling factor for LoRA weights. Allowed values are 32, 64, 96, 128, 160 and 192 adapter_dropout: 0.01 # Regularization for LoRA parameters. Must be between 0.0 and 1.0 data_mixing: dataset_catalog: sft_text # Nova text dataset catalog sources: customer_data: percent: 50 # Percent of overall mix to draw from customer data nova_data: # The remainder will be drawn from Nova data. The categories below must add to 100 agents: 1 # autonomous decision-making, task completion, goal-oriented behavior in AI systems chat: 51 # Conversational exchanges demonstrating natural dialogue flow code: 8 # Programming examples and solutions spanning multiple languages rai: 1 # ethical AI principles, safety considerations, and responsible technology deployment instruction-following: 13 # precise task execution based on varying levels of user prompts and directives stem: 6 # science, technology, engineering, and mathematics content planning: 2 # sequences demonstrating strategic thinking and step-by-step task breakdown reasoning: 8 # logical problem-solving and analytical thinking demonstrations rag: 1 # retrieval-augmented generation examples translation: 9 # language translation tasks

Esempio di configurazione Nova 2.0

run: name: my-lora-sft-run model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: nova-lite-2/prod data_s3_path: s3://my-bucket-name/train.jsonl replicas: 4 output_s3_path: s3://my-bucket-name/outputs/ mlflow_tracking_uri: "" mlflow_experiment_name: "my-lora-sft-experiment" mlflow_run_name: "my-lora-sft-run" training_config: max_steps: 100 save_steps: 10 save_top_k: 5 max_length: 32768 global_batch_size: 32 reasoning_enabled: true lr_scheduler: warmup_steps: 15 min_lr: 1e-6 optim_config: lr: 1e-5 weight_decay: 0.0 adam_beta1: 0.9 adam_beta2: 0.95 peft: peft_scheme: "lora" lora_tuning: alpha: 64 lora_plus_lr_ratio: 64.0

Miscelazione di dati di testo Nova 2.0

data_mixing: dataset_catalog: sft_1p5_text_chat sources: customer_data: percent: 50 nova_data: agents: 1 baseline: 10 chat: 0.5 code: 10 factuality: 0.1 identity: 1 long-context: 1 math: 2 rai: 1 instruction-following: 13 stem: 0.5 planning: 10 reasoning-chat: 0.5 reasoning-code: 0.5 reasoning-factuality: 0.5 reasoning-instruction-following: 45 reasoning-math: 0.5 reasoning-planning: 0.5 reasoning-rag: 0.4 reasoning-rai: 0.5 reasoning-stem: 0.4 rag: 1 translation: 0.1

Miscelazione multimodale dei dati Nova 1.0

data_mixing: dataset_catalog: sft_mm sources: customer_data: percent: 50 nova_data: agents: 11 docs: 17 perception: 10 rag: 4 rai: 3 reasoning: 10 stem: 17 text: 10 video: 18

Miscelazione multimodale dei dati Nova 2.0

data_mixing: dataset_catalog: sft_1p5_mm_chat sources: customer_data: percent: 50 nova_data: charts: 1 chat: 38 code: 20 docs: 3 general: 2 grounding: 1 rag: 4 screenshot: 4 text: 8 translation: 4 video: 15

Checkpoint del modello

Punti di controllo Nova 1.0

  • PRE-TRAINED[nova-<micro/lite/pro>/pretraining-text-partial]: Checkpoint dopo la fase di pre-training di Nova a tasso di apprendimento costante, in cui il modello viene addestrato su trilioni di token di testo. [Risultato della fase 1]

  • MID-TRAINED[nova-<micro/lite/pro>/pretraining-text-full]: Text-only punto di controllo dopo tutte le fasi del pretraining e di metà allenamento di Nova con trilioni di token di testo. Usalo se non vuoi che il modello abbia visto dati multimodali. [Risultato della fase 3]

  • MID-TRAINED[nova-<lite/pro>/pretraining-mm-full]: Checkpoint dopo tutte le fasi del pretraining e della fase intermedia di Nova, compresi i dati multimodali, con trilioni di token. [Risultato della fase 3 con dati multimodali]

  • FINALE [nova-<micro/lite/pro>/prod]: Checkpoint finale completamente allineato che ha superato tutte le fasi preliminari e successive all'allenamento. [Risultato della fase 4]

Checkpoint Nova 2.0

  • PRE-TRAINED[nova-lite-2/pretraining-text-RD]: Checkpoint dopo un tasso di apprendimento costante e fasi graduali in cui il modello viene addestrato su trilioni di token. [Esito della fase 2]

  • MID-TRAINED[nova-lite-2/pretraining-text-CE]: Consente ai clienti con volumi intermedi di dati non strutturati di introdurre i propri dati con un tasso di apprendimento più conservativo rispetto alla formazione preliminare, assorbendo le conoscenze specifiche del dominio ed evitando una catastrofica dimenticanza. [Risultato della fase 3]

  • FINALE [nova-lite-2/prod]: Checkpoint finale completamente allineato che ha superato tutte le fasi preliminari e successive all'allenamento. [Risultato della fase 4]

Fasi di formazione:

  • Fase 1: PT Ckpt, pre-formazione iniziale con tasso di apprendimento costante

  • Fase 2: PT Ckpt, riduzione del tasso di apprendimento

  • Fase 3: PT Ckpt, formazione sull'estensione del contesto

  • Fase 4: istruzione successiva all'allineamento e formazione sulla sicurezza

Approcci formativi

Guida alla selezione degli approcci formativi
Tipo di dati Volume di dati Esegui Con Checkpoint
Large-scale dati di dominio grezzi non strutturati (documenti, log, articoli, codice, ecc.) Token 1T+ Continua Pre-Training Fine del tasso di apprendimento costante (CLR)
Large-scale dati di dominio grezzi non strutturati Oltre 100 miliardi di token Mid-Training Fine del CLR
Volumi più piccoli di dati grezzi non strutturati; tracce di ragionamento strutturato/dati CoT Token 1B+ Mid-Training Modello base Nova
Dimostrazioni strutturate (coppie input-output di alta qualità, istruzioni dettagliate sulle attività, dialoghi a più turni) Oltre 1.000 esempi Supervisionato Fine-Tuning (SFT) Modello base Nova

Pre-Requisites prima di iniziare

  • Partiamo dal presupposto che tu abbia già configurato un cluster SMHP con un gruppo di istanze limitate (RIG) con capacità attiva. In caso contrario, fai riferimento qui per completare la configurazione del cluster SMHP e del RIG [Link al documento, link al workshop] https://catalog.us-east-1.prod.workshops.aws/workshops/dcac6f7a-3c61-4978-8344-7535526bf743/en-US

  • Sono necessarie istanze EC2 p5.48xlarge per eseguire questa ricetta. Il numero minimo di istanze richieste per eseguire questa ricetta in modo efficiente è il seguente:

    • Nova Lite 2.0 - 4 p5.48xlarge

    • Nova Lite 1.0 — 4 p5.48xlarge

    • Nova Micro 1.0 — 4 p5.48xlarge

    • Nova Pro 1.0 — 6 p5.48xlarge

  • Installa la SageMaker HyperPod CLI specifica di Forge utilizzando le istruzioni fornite qui https://catalog.us-east-1.prod.workshops.aws/workshops/dcac6f7a-3c61-4978-8344-7535526bf743/en-US

  • Conferma di poterti connettere al tuo cluster utilizzando hyperpod get-clusters

    • Nota che questo comando elencherà tutti i cluster SMHP nel tuo account

  • Verifica che i tuoi dati di formazione e, facoltativamente, di convalida, siano disponibili in un bucket S3 accessibile dal ruolo di esecuzione del tuo cluster SMHP. Per la preparazione dei dati, consulta la sezione successiva.

  • AWS CLI Completare la configurazione. Se non hai completato la configurazione, segui la guida qui sotto.

  • Verifica: dopo aver completato la configurazione, conferma di poter eseguire correttamente i comandi seguenti

    aws sagemaker describe-cluster --cluster-name <cluster-name> --region <region> hyperpod connect-cluster --cluster-name cluster-name

Un approccio sistematico per ottenere SFT di successo

  • Preparazione dei dati: segui le linee guida stabilite per creare, pulire o riformattare i set di dati nella struttura richiesta. Assicurati che gli input, gli output e le informazioni ausiliarie (come tracce di ragionamento o metadati) siano allineati e formattati correttamente.

  • Configurazione del training: definisci come verrà addestrato il modello. Quando si utilizza Amazon SageMaker HyperPod, questa configurazione è scritta in un file di ricette YAML che include:

    • Percorsi di origine dati (set di dati di addestramento e convalida)

    • Iperparametri chiave (numero di fasi di formazione, velocità di apprendimento, dimensione del batch)

    • Componenti opzionali (parametri di allenamento distribuiti, ecc.)

    • Impostazione del mix dei dati (definisce le proporzioni delle categorie di dati del cliente e di Nova)

  • Ottimizza i parametri SFT Hyper Parameters: i valori dei parametri delle ricette SFT che consigliamo sono un ottimo punto di partenza e una scelta affidabile. Se desideri ottimizzarli ulteriormente per il tuo caso d'uso, esegui più esecuzioni SFT con diverse combinazioni di parametri e scegli quella migliore. Puoi selezionare le combinazioni di parametri seguendo il metodo di Hyper-Parameter ottimizzazione che preferisci. Un approccio semplice consiste nel variare il valore di un parametro (default*0.5, default, default*2) mantenendo l'altro valore predefinito per gli altri parametri, ripetere l'operazione per ogni parametro che si desidera ottimizzare e iterare se necessario. I parametri più rilevanti per LoRa sono la velocità di apprendimento, l'alfa (parametro di scala), il numero di epoche da allenare e le fasi di riscaldamento; per il rango completo si tratta principalmente del tasso di apprendimento, del numero di epoche e delle fasi di riscaldamento.

Sequenziamento degli esperimenti e miscelazione dei dati

  • Se disponi solo di dati SFT (train/dev/test) per una serie di attività e ti interessano solo le prestazioni del test su queste attività

    • Esegui SFT senza mixare nulla su [FINAL] Nova checkpoint. Utilizzate gli iperparametri SFT predefiniti e, opzionalmente, ottimizzateli per il vostro caso d'uso. Monitora le metriche di convalida, and/or valuta i checkpoint intermedi per set di dati più grandi.

  • Se disponi solo di dati SFT (train/dev/test) per una serie di attività e ti interessano le prestazioni dei test su queste attività e i benchmark generali nel dominio di interesse

    • Inizia eseguendo SFT con la combinazione di dati Nova su un checkpoint pre-allenamento (PRE-TRAINED o MID-TRAINED checkpoint, non FINAL). L'utilizzo di un checkpoint intermedio consente al modello di integrare meglio i dati personalizzati con i dati proprietari di Nova mantenendo al contempo solide funzionalità generali.

    • Esegui cicli di formazione SFT più brevi combinando una quantità variabile di dati Nova (ad esempio 10%, 25%, 50%, 75%) e selezioni di categorie di dati Nova che si adattano al tuo caso d'uso (ad esempio, scegli le istruzioni per categoria se ti interessa la capacità generale di seguire le istruzioni). Monitora le metriche di convalida e valuta se la combinazione aiuta le prestazioni rispetto ai benchmark generali. Seleziona il mix di formazione e il punto di riferimento che consentono di ottenere la migliore combinazione tra prestazioni relative all'attività svolta e prestazioni generali. A seconda del caso d'uso, sia l'attività che le prestazioni generali possono essere ulteriormente migliorate utilizzando il reinforcement fine tuning (RFT).

Preparare il set di dati per SFT

Nova 1.0: la preparazione dei dati è descritta in https://docs.aws.amazon.com/sagemaker/latest/dg/nova-fine-tune.html

Nova 2.0: usa il formato API Converse come per Nova 1.0. https://docs.aws.amazon.com/bedrock/latest/userguide/conversation-inference-call.html Il formato dati Nova 2.0 può contenere campi di ragionamento aggiuntivi: https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ReasoningContentBlock.html

Il contenuto del ragionamento cattura le fasi di pensiero intermedie del modello prima di generare una risposta finale. A assistant sua volta, usa il reasoningContent campo per includere tracce di ragionamento. Usa testo semplice per motivare i contenuti, evita i tag di markup come <thinking> e a </thinking> meno che non siano specificamente richiesti dalla tua attività e assicurati che il contenuto di ragionamento sia chiaro e pertinente al processo di risoluzione dei problemi.

Toolkit di intelligenza artificiale responsabile e moderazione dei contenuti

Impostazioni di moderazione dei contenuti: i clienti di Nova Forge hanno accesso alle impostazioni di moderazione dei contenuti personalizzabili (CCMS) per i modelli Nova Lite 1.0 e Pro 1.0. Il CCMS consente di regolare i controlli di moderazione dei contenuti per allinearli ai requisiti aziendali specifici, mantenendo al contempo le principali misure di protezione dell'IA responsabile. Per determinare se il tuo caso d'uso aziendale è idoneo per il CCMS, contatta il tuo account manager di Amazon Web Services.

Nova Forge fornisce un kit di strumenti per l'IA responsabile che include dati di formazione, benchmark di valutazione e controlli di runtime per aiutarti ad allineare i tuoi modelli alle linee guida sull'IA responsabile di Nova.

Dati di formazione: la categoria «RAI» nella combinazione dei dati contiene casi e scenari che enfatizzano i principi dell'IA responsabile, le considerazioni sulla sicurezza e l'implementazione responsabile della tecnologia. Utilizzali per allineare i tuoi modelli in modo responsabile durante la fase preliminare continua.

Valutazioni: sono disponibili attività di benchmark per testare la capacità del modello di rilevare e rifiutare contenuti inappropriati, dannosi o errati. Usa queste valutazioni per misurare la differenza tra le prestazioni del modello base e le prestazioni del tuo modello personalizzato.

Controlli di runtime: per impostazione predefinita, il runtime di Nova controlla le risposte moderate del modello durante l'inferenza. Per modificare questi controlli in base al tuo caso aziendale specifico, richiedi le Impostazioni di moderazione dei contenuti personalizzabili (CCMS) contattando il tuo account manager di Amazon Web Services.

Responsabilità condivisa per la sicurezza

La sicurezza è una responsabilità condivisa tra Amazon Web Services e i nostri clienti. La modifica del modello base o l'utilizzo di una formazione preliminare continua per migliorare le prestazioni in un caso d'uso specifico può influire sulla sicurezza, sull'equità e su altre proprietà del nuovo modello.

Utilizziamo un solido metodo di adattamento per ridurre al minimo le modifiche alla sicurezza, all'equità e ad altre protezioni integrate nei nostri modelli di base, riducendo al minimo l'impatto sulle prestazioni del modello per le attività per le quali il modello non è stato personalizzato.

Sei responsabile per:

  • End-to-end test delle loro applicazioni su set di dati rappresentativi dei loro casi d'uso

  • Decidere se i risultati dei test soddisfano le loro specifiche aspettative di sicurezza, equità e altre proprietà, nonché l'efficacia complessiva

Per ulteriori informazioni, consulta la Guida all'uso responsabile dell'IA di Amazon Web Services, la Politica sull'IA responsabile di Amazon Web Services, la Politica sull'uso AWS accettabile e i Termini di AWS servizio per i servizi che intendi utilizzare.

Impostazioni di moderazione dei contenuti personalizzabili (CCMS)

Il CCMS consente di adattare i controlli in base ai requisiti aziendali mantenendo i controlli essenziali e non configurabili che garantiscono un uso responsabile dell'IA.

Queste impostazioni consentono la generazione di contenuti attraverso tre configurazioni disponibili:

  • Solo sicurezza

  • Sicurezza, contenuti sensibili ed equità combinati

  • Tutte le categorie combinate

Le quattro categorie di moderazione dei contenuti sono:

  1. Sicurezza: include attività pericolose, armi e sostanze controllate

  2. Contenuti sensibili: includono volgarità, nudità e bullismo

  3. Equità: affronta pregiudizi e considerazioni culturali

  4. Sicurezza: coinvolge criminalità informatica, malware e contenuti dannosi

Indipendentemente dalla configurazione CCMS, Amazon Nova applica controlli essenziali e non configurabili per garantire un uso responsabile dell'IA, come i controlli per prevenire danni ai bambini e preservare la privacy.

Raccomandazioni per l'utilizzo del CCMS

Quando si utilizza il CCMS, si consiglia di utilizzare il Continuous Pre Training (CPT) e di iniziare da un checkpoint di allineamento pre-RAI (PRE-TRAINING-Early, PRE-TRAINING-Mid, o PRE-TRAINING-Final) anziché dal checkpoint. GA/FINAL Questi checkpoint non sono stati sottoposti a formazione sulla sicurezza né sono stati indirizzati verso comportamenti RAI specifici, il che consente di personalizzarli in modo più efficiente in base ai requisiti di moderazione dei contenuti.

Suggerimento: quando utilizzi CCMS con miscelazione dei dati, valuta la possibilità di modificare la percentuale della categoria «rai» nella tua configurazione nova_data per allinearla ai tuoi requisiti specifici di moderazione dei contenuti.

Disponibilità

Il CCMS è attualmente disponibile per i clienti approvati che utilizzano:

  • Modelli Nova Lite 1.0 e Pro 1.0

  • Inferenza Amazon Bedrock On-Demand

  • La regione us-east-1 (Virginia settentrionale)

Per abilitare il CCMS per i tuoi modelli Forge, contatta il tuo account manager Amazon Web Services.

Metodi di valutazione

Prerequisiti

  • Verifica l'URI S3 dal manifest.json file del tuo lavoro di formazione (per modelli addestrati)

  • Set di dati di valutazione caricato su S3 nel formato corretto

  • Percorso S3 di output per i risultati della valutazione

Benchmark predefiniti: utilizza benchmark predefiniti per convalidare le prestazioni nelle attività generali. Per maggiori dettagli, consulta qui: https://docs.aws.amazon.com/sagemaker/latest/dg/nova-hp-evaluate.html

Porta i tuoi dati

Puoi anche fornire i tuoi dati personalizzati formattandoli nel formato seguente e quindi utilizzando i contenitori indicati di seguito per ottenere risultati di inferenza insieme alle probabilità logaritmiche per le calibrazioni, se necessario.

Crea jsonl per attività con la seguente struttura:

{ "metadata": "{key:4, category:'apple'}", "system": "arithmetic-patterns, please answer the following with no other words: ", "query": "What is the next number in this series? 1, 2, 4, 8, 16, ?", "response": "32" }

Gli output generati durante la fase di inferenza del lavoro di valutazione avranno la seguente struttura:

{ "prompt": "[{'role': 'system', 'content': 'arithmetic-patterns, please answer the following with no other words: '}, {'role': 'user', 'content': 'What is the next number in this series? 1, 2, 4, 8, 16, ?'}]", "inference": "['32']", "gold": "32", "metadata": "{key:4, category:'apple'}" }

Descrizioni dei campi:

  • prompt: input formattato inviato al modello

  • inference: risposta generata dal modello

  • gold: Risposta corretta prevista dal set di dati di input, campo di risposta dall'input

  • metadata: metadati opzionali trasmessi dall'input

Prepara la configurazione di valutazione

Comando per avviare il processo di valutazione. "--override-parameters"Consente di modificare qualsiasi voce della ricetta.

hyperpod start-job -n kubeflow \ --recipe evaluation/nova/nova_micro_p5_48xl_bring_your_own_dataset_eval \ --override-parameters '{ "instance_type": "p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-evaluation-repo:SM-HP-Eval-latest", "recipes.run.name": "<your-eval-job-name>", "recipes.run.model_name_or_path": "<checkpoint-s3-uri>", "recipes.run.output_s3_path": "s3://<your-bucket>/eval-results/", "recipes.run.data_s3_path": "s3://<your-bucket>/eval-data.jsonl" }'

Best practice

  • Dai priorità alla qualità dei dati rispetto al volume: High-quality dati di formazione diversificati e rappresentativi sono più preziosi di grandi quantità di dati di bassa qualità.

  • Includi la categoria «ragionamento-istruzione-seguire»: quando usi la combinazione dei dati, includi la categoria «ragionamento-istruzione-seguire» per mantenere solide prestazioni generiche in tutte le attività.

  • Usa i tassi di apprendimento predefiniti: inizia con i tassi di apprendimento predefiniti (1e-5 per LoRa, 5e-6 per SFT di livello completo) e modificali solo se necessario in base alle metriche di convalida.

  • Miscelazione dei dati Balance Nova: combina un massimo del 50% di dati Nova per un equilibrio ottimale tra latenza e prestazioni. Percentuali più elevate possono migliorare le capacità generali ma possono aumentare i tempi di formazione.

  • Monitora le metriche di convalida: valuta regolarmente i checkpoint intermedi durante la formazione per rilevare precocemente il sovradattamento o il degrado delle prestazioni.

  • Esegui test su set di dati rappresentativi: assicurati che i set di dati di valutazione rappresentino accuratamente i casi d'uso in produzione per una valutazione significativa delle prestazioni.

Prepara Training Job Config

Hyper Parametri

Set completo di iperparametri diversi dalla miscelazione dei dati:

## Run config run: name: my-lora-sft-run model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: nova-lite-2/prod data_s3_path: s3://my-bucket-name/train.jsonl # SageMaker HyperPod (SMHP) only and not compatible with SageMaker Training jobs. Note replace my-bucket-name with your real bucket name for SMHP job replicas: 4 # Number of compute instances for training, allowed values are 4, 8, 16, 32 output_s3_path: s3://my-bucket-name/outputs/ # Output artifact path (Hyperpod job-specific; not compatible with standard SageMaker Training jobs). Note replace my-bucket-name with your real bucket name for SMHP job ## MLFlow configs mlflow_tracking_uri: "" # Required for MLFlow mlflow_experiment_name: "my-lora-sft-experiment" # Optional for MLFlow. Note: leave this field non-empty mlflow_run_name: "my-lora-sft-run" # Optional for MLFlow. Note: leave this field non-empty training_config: max_steps: 100 # Maximum training steps. Minimal is 4. save_steps: 10 # This parameter suggests after how many training steps the checkpoints will be saved. Should be less than or equal to max_steps(please override this value with a numerical value equal or less than max_steps value; min: 4) save_top_k: 5 # Keep top K best checkpoints. Note supported only for SageMaker HyperPod jobs. Minimal is 1. max_length: 32768 # Sequence length (options: 8192, 16384, 32768 [default], 65536) global_batch_size: 32 # Golbal batch size (options: 32, 64, 128) reasoning_enabled: true # If data has reasoningContent, set to true; otherwise False lr_scheduler: warmup_steps: 15 # Learning rate warmup steps. Recommend 15% of max_steps min_lr: 1e-6 # Minimum learning rate, must be between 0.0 and 1.0 optim_config: # Optimizer settings lr: 1e-5 # Learning rate, must be between 0.0 and 1.0 weight_decay: 0.0 # L2 regularization strength, must be between 0.0 and 1.0 adam_beta1: 0.9 # Exponential decay rate for first-moment estimates, must be between 0.0 and 1.0 adam_beta2: 0.95 # Exponential decay rate for second-moment estimates, must be between 0.0 and 1.0 peft: # Parameter-efficient fine-tuning (LoRA) peft_scheme: "lora" # Enable LoRA for PEFT lora_tuning: alpha: 64 # Scaling factor for LoRA weights ( options: 32, 64, 96, 128, 160, 192), lora_plus_lr_ratio: 64.0 # LoRA+ learning rate scaling factor (0.0–100.0)

I parametri più rilevanti per LoRa sono la velocità di apprendimento, l'alfa (parametro di scala), il numero di epoche da allenare e le fasi di riscaldamento; per il rango completo si tratta principalmente del tasso di apprendimento, del numero di epoche e delle fasi di riscaldamento. Le ricette sono precompilate con i valori predefiniti consigliati.

Imposta il blocco di miscelazione dei dati

Aggiungi la sezione data_mixing alla tua ricetta con la distribuzione percentuale appropriata tra le categorie di set di dati.

Di seguito descriviamo ogni categoria di dati Nova disponibile.

Configurazione Nova 1.0 con miscelazione dei dati

data_mixing: dataset_catalog: sft_text # Nova text dataset catalog sources: customer_data: percent: 50 # Percent of overall mix to draw from customer data nova_data: # The remainder will be drawn from Nova data. The categories below must add to 100 agents: 1 # autonomous decision-making, task completion, goal-oriented behavior in AI systems chat: 51 # Conversational exchanges demonstrating natural dialogue flow code: 8 # Programming examples and solutions spanning multiple languages rai: 1 # ethical AI principles, safety considerations, and responsible technology deployment instruction-following: 13 # precise task execution based on varying levels of user prompts and directives stem: 6 # Technical content covering science, technology, engineering, and mathematics planning: 2 # Sequences demonstrating strategic thinking and step-by-step task breakdown reasoning: 8 # Logical deduction, critical thinking, and analytical problem-solving scenarios rag: 1 # combining retrieved external knowledge with generated responses translation: 9 # Multi-language content pairs showing accurate translation

Cosa significano queste categorie?

Categorie di dati di testo Nova 1.0
Nome della categoria Dettagli informativi
agenti Dati di formazione incentrati sul processo decisionale autonomo, sul completamento delle attività e sul comportamento orientato agli obiettivi nei sistemi di intelligenza artificiale
chat Scambi conversazionali che dimostrano un flusso di dialogo naturale, il mantenimento del contesto e interazioni sociali appropriate
code Esempi e soluzioni di programmazione in più lingue, scenari di debug e best practice per lo sviluppo di software
pioggia Casi e scenari che enfatizzano i principi etici dell'IA, le considerazioni sulla sicurezza e l'implementazione responsabile della tecnologia
seguire le istruzioni Esempi di esecuzione precisa delle attività sulla base di diversi livelli di istruzioni e direttive dell'utente
radice Contenuti tecnici riguardanti scienza, tecnologia, ingegneria e matematica, inclusi concetti teorici e di risoluzione dei problemi
pianificazione Sequenze che dimostrano il pensiero strategico, la suddivisione dettagliata delle attività e l'allocazione efficiente delle risorse
ragionamento Scenari di deduzione logica, pensiero critico e risoluzione analitica dei problemi con chiare catene di ragionamento
straccio Esempi di combinazione efficace delle conoscenze esterne recuperate con le risposte generate per fornire informazioni accurate e contestuali
traduzione Multi-language coppie di contenuti che mostrano una traduzione accurata preservando il contesto, il tono e le sfumature culturali

Mixaggio multimodale dei dati (Nova 1.0)

data_mixing: dataset_catalog: sft_mm # Nova multi-modal dataset catalog sources: customer_data: percent: 50 # Percent of overall mix to draw from customer data nova_data: # The remainder will be drawn from Nova data. The categories below must add to 100 agents: 11 # Combining visual and textual inputs docs: 17 # Document-centric data combining text, images, layouts, and formatting perception: 10 # Visual-linguistic pairs t rag: 4 # Combining retrieved external knowledge with generated responses rai: 3 # Ethical AI principles, safety considerations, and responsible technology deployment reasoning: 10 # Logical analysis, problem-solving, and drawing conclusions stem: 17 # Technical content pairing visual elements (diagrams, charts, equations) with text text: 10 # A balanced pool of contextual text data create from the text-only SFT datasets video: 18 # Video datasets

Cosa significano queste categorie?

Categorie di dati multimodali Nova 1.0
Nome della categoria Dettagli informativi
agenti Coppie di formazione che combinano input visivi e testuali che dimostrano come i sistemi di intelligenza artificiale dovrebbero interpretare, agire e interagire con le informazioni ambientali multisensoriali
documenti Document-centric dati che combinano testo, immagini, layout e formattazione per addestrare i modelli a comprendere ed elaborare vari tipi e strutture di documenti per aiutare con concetti come il riconoscimento dei contenuti PDF
percezione Visual-linguistic combina modelli didattici per descrivere, interpretare e ragionare accuratamente su immagini, video e altri input visivi in linguaggio naturale
straccio Esempi di recupero multimodale che mostrano come combinare e fare riferimento efficacemente a conoscenze esterne visive e testuali per generare risposte accurate e contestuali
ragionamento Casi che combinano elementi visivi e testuali che dimostrano l'analisi logica, la risoluzione dei problemi e il trarre conclusioni in diverse modalità
radice Contenuti tecnici che combinano elementi visivi (diagrammi, grafici, equazioni) con testo per insegnare concetti scientifici, matematici e tecnici e per la risoluzione dei problemi
testo Un pool bilanciato di dati testuali contestuali creato dalle categorie di set di dati SFT Nova di solo testo per fornire capacità generaliste
video Motion-based contenuto visivo incentrato sulla comprensione temporale e sulla comprensione narrativa visiva sequenziale

Configurazione Nova 2.0 con miscelazione dei dati

data_mixing: dataset_catalog: sft_1p5_text_chat # Nova text dataset catalog sources: customer_data: percent: 50 # Percent of overall mix to draw from customer data nova_data: # The remainder will be drawn from Nova data. The categories below must add to 100 agents: 1 # autonomous decision-making, task completion, goal-oriented behavior in AI systems baseline: 10 # [New in Nova 1.5] chat: 0.5 # Conversational exchanges demonstrating natural dialogue flow code: 10 # Programming examples and solutions spanning multiple languages factuality: 0.1 # [New in Nova 1.5] identity: 1 # [New in Nova 1.5] long-context: 1 # [New in Nova 1.5] math: 2 # [New in Nova 1.5] rai: 1 # ethical AI principles, safety considerations, and responsible technology deployment instruction-following: 13 # precise task execution based on varying levels of user prompts and directives stem: 0.5 # Technical content covering science, technology, engineering, and mathematics planning: 10 # Sequences demonstrating strategic thinking and step-by-step task breakdown reasoning-chat: 0.5 reasoning-code: 0.5 reasoning-factuality: 0.5 reasoning-instruction-following: 45 reasoning-math: 0.5 reasoning-planning: 0.5 reasoning-rag: 0.4 reasoning-rai: 0.5 reasoning-stem: 0.4 rag: 1 # combining retrieved external knowledge with generated responses translation: 0.1

Cosa significano queste categorie?

Categorie di dati di testo Nova 2.0
Nome della categoria Dettagli informativi
agenti Dati di formazione incentrati sul processo decisionale autonomo, sul completamento delle attività e sul comportamento orientato agli obiettivi nei sistemi di intelligenza artificiale
della deviazione del bias Dati linguistici fondamentali incentrati sulla comprensione generale, sulla comunicazione di base e sulle capacità linguistiche di base
chat Scambi conversazionali che dimostrano un flusso di dialogo naturale, il mantenimento del contesto e interazioni sociali appropriate
code Codice sorgente di programmazione, documentazione e discussioni tecniche da vari linguaggi e piattaforme di programmazione.
fattualità Materiali di riferimento e informazioni verificate incentrati sull'accuratezza, sulla convalida della fonte e sulla valutazione della verità
identità Strutture di personalità e modelli comportamentali incentrati su tratti caratteriali, valori e stili di interazione coerenti
contesto lungo Testi estesi e narrazioni complesse incentrate sul mantenimento della coerenza e della pertinenza nel corso di lunghi scambi
matematica Contenuti matematici tra cui libri di testo, problemi, soluzioni e discussioni matematiche.
pioggia Casi e scenari che enfatizzano i principi etici dell'IA, le considerazioni sulla sicurezza e l'implementazione responsabile della tecnologia
seguire le istruzioni Esempi di esecuzione precisa delle attività sulla base di diversi livelli di istruzioni e direttive dell'utente
radice Contenuti tecnici riguardanti scienza, tecnologia, ingegneria e matematica, inclusi concetti teorici e di risoluzione dei problemi
pianificazione Sequenze che dimostrano il pensiero strategico, la suddivisione dettagliata delle attività e l'allocazione efficiente delle risorse
chat di ragionamento Scenari di dialogo analitico incentrati su discussioni logiche e flussi di conversazione strutturati
codice di ragionamento Sfide di programmazione e problemi algoritmici incentrati sullo sviluppo sistematico di soluzioni
ragionamento-fattualità Scenari di valutazione delle informazioni incentrati su processi di valutazione e verifica critici
ragionamento-istruzione-seguire Analisi complessa delle attività incentrata sull'interpretazione sistematica e sull'esecuzione metodica
ragionamento matematico Scenari matematici di risoluzione dei problemi incentrati sulla progressione logica e sulle strategie di soluzione
pianificazione del ragionamento Scenari decisionali strategici incentrati sull'approccio sistematico al raggiungimento degli obiettivi
ragionamento Scenari di recupero e sintesi delle informazioni incentrati sulla comprensione del contesto e sulla relativa applicazione
ragionamento-rai Scenari decisionali etici incentrati sulla valutazione sistematica della sicurezza e dell'equità dell'IA
stelo di ragionamento Scenari scientifici di risoluzione dei problemi incentrati sull'analisi metodica e sullo sviluppo di soluzioni
straccio Esempi di combinazione efficace delle conoscenze esterne recuperate con le risposte generate per fornire informazioni accurate e contestuali
traduzione Multi-language coppie di contenuti che mostrano una traduzione accurata preservando il contesto, il tono e le sfumature culturali

Mixaggio multimodale dei dati (Nova 2.0)

data_mixing: dataset_catalog: sft_1p5_mm_chat # Nova text dataset catalog sources: customer_data: percent: 50 # Percent of overall mix to draw from customer data nova_data: # The remainder will be drawn from Nova data. The categories below must add to 100 charts: 1 chat: 38 code: 20 docs: 3 general: 2 grounding: 1 rag: 4 screenshot: 4 text: 8 translation: 4 video: 15

Nota: Nova 2.0 include il supporto per le categorie di dati video che non è disponibile in Nova 1.0.

Cosa significano queste categorie?

Categorie di dati multimodali Nova 2.0
Nome della categoria Dettagli informativi
grafici Rappresentazioni visive e descrizioni di grafici, diagrammi a torta, grafici a barre, grafici a linee e altre visualizzazioni statistiche per aiutare il modello a comprendere e comunicare informazioni quantitative in modo efficace
chat Dati conversazionali abbinati a elementi visivi incentrati sulla comprensione del dialogo contestuale e sulle interazioni basate su immagini
code Interfacce di programmazione e ambienti di sviluppo incentrati sull'interpretazione visiva del codice, schermate IDE e diagrammi tecnici
documenti Document-centric dati che combinano testo, immagini, layout e formattazione per addestrare i modelli a comprendere ed elaborare vari tipi e strutture di documenti per aiutare con concetti come il riconoscimento dei contenuti PDF
general Contenuti visivo-testuali diversificati incentrati su un'ampia comprensione di immagini, grafica e testo descrittivo di accompagnamento
grounding Materiali di riferimento visivi e immagini etichettate incentrati sul collegamento dei concetti linguistici alle rappresentazioni visive del mondo reale
straccio Esempi di recupero multimodale che mostrano come combinare e fare riferimento efficacemente a conoscenze esterne visive e testuali per generare risposte accurate e contestuali
screenshot Acquisizioni delle interfacce applicative e visualizzazione digitale delle immagini incentrate sulla comprensione delle interfacce software e delle interazioni digitali
testo Un pool bilanciato di dati di testo contestuali creato dalle categorie di set di dati SFT Nova di solo testo per fornire capacità generaliste
traduzione Cross-language contenuto visivo incentrato sull'interpretazione multilingue del testo nelle immagini e negli elementi visivi culturali
video Motion-based contenuti visivi incentrati sulla comprensione temporale e sulla comprensione visivo-narrativa sequenziale

Come lanciare un lavoro

Puoi anche fare riferimento al README, se hai solo bisogno dei dettagli essenziali per dare il via alla prima esecuzione di SFT.

Informazioni sul contenitore:

Informazioni sul contenitore e comandi di avvio
Modello Tecnica Sottocategoria URI immagine Comando Hyperpod Launcher
Nova 1.0 Fine-tuning FT/SINISTRA 708977205387.dkr.ecr.us-east-1.amazonaws. com/nova-ottimizzazione-repo: SM-HP-SFT-latest hyperpod start-job\ -n kubeflow\ --recipe fine-tuning/nova/nova_1_0/nova_micro/SFT/nova_micro_1_0_p5_gpu_sft\ --override-parameters '{«instance_type»: «ml.p5.48xlarge», «contenitore»: «708977205387.dkr.ecr.us-east-1.amazonaws. com/novaSM-HP-SFT-latest-fine-tune-repo: "} '
Nuova 1.0 Fine-tuning SFT con miscelazione dei dati 708977205387.dkr.ecr.us-east-1.amazonaws. com/nova-ottimizzazione-repo: HP-SFT-DATAMIX hyperpod start-job\ -n kubeflow\ --recipe fine-tuning/nova/forge/nova_1_0/nova_micro/SFT/nova_micro_1_0_p5_gpu_sft_text_with_datamix\ --override-parameters '{«instance_type»: «ml.p5.48xlarge», «contenitore»: «708977205387.dkr.ecr.us-east-1.amazonaws. com/nova-ottimizzazione-repo: HP-SFT-DATAMIX "} '
Nuova 2.0 Fine-tuning Testo SFT (con o senza combinazione di dati) 708977205387.dkr.ecr.us-east-1.amazonaws. com/nova-ottimizzazione-repo: SM-HP-SFT-V2-latest hyperpod start-job\ -n kubeflow\ --recipe fine-tuning/nova/forge/nova_2_0/nova_lite/SFT/nova_lite_2_0_p5_gpu_sft_text_with_datamix\ --override-parameters '{«instance_type»: «ml.p5.48xlarge», «contenitore»: «708977205387.dkr.ecr.us-east-1.amazonaws. com/nova-ottimizzazione-repo: SM-HP-SFT-V2-latest "} '
Nuova 2.0 Fine-tuning SFT MM (con o senza miscelazione dei dati) 708977205387.dkr.ecr.us-east-1.amazonaws. com/nova-ottimizzazione-repo: SM-HP-SFT-V2-latest hyperpod start-job\ -n kubeflow\ --recipe fine-tuning/nova/forge/nova_2_0/nova_lite/SFT/nova_lite_2_0_p5_gpu_sft_mm_with_datamix\ --override-parameters '{«instance_type»: «ml.p5.48xlarge», «contenitore»: «708977205387.dkr.ecr.us-east-1.amazonaws. com/nova-ottimizzazione-repo: SM-HP-SFT-V2-latest "} '

Una volta completata la configurazione, partendo dalla radice del repository sagemaker-hyperpod-cli, vai alla cartella delle ricette nova sft predefinita

  • src/hyperpod_clicdsagemaker_hyperpod_recipes/recipes_collection///- /forge/ recipes/fine tuning/nova

  • Qui puoi scegliere se eseguire le ricette nova 1 o nova 2 in base alla scelta del modello base.

Per Nova 1.0 sft:

  • Se desideri utilizzare un normale sft job, dovresti essere in grado di vedere una ricetta in questa cartella

    • cd///recipes/fine- src/hyperpod_cli sagemaker_hyperpod_recipes/recipes_collectiontuning/nova_1_0/nova_lite/SFT e quindi dovresti essere in grado di vedere una ricetta in questa cartella chiamata nova_lite_1_0_p5x8_gpu_sft.yaml

  • Se desideri usare datamixing sft Job, puoi accedere alla cartella delle ricette di sft Forge

    • cd//recipes/fine-/src/hyperpod_clisagemaker_hyperpod_recipes/recipes_collectiontuning/novaforge/nova_1_0/nova_lite/SFT e dovresti riuscire a vedere una ricetta in questa cartella chiamata: nova_lite_1_0_p5x8_gpu_sft_with_datamix.yaml

  • Modifica le sezioni della ricetta richieste dal lavoro come name, data_s3_path, validation_s3_path, output_s3_path e MAX_STEPS. Poiché stiamo eseguendo sft, la nozione di epoche non si applica qui.

Per Nova 2.0 sft:

  • Se desideri utilizzare un normale sft job, dovresti essere in grado di vedere una ricetta in questa cartella

    • cd///recipes/fine- src/hyperpod_cli sagemaker_hyperpod_recipes/recipes_collectiontuning/nova_2_0/nova_lite/SFT e quindi dovresti essere in grado di vedere una ricetta in questa cartella chiamata nova_lite_2_0_p5x8_gpu_sft.yaml

  • Se desideri usare datamixing sft Job, puoi accedere alla cartella delle ricette di sft Forge

    • cd//recipes/fine-/src/hyperpod_clisagemaker_hyperpod_recipes/recipes_collectiontuning/novaforge/nova_2_0/nova_lite/SFT e dovresti riuscire a vedere una ricetta in questa cartella chiamata: nova_lite_2_0_p5x8_gpu_sft_with_datamix.yaml

  • Modifica le sezioni della ricetta richieste dal lavoro come name, data_s3_path, validation_s3_path, output_s3_path e max_steps. Dato che stiamo eseguendo sft, la nozione di epoche non si applica qui.

La configurazione di miscelazione dei dati avrà lo stesso aspetto, ma con una sezione aggiuntiva di miscelazione dei dati nella parte inferiore simile a questa

data_mixing: dataset_catalog: sft_text_lite sources: nova_data: # percent inputs for Nova data must sum to 100%; use 0% if you want to exclude a data grouping agents: 20 business-and-finance: 20 scientific: 20 code: 20 factual-and-news: 20 longform-text: 0 health-and-medicine: 0 humanities-and-education: 0 legal: 0 math: 0 additional-languages: 0 social-and-personal-interest: 0 entertainment: 0 reasoning: 0 other: 0 tables: 0 customer_data: # percent input of customer data. 100 = use only customer data, 0 = use only the nova_data mix above percent: 25

Qui ci sono due categorie di dati di primo livello:

  • nova_data: Questa è l'effettiva combinazione dei dati ed è suddivisa in ancora più categorie. È imperativo che si sommino al 100%

    • Di seguito è riportata una ripartizione completa di queste categorie, incluso il numero di token

  • customer_data: Questi sono i dati di allenamento a cui si fa riferimento nella chiave data_s3_path nella parte superiore di yaml. La percentuale fornita qui determina quale sarà la percentuale risultante per nova_data. Ad esempio, nelle selezioni percentuali sopra indicate, durante la formazione utilizzeremo il 25% di customer_data e il 75% di nova_data, di cui il 15% saranno agenti, il 15% sarà dedicato al settore economico e finanziario, il 15% sarà scientifico, il 15% sarà codice e il 15% sarà composto da dati e notizie

Suggerimento: esegui nuovamente pip install -e sei pronto per inviare il tuo lavoro!

Qui sovrascriveremo un paio di parametri per utilizzare la combinazione dei dati:

hyperpod start-job \ -n kubeflow \ --recipe fine-tuning/nova/forge/nova_2_0/nova_lite/SFT/nova_lite_2_0_p5_gpu_sft_text_with_datamix \ --override-parameters '{ "instance_type": "ml.p5.48xlarge", "recipes.run.name": "nova-sft-datamixing", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-V2-latest", "recipes.run.data_s3_path": "s3://sft-data/sft_train_data.jsonl", "recipes.run.validation_data_s3_path": "s3://sft-data/sft_val_data.jsonl", "recipes.run.output_s3_path": "s3://sft-data/output/" }'

L'output dovrebbe contenere il nome del lavoro come segue:

⚡ MY Desktop ⚡ % hyperpod start-job \ -n kubeflow \ --recipe fine-tuning/nova/forge/nova_2_0/nova_lite/SFT/nova_lite_2_0_p5_gpu_sft_text_with_datamix \ --override-parameters '{ "instance_type": "ml.p5.48xlarge", "recipes.run.name": "nova-sft-datamixing", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-V2-latest", "recipes.run.data_s3_path": "s3://sft-data/sft_train_data.jsonl", "recipes.run.validation_data_s3_path": "s3://sft-data/sft_val_data.jsonl", "recipes.run.output_s3_path": "s3://sft-data/output/" }'

L'output sarebbe il seguente:

Final command: python3 /local/home/my/Downloads/sagemaker-hyperpod-cli/src/hyperpod_cli/sagemaker_hyperpod_recipes/main.py recipes=fine-tuning/nova/forge/nova_2_0/nova_lite/SFT/nova_lite_2_0_p5_gpu_sft_text_with_datamix cluster_type=k8s cluster=k8s base_results_dir=/local/home/my/Downloads/sagemaker-hyperpod-cli/results cluster.pullPolicy="IfNotPresent" cluster.restartPolicy="OnFailure" cluster.namespace="kubeflow" instance_type="ml.p5.48xlarge" container="708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-V2-latest" Prepared output directory at /local/home/my/Downloads/sagemaker-hyperpod-cli/results/my-sft-run-wzdyn/k8s_templates Found credentials in shared credentials file: ~/.aws/credentials Helm script created at /local/home/my/Downloads/sagemaker-hyperpod-cli/results/my-sft-run-wzdyn/my-sft-run-wzdyn_launch.sh Running Helm script: /local/home/my/Downloads/sagemaker-hyperpod-cli/results/my-sft-run-wzdyn/my-sft-run-wzdyn_launch.sh NAME: my-sft-run-wzdyn LAST DEPLOYED: Tue Aug 26 16:21:06 2025 NAMESPACE: kubeflow STATUS: deployed REVISION: 1 TEST SUITE: None Launcher successfully generated: /local/home/my/Downloads/sagemaker-hyperpod-cli/src/hyperpod_cli/sagemaker_hyperpod_recipes/launcher/nova/k8s_templates/SFT { "Console URL": "https://us-east-1.console.aws.amazon.com/sagemaker/home?region=us-east-1#/cluster-management/hyperpod-eks-ga-0703" }

Puoi visualizzare lo stato del tuo lavoro usando hyperpod list-pods -n kubeflow --job-name my-sft-run-wzdyn

hyperpod list-pods -n kubeflow --job-name my-sft-run-wzdyn { "pods": [ { "PodName": "my-sft-run-wzdyn-master-0", "Namespace": "kubeflow", "Status": "Pending", "CreationTime": "2025-08-26 16:21:06+00:00" }, { "PodName": "my-sft-run-wzdyn-worker-0", "Namespace": "kubeflow", "Status": "Pending", "CreationTime": "2025-08-26 16:21:06+00:00" } ] }

o usa direttamente il comando kubectl per trovarli.

Ad esempio,

kubectl get pods -o wide -w -n kubeflow | (head -n1 ; grep my-sft-run) NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES my-sft-run-5suc8-master-0 0/1 Completed 0 3h23m 172.31.32.132 hyperpod-i-00b3d8a1bf25714e4 <none> <none> my-sft-run-5suc8-worker-0 0/1 Completed 0 3h23m 172.31.44.196 hyperpod-i-0aa7ccfc2bd26b2a0 <none> <none> my-sft-run-5suc8-worker-1 0/1 Completed 0 3h23m 172.31.46.84 hyperpod-i-026df6406a7b7e55c <none> <none> my-sft-run-5suc8-worker-2 0/1 Completed 0 3h23m 172.31.28.68 hyperpod-i-0802e850f903f28f1 <none> <none>

Suggerimento da professionista: assicurati di utilizzare sempre il flag -o wide poiché il nodo EKS su cui viene eseguito il lavoro ti aiuterà a trovare i log ancora più velocemente nell'interfaccia utente AWS

Come monitorare il lavoro

Puoi visualizzare i tuoi log in tre modi:

a) Usando CloudWatch

I tuoi log sono disponibili nel tuo account Amazon Web Services che contiene il cluster Hyperpod in CloudWatch. Per visualizzarli nel browser, vai alla CloudWatch home page del tuo account e cerca il nome del cluster. Ad esempio, se il tuo cluster si chiamasse my-hyperpod-rig, il gruppo di log avrebbe il prefisso:

  • Gruppo di log:///{UUID} aws/sagemaker Clusters/my-hyperpod-rig

  • Una volta entrato nel gruppo di log, puoi trovare il tuo log specifico utilizzando l'ID dell'istanza del nodo, ad esempio: hyperpod-i-00b3d8a1bf25714e4.

    • i-00b3d8a1bf25714e4 qui rappresenta il nome della macchina compatibile con hyperpod su cui è in corso il processo di formazione. Ricordiamo come nel precedente output del comando kubectl get pods -o wide -w -n kubeflow | (head -n1; grep my-cpt-run) abbiamo catturato una colonna chiamata NODE.

    • Il nodo «master» eseguito in questo caso era in esecuzione su hyperpod-i-00b3d8a1bf25714e4 e quindi useremo quella stringa per selezionare il gruppo di log da visualizzare. SagemakerHyperPodTrainingJob/rig-groupSeleziona quello che dice/[NODE]

I tuoi log dovrebbero assomigliare a questo:

b) Utilizzo di CloudWatch Insights

Se hai a portata di mano il nome del tuo lavoro e non desideri seguire tutti i passaggi precedenti, puoi semplicemente interrogare tutti i log in//aws/sagemakerClusters/my-hyperpod-rig/{UUID} per trovare il singolo registro.

CPT

fields @timestamp, @message, @logStream, @log | filter @message like /(?i)Starting CPT Job/ | sort @timestamp desc | limit 100

Per il completamento del lavoro, sostituisci Starting SFT Job con SFT Job completato

Quindi puoi fare clic sui risultati e scegliere quello che dice «Epoch 0" poiché sarà il tuo nodo principale.

C) Usando AWS CLI

Puoi scegliere di seguire i tuoi log usando il AWS CLI. Prima di farlo, controlla la tua AWS CLI versione utilizzandoaws --version. Si consiglia inoltre di utilizzare questo script di utilità che aiuta a tracciare i log in tempo reale nel terminale

per V1:

aws logs get-log-events \ --log-group-name /aws/sagemaker/YourLogGroupName \ --log-stream-name YourLogStream \ --start-from-head | jq -r '.events[].message'

per V2:

aws logs tail /aws/sagemaker/YourLogGroupName \ --log-stream-name YourLogStream \ --since 10m \ --follow

D) Configurare ML Flow:

Puoi tenere traccia delle metriche tramite MLFlow.

Crea un'app MLFlow

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

Utilizzo della CLI: se si utilizza la CLI, è necessario creare un'app MLFlow 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

Utilizzo della CLI: crea un URL prefirmato per accedere all'interfaccia utente dell'app MLFlow:

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

Una volta configurato ML Flow, puoi passare l'URI nella tua ricetta o utilizzare l'override all'avvio del lavoro. Un esempio di come farlo può essere trovato in README.

Come valutare il modello dopo SFT?

Prerequisiti

  • Verifica l'URI S3 dal file manifest.json del tuo lavoro di formazione (per i modelli addestrati)

  • Set di dati di valutazione caricato su S3 nel formato corretto

  • Percorso S3 di output per i risultati della valutazione

Benchmark predefiniti: utilizza benchmark predefiniti per convalidare le prestazioni nelle attività generali. Per maggiori dettagli, consulta qui.

Porta i tuoi dati:

Puoi anche fornire i tuoi dati personalizzati formattandoli nel formato seguente e quindi utilizzando i contenitori indicati di seguito per ottenere risultati di inferenza insieme alle probabilità logaritmiche per le calibrazioni, se necessario.

Crea jsonl per attività con la seguente struttura:

{ "metadata": "{key:4, category:'apple'}", "system": "arithmetic-patterns, please answer the following with no other words: ", "query": "What is the next number in this series? 1, 2, 4, 8, 16, ?", "response": "32" }

Gli output generati durante la fase di inferenza del lavoro di valutazione avranno la seguente struttura:

{ "prompt": "[{'role': 'system', 'content': 'arithmetic-patterns, please answer the following with no other words: '}, {'role': 'user', 'content': 'What is the next number in this series? 1, 2, 4, 8, 16, ?'}]", "inference": "['32']", "gold": "32", "metadata": "{key:4, category:'apple'}" }

Descrizioni dei campi:

  • prompt: input formattato inviato al modello

  • inferenza: risposta generata dal modello

  • gold: risposta corretta prevista dal set di dati di input, campo di risposta dall'input

  • metadati: metadati opzionali trasmessi dall'input

Preparare la configurazione di valutazione

Comando per avviare il processo di valutazione. Usa «--override-parameters» per modificare qualsiasi voce della ricetta.

hyperpod start-job -n kubeflow \ --recipe evaluation/nova/nova_micro_p5_48xl_bring_your_own_dataset_eval \ --override-parameters '{ "instance_type": "p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-evaluation-repo:SM-HP-Eval-latest", "recipes.run.name": "<your-eval-job-name>", "recipes.run.model_name_or_path": "<checkpoint-s3-uri>", "recipes.run.output_s3_path": "s3://<your-bucket>/eval-results/", "recipes.run.data_s3_path": "s3://<your-bucket>/eval-data.jsonl" }'

Avvia il tuo lavoro di valutazione

Comandi di avvio del lavoro per diverse ricette con immagini corrispondenti.

Comandi di avvio del lavoro di valutazione
Modello Tecnica Sottocategoria URI immagine Comando
Nova 1.0 Valutazione Valutare 708977205387.dkr.ecr.us-east-1.amazonaw. com/nova-repo di valutazione: SM-HP-Eval-latest hyperpod start-job\ -n kubeflow\ --recipe evaluation/nova/nova_1_0/nova_lite/nova_lite_2_0_p5_48xl_gpu_ft_eval\ --override-parameters '{«instance_type»: «ml.p5.48xlarge», «contenitore»: «708977205387.dkr.ecr.us-east-1.amazonaws. com/nova-valuation-repo: SM-HP-Eval-latest "} '
Nova 2.0 Valutazione Valutare 708977205387.dkr.ecr.us-east-1.amazonaw. com/nova-repo di valutazione: SM-HP-Eval-latest hyperpod start-job -n kubeflow\ --recipe evaluation/nova/nova_2_0/nova_lite/nova_lite_2_0_p5_48xl_gpu_ft_eval\ --override-parameters '{«instance_type»: «ml.p5.48xlarge», «contenitore»: «708977205387.dkr.ecr.us-east-1.amazonaws. com/nova-valuation-repo: SM-HP-Eval-latest "} '

Lezioni apprese e suggerimenti

  • La qualità del set di dati SFT è fondamentale. Dovresti fare ogni sforzo per filtrare i dati di bassa qualità. Se disponi di un piccolo sottoinsieme di dati di eccezionale qualità, in termini di complessità e precisione, potresti considerare di collocarli verso la fine del training per aiutare il modello a convergere meglio.

  • Utilizziamo set di dati testuali e multimodali (MM) per la miscelazione dei dati. I nostri esperimenti con set di dati testuali mostrano che l'aggiunta della categoria proprietaria «reasoning-instruction-following» di Nova migliora significativamente le prestazioni nei benchmark generici. Ti consigliamo di includere questa categoria nella tua strategia di miscelazione dei dati se ti interessa un benchmark generico che viene regredito dopo aver eseguito l'SFT con i tuoi set di dati.

  • Per i set di dati MM, i nostri esperimenti indicano che l'integrazione di oltre il 20% delle categorie video nel mix è utile per mantenere le prestazioni di benchmark generiche.

  • Inoltre, l'SFT con miscelazione dei dati è piuttosto sensibile al tasso di apprendimento, quindi i nostri risultati suggeriscono di ottimizzarlo con il tasso di apprendimento predefinito, ovvero 1e-5 per LoRa e 5e-6 per FR.

  • Infine, se si combinano set di dati proprietari di Nova, esiste un compromesso tra latenza e prestazioni, quindi i nostri risultati suggeriscono di combinare al massimo il 50% per ottenere un buon equilibrio.