Ottimizzazione di precisione supervisionata - 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à.

Ottimizzazione di precisione supervisionata

Introduzione

La regolazione fine supervisionata utilizza un set di dati con coppie di input-output per l'attività di interesse. In altre parole, fornite esempi di suggerimenti (domande, istruzioni, ecc.) insieme alle risposte corrette o desiderate e continuate ad addestrare il modello in base a queste. I pesi del modello vengono regolati per ridurre al minimo una perdita supervisionata, in genere un'entropia incrociata tra le 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 mappature X-Y, allora la regolazione di precisione 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 di quanto lo faccia da solo.

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

  • Coerenza di formattazione e stile: se è necessario che il modello risponda sempre in un determinato formato o tono, è possibile ottimizzare gli esempi del formato/tono corretti. Ad esempio, un corso di formazione sulle coppie di risposte rapide che dimostrano la voce o lo stile di un marchio può insegnare alla modella che utilizza quello stile nei risultati. Il comportamento che segue le istruzioni viene spesso insegnato inizialmente tramite SFT sulla base di esempi curati di buon comportamento dell'assistente.

L'SFT è il modo più diretto per insegnare a un LLM una nuova abilità o un nuovo comportamento quando è possibile specificare quale sia il comportamento giusto. Sfrutta la comprensione linguistica esistente del modello e la concentra sul vostro compito. Non utilizzate SFT quando il divario è legato alla conoscenza piuttosto che al comportamento; ciò non indurrà il modello ad apprendere nuovi fatti, gergo o eventi recenti. In questi casi, preferite una formazione preliminare continua su grandi corpora interni al dominio o la generazione potenziata dal recupero per trarre conclusioni dalle conoscenze esterne. Se è possibile misurare la qualità ma non è possibile etichettare una sola risposta corretta, è preferibile rinforzare la messa a punto con ricompense verificabili o una risposta corretta rispetto a SFT. LLM-as-judge

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

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

Le ricette di personalizzazione Nova consentono di eseguire in modo efficiente i parametri, in particolare LoRa o SFT completo. 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 piccoli adattatori lasciando intatta la maggior parte della spina dorsale (l'SFT completo aggiorna tutti i parametri del modello).

Miscelazione dei dati per SFT

Il data mixing consente di combinare i set di dati di allenamento personalizzati con i dati di formazione proprietari di Nova. Questa funzionalità è disponibile per entrambi i modelli Nova 1.0 e Nova 2.0.

Tipo di dati proprietario Nova: Nova supporta 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 proprietarie 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 delle attività precisi sia ragionati che non ragionati (reasoning-instruction-following, seguire le istruzioni), sequenze che dimostrano il pensiero strategico e la suddivisione delle step-by-step attività (pianificazione), intelligenza artificiale responsabile (rai), contesto lungo, fattualità, matematica, radice e molti altri. Allo stesso modo, i set di dati multimodali includono video, screenshot, grafici e molti altri.

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

Per inserire i dati di Nova, devi semplicemente aggiungere un blocco data_mixing al file YAML della ricetta, nella sezione training_config. I blocchi di miscelazione di testo e dati 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 di 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

Checkpoints modello

Punti di controllo Nova 1.0

  • PRE-TRAINED [nova-<micro/lite/pro>/pretraining-text-partial]: Checkpoint dopo la fase di pre-addestramento a tasso di apprendimento costante di Nova, 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]: checkpoint di solo testo dopo tutte le fasi del pre-allenamento e dell'allenamento intermedio di Nova con trilioni di token di testo. Utilizzatelo se non desiderate che il modello visualizzi dati multimodali. [Risultato della fase 3]

  • MID-TRAINED [nova-<lite/pro>/pretraining-mm-full]: Checkpoint dopo tutte le fasi di pre-allenamento e intermedio 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 di pre-allenamento e post-allenamento. [Esito della fase 4]

Punti di controllo Nova 2.0

  • PRE-TRAINED [nova-lite-2/pretraining-text-RD]: Checkpoint dopo un ritmo di apprendimento costante e fasi successive in cui il modello viene addestrato con trilioni di token. [Risultato 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 conoscenze specifiche del dominio ed evitando al contempo catastrofici dimenticamenti. [Risultato della fase 3]

  • FINALE [nova-lite-2/prod]: checkpoint finale completamente allineato che ha superato tutte le fasi di pre-allenamento e post-allenamento. [Esito della fase 4]

Fasi di formazione:

  • Fase 1: PT Ckpt, pre-allenamento 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: formazione sulla sicurezza e sull'allineamento secondo le istruzioni

Approcci formativi

Guida alla selezione dell'approccio formativo
Tipo di dati Volume di dati Esegui Con Checkpoint
Dati di dominio grezzi non strutturati su larga scala (documenti, registri, articoli, codice, ecc.) 1T+ token Formazione preliminare continua Fine del tasso di apprendimento costante (CLR)
Dati di dominio non strutturati non strutturati su larga scala Oltre 100 miliardi di token A metà allenamento Fine del CLR
Volumi più piccoli di dati grezzi non strutturati; tracce di ragionamento strutturato/dati CoT Oltre 1 miliardo di token A metà allenamento Modello base Nova
Dimostrazioni strutturate (coppie input-output di alta qualità, istruzioni dettagliate sulle attività, dialoghi a più turni) Oltre 1.000 esempi Ottimizzazione fine supervisionata (SFT) Modello base Nova

Prerequisiti prima di iniziare

  • Partiamo dal presupposto che tu abbia già configurato un cluster SMHP con un gruppo di istanze ristrette (RIG) con capacità attiva. In caso contrario, fai riferimento qui per completare la configurazione del cluster SMHP e del RIG [Docs Link, Workshop Link]

  • Avrai bisogno di istanze EC2 p5.48xlarge per eseguire questa ricetta. Il numero minimo di istanze richiesto 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

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

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

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

  • Completare la configurazione. Se non hai completato la configurazione, segui la guida seguente.

  • Verifica: dopo aver completato la configurazione, conferma che puoi 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 un 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 le tracce di ragionamento o i metadati) siano allineati e formattati correttamente.

  • Configurazione dell'addestramento: definisci come verrà addestrato il modello. Quando usi Amazon SageMaker HyperPod, questa configurazione è scritta in un file di ricette YAML che include:

    • Percorsi di origine dei dati (set di dati di formazione e convalida)

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

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

    • Impostazione Data Mixing (definisce le proporzioni delle categorie di dati del cliente e di Nova)

  • Ottimizza gli iperparametri SFT: i valori dei parametri della ricetta 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. È possibile selezionare le combinazioni di parametri seguendo il metodo Hyper-Parameter Optimization di propria scelta. Un approccio semplice consiste nel variare il valore di un parametro (default*0.5, default, default*2) mantenendo un 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 il tasso 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 interessa solo le prestazioni dei test su tali attività

    • Esegui SFT senza mixare sul checkpoint [FINAL] Nova. Utilizzate gli iperparametri SFT predefiniti e, facoltativamente, 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 tali attività e i benchmark generali nel settore di interesse

    • Iniziate eseguendo SFT e mescolando i dati Nova su un checkpoint di pre-addestramento (checkpoint PRE-TRAINED o MID-TRAINED, 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 corsi di formazione SFT più brevi con una quantità variabile di dati Nova (ad esempio, 10%, 25%, 50%, 75%) e selezioni di categorie di dati Nova che completano il tuo caso d'uso (ad esempio, scegli l'istruzione dopo la categoria se ti interessa la capacità di seguire le istruzioni generali). Monitora le metriche di convalida e valuta se la miscelazione aiuta le prestazioni sui benchmark generali. Seleziona il mix di allenamento e il checkpoint che consentono di ottenere la migliore combinazione di prestazioni relative all'attività e prestazioni generali. A seconda del caso d'uso, sia le prestazioni operative che quelle 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 -fine-tune.html https://docs.aws.amazon.com/sagemaker/ latest/dg/nova

Nova 2.0: utilizza 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_ .html ReasoningContentBlock

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 ragionare i contenuti, evita i tag di markup come <thinking> e a </thinking> meno che non sia specificamente richiesto dall'attività e assicurati che il contenuto del ragionamento sia chiaro e pertinente al processo di risoluzione dei problemi.

Toolkit di intelligenza artificiale e moderazione dei contenuti responsabili

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. CCMS consente di regolare i controlli di moderazione dei contenuti per allinearli ai requisiti aziendali specifici, mantenendo al contempo le protezioni essenziali e responsabili dell'IA. Per determinare se il tuo caso d'uso aziendale è idoneo per CCMS, contatta il tuo account manager Amazon Web Services.

Nova Forge fornisce un Responsible AI Toolkit che include dati di formazione, benchmark di valutazione e controlli di runtime per aiutarti ad allineare i tuoi modelli alle linee guida sull'intelligenza artificiale responsabile di Nova.

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

Valutazioni: sono disponibili attività di benchmark per testare la capacità del modello di rilevare e rifiutare contenuti inappropriati, dannosi o errati. Utilizzate queste valutazioni per misurare la differenza tra le prestazioni del modello base e le prestazioni del 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 per il 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 di base o l'utilizzo di corsi di formazione continua per migliorare le prestazioni in un caso d'uso specifico possono influire sulla sicurezza, sull'equità e su altre proprietà del nuovo modello.

Utilizziamo un metodo di adattamento affidabile 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 attività per le quali il modello non è stato personalizzato.

L'utente è responsabile di:

  • 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 aspettative specifiche in termini 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 Policy sull'IA responsabile di Amazon Web Services, la Politica di utilizzo AWS accettabile e i Termini di AWS servizio per i servizi che intendi utilizzare.

Impostazioni di moderazione dei contenuti personalizzabili (CCMS)

CCMS consente di adattare i controlli pertinenti ai requisiti aziendali, mantenendo al contempo controlli essenziali e non configurabili che garantiscono un uso responsabile dell'intelligenza artificiale.

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

  • Solo sicurezza

  • Sicurezza, contenuti sensibili e correttezza combinati

  • Tutte le categorie combinate

Le quattro categorie di moderazione dei contenuti sono:

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

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

  3. Equità: affronta pregiudizi e considerazioni culturali

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

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

Consigli per l'uso di CCMS

Quando si utilizza CCMS, si consiglia di utilizzare il Continuous Pre Training (CPT) e di iniziare da un checkpoint di allineamento precedente alla RAI (Pre-training-Early o) anziché dal checkpoint. PRE-TRAINING-Mid PRE-TRAINING-Final GA/FINAL Questi checkpoint non sono stati sottoposti a formazione sulla sicurezza né sono stati orientati 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 il mixaggio dei dati, valuta la possibilità di modificare la percentuale della categoria «rai» nella 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 su richiesta di Amazon Bedrock

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

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

Metodi di valutazione

Prerequisiti

  • Checkpoint S3 dal manifest.json file del processo 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 pronti all'uso: utilizza i benchmark predefiniti per convalidare le prestazioni relative alle attività generali. Per maggiori dettagli, consulta questa pagina: -hp-evaluate.html https://docs.aws.amazon.com/sagemaker/ latest/dg/nova

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à di registro 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

Preparare la configurazione di valutazione

Comando per avviare il processo di valutazione. Si 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" }'

Best practice

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

  • Includi reasoning-instruction-following categoria: quando utilizzi la combinazione di dati, includi la categoria "reasoning-instruction-following" per mantenere elevate prestazioni generiche tra 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 modifica solo se necessario in base alle metriche di convalida.

  • Mixaggio di dati Balance Nova: mescola 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 l'allenamento per rilevare tempestivamente il sovradimensionamento 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 di produzione per una valutazione significativa delle prestazioni.

Preparare Training Job Config

Parametri Hyper

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 il tasso di apprendimento, l'alfa (parametro di scala), il numero di epoche da allenare e le fasi di riscaldamento; per il livello completo si tratta principalmente del tasso di apprendimento, del numero di epoche e delle fasi di riscaldamento. Le ricette sono precompilate con le impostazioni predefinite consigliate.

Configura Data Mixing Block

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 delle informazioni
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 del software
rai Casi e scenari che enfatizzano i principi etici dell'IA, le considerazioni sulla sicurezza e l'implementazione responsabile della tecnologia
seguendo le istruzioni Esempi di esecuzione precisa delle attività in base a diversi livelli di istruzioni e direttive dell'utente
radice Contenuti tecnici riguardanti scienza, tecnologia, ingegneria e matematica, compresi concetti teorici e di risoluzione di problemi
pianificazione Sequenze che dimostrano il pensiero strategico, la suddivisione delle step-by-step attività e l'allocazione efficiente delle risorse
ragionamento Deduzione logica, pensiero critico e scenari analitici di risoluzione dei problemi con catene di ragionamento chiare
straccio Esempi di come combinare efficacemente le conoscenze esterne recuperate con le risposte generate per fornire informazioni contestuali accurate
traduzione Combinazioni di contenuti multilingue che mostrano una traduzione accurata preservando il contesto, il tono e le sfumature culturali

Miscelazione 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 delle informazioni
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 Dati incentrati sui documenti che combinano testo, immagini, layout e formattazione per addestrare i modelli alla comprensione e all'elaborazione di vari tipi e strutture di documenti e facilitare concetti come il riconoscimento dei contenuti PDF
percezione coppie visivo-linguistiche che insegnano ai modelli per descrivere, interpretare e ragionare con precisione su immagini, video e altri input visivi in linguaggio naturale
straccio Esempi di recupero multimodale che mostrano come combinare e fare riferimento in modo efficace a conoscenze esterne visive e testuali per generare risposte contestuali accurate
ragionamento Casi che combinano elementi visivi e testuali che dimostrano l'analisi logica, la risoluzione di problemi e il trarre conclusioni attraverso diverse modalità
radice Contenuti tecnici che abbinano elementi visivi (diagrammi, grafici, equazioni) al testo per insegnare concetti scientifici, matematici e tecnici e risolvere problemi
testo Un pool bilanciato di dati di testo contestuali viene creato dalle categorie di set di dati SFT Nova di solo testo per fornire competenze generaliste
video Contenuti visivi basati sul movimento incentrati 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 delle informazioni
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, la convalida della fonte e la valutazione della verità
identità Quadri di personalità e modelli comportamentali incentrati su tratti caratteriali, valori e stili di interazione coerenti
contesto a lungo termine Testi estesi e narrazioni complesse incentrati sul mantenimento della coerenza e della pertinenza durante 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
seguendo le istruzioni Esempi di esecuzione precisa delle attività in base a diversi livelli di istruzioni e direttive dell'utente
radice Contenuti tecnici riguardanti scienza, tecnologia, ingegneria e matematica, compresi concetti teorici e di risoluzione di problemi
pianificazione Sequenze che dimostrano il pensiero strategico, la suddivisione delle step-by-step attività e l'allocazione efficiente delle risorse
chat di ragionamento Scenari di dialogo analitici 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 fattuale Scenari di valutazione delle informazioni incentrati sui processi critici di valutazione e verifica
reasoning-instruction-following Analisi complessa delle attività incentrata sull'interpretazione sistematica e sull'esecuzione metodica
ragionamento matematico Scenari matematici di risoluzione di problemi incentrati sulla progressione logica e sulle strategie di soluzione
pianificazione del ragionamento Scenari decisionali strategici incentrati su un approccio sistematico al raggiungimento degli obiettivi
straccio di ragionamento Scenari di recupero e sintesi delle informazioni incentrati sulla comprensione contestuale e sull'applicazione pertinente
razionamento-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 come combinare efficacemente le conoscenze esterne recuperate con le risposte generate per fornire informazioni contestuali accurate
traduzione Combinazioni di contenuti multilingue che mostrano una traduzione accurata preservando il contesto, il tono e le sfumature culturali

Miscelazione 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 la categoria 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 delle informazioni
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 le informazioni quantitative in modo efficace
chat Dati conversazionali abbinati a elementi visivi incentrati sulla comprensione del dialogo contestuale e sulle interazioni basate sulle immagini
code Interfacce di programmazione e ambienti di sviluppo incentrati sull'interpretazione visiva del codice, schermate IDE e diagrammi tecnici
documenti Dati incentrati sui documenti che combinano testo, immagini, layout e formattazione per addestrare i modelli alla comprensione e all'elaborazione di vari tipi e strutture di documenti e facilitare concetti come il riconoscimento dei contenuti PDF
general Contenuti visivo-testuali diversificati incentrati sull'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 in modo efficace a conoscenze esterne visive e testuali per generare risposte contestuali accurate
screenshot acquisizioni dell'interfaccia applicativa e immagini di visualizzazione digitale 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 competenze generaliste
traduzione Contenuti visivi multilingue incentrati sull'interpretazione multilingue del testo nelle immagini e negli elementi visivi culturali
video Contenuti visivi basati sul movimento incentrati sulla comprensione temporale e sulla comprensione narrativa-visiva sequenziale

Come avviare un lavoro

Puoi anche fare riferimento al README, se hai solo bisogno di ottenere i 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 PIEDI/SINISTRA 708977205387.dkr. ecr.us-east-1.amazonaws.com /:SM-HP-SFT-Ultime nova-fine-tune-repo hyperpod start-job\ -n kubeflow\ --recipe fine- -:SM-HP-SFT-più recente»} 'tuning/nova/nova_1_0/nova_micro/SFT/nova_micro_1_0_p5_gpu_sft \ --override-parameters '{ "instance_type": "ml.p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/novafine-tune-repo
Nova 1.0 Fine-tuning SFT con miscelazione dei dati 708977205387.dkr. ecr.us-east-1.amazonaws.com /:HP-SFT-DATAMIX nova-fine-tune-repo hyperpod start-job\ -n kubeflow\ --recipe fine- -:HP-SFT-DATAMIX»} '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", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/novafine-tune-repo
Nova 2.0 Fine-tuning Testo SFT 708977205387.dkr. ecr.us-east-1.amazonaws.com /:SM-HP-SFT-V2-Più recente nova-fine-tune-repo hyperpod start-job\ -n kubeflow\ --recipe fine- -:SM-HP-SFT-V2-più recente»} 'tuning/nova/nova_2_0/nova_lite/SFT/nova_lite_2_0_p5_gpu_sft \ --override-parameters '{ "instance_type": "ml.p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/novafine-tune-repo
Nova 2.0 Fine-tuning SFT Text + Datamixing 708977205387.dkr. ecr.us-east-1.amazonaws.com /:SM-HP-SFT-V2-Datamixing-Ultima versione nova-fine-tune-repo hyperpod start-job\ -n kubeflow\ --recipe fine- -:SM-HP-SFT-V2-DataMixing-Ultima versione»} '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", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/novafine-tune-repo
Nova 2.0 Fine-tuning MM MORBIDO 708977205387.dkr. ecr.us-east-1.amazonaws.com /:SM-HP-SFT-V2-Più recente nova-fine-tune-repo hyperpod start-job\ -n kubeflow\ --recipe fine- -:SM-HP-SFT-V2-più recente»} 'tuning/nova/nova_2_0/nova_lite/SFT/nova_lite_2_0_p5_gpu_sft \ --override-parameters '{ "instance_type": "ml.p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/novafine-tune-repo
Nova 2.0 Fine-tuning Miscelazione dati SFT MM + 708977205387.dkr. ecr.us-east-1.amazonaws.com /:SM-HP-SFT-V2-Datamixing-Ultima versione nova-fine-tune-repo hyperpod start-job\ -n kubeflow\ --recipe fine- -:SM-HP-SFT-V2-DataMixing-Ultima versione»} '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", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/novafine-tune-repo

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

  • cd//src/hyperpod_cli/sagemaker_hyperpod_recipes/recipes_collection/recipes/training/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 lavoro sft, dovresti essere in grado di vedere una ricetta in questa cartella

    • cd/src/hyperpod_cli/sagemaker_hyperpod_recipes/recipes_collection/recipes/fine-tuning/nova_1_0/nova_lite/SFTe poi dovresti essere in grado di vedere una ricetta in questa cartella chiamata nova_lite_1_0_p5x8_gpu_sft.yaml

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

    • cd/src/hyperpod_cli/sagemaker_hyperpod_recipes/recipes_collection/recipes/fine-tuning/nova/forge/nova_1_0/nova_lite/SFTe dovresti essere in grado di 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 lavoro sft, dovresti essere in grado di vedere una ricetta in questa cartella

    • cd/src/hyperpod_cli/sagemaker_hyperpod_recipes/recipes_collection/recipes/fine-tuning/nova_2_0/nova_lite/SFTe poi dovresti essere in grado di vedere una ricetta in questa cartella chiamata nova_lite_2_0_p5x8_gpu_sft.yaml

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

    • cd/src/hyperpod_cli/sagemaker_hyperpod_recipes/recipes_collection/recipes/fine-tuning/nova/forge/nova_2_0/nova_lite/SFTe dovresti essere in grado di 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 miscelazione dei dati ed è suddivisa in ancora più categorie. È imperativo che si sommino fino al 100%

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

  • customer_data: Questi sono i tuoi dati di allenamento a cui si fa riferimento nella chiave data_s3_path nella parte superiore di yaml. La percentuale qui fornita determina quale sarà la percentuale risultante per nova_data. Ad esempio, nelle selezioni percentuali precedenti, durante la formazione utilizzeremo il 25% di customer_data e il 75% di nova_data, di cui il 15% saranno agenti, il 15%, il 15% sarà scientifico business-and-finance, il 15% sarà codice e il 15% sarà factual-and-news

Suggerimento: esegui pip install -e. ancora una volta e sei pronto per inviare il tuo lavoro!

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

hyperpod start-job \ -n kubeflow \ --recipe fine-tuning/nova/forge/nova_2_0/nova_lite/SFT/nova_lite_2_0_p5x8_gpu_sft_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-Datamix", "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 un nome di lavoro come segue:

⚡ MY Desktop ⚡ % hyperpod start-job \ -n kubeflow \ --recipe training/nova/forge/nova_2_0/nova_lite/sft/nova_lite_2_0_p5x8_gpu_pretrain_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-Datamix", "recipes.run.data_s3_path": "s3://sft-data/sft_train_data.jsonl", "recipes.run.validation_data_s3_path": "3://sft-data/sft_val_data.jsonl", "recipes.run.output_s3_path": "3://sft-data/output/ }'

L'output sarebbe simile a questo:

Final command: python3 /local/home/my/Downloads/sagemaker-hyperpod-cli/src/hyperpod_cli/sagemaker_hyperpod_recipes/main.py recipes=training/nova/nova_micro_p5x8_gpu_pretrain cluster_type=k8s cluster=k8s base_results_dir=/local/home/niphaded/Downloads/sagemaker-hyperpod-cli/results cluster.pullPolicy="IfNotPresent" cluster.restartPolicy="OnFailure" cluster.namespace="kubeflow" instance_type="p5d.48xlarge" container="900867814919.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:sft-datamix-rig-final" 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/niphaded-sft-run-wzdyn_launch.sh Running Helm script: /local/home/my/Downloads/sagemaker-hyperpod-cli/results/my-sft-run-wzdyn/niphaded-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" } ] }

oppure 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: assicurati di usare sempre il flag -o wide poiché il nodo EKS su cui viene eseguito il job ti aiuterà a trovare i log ancora più velocemente nell'interfaccia utente AWS

Come monitorare Job

Puoi visualizzare i tuoi registri in tre modi:

a) Utilizzo CloudWatch

I 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 cluster fosse chiamato, my-hyperpod-rig il gruppo di log avrebbe il prefisso:

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

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

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

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

I tuoi log dovrebbero assomigliare a questo:

b) Utilizzo CloudWatch di Insights

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

CPT

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

Per il completamento del lavoro, sostituire 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) Usare la cli aws

Puoi scegliere di tracciare i tuoi log usando il. Prima di farlo, controlla la tua versione di aws cli usando aws --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 crei un lavoro di formazione tramite l'interfaccia utente di Studio, viene creata automaticamente MLflow un'app predefinita e selezionata per impostazione predefinita in Opzioni avanzate.

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

mlflow_app_name="<enter your MLflow app name>" role_arn="<enter your role ARN>" bucket_name="<enter your bucket name>" region="<enter your region>" mlflow_app_arn=$(aws sagemaker create-mlflow-app \ --name $mlflow_app_name \ --artifact-store-uri "s3://$bucket_name" \ --role-arn $role_arn \ --region $region)

Accedi all'app MLflow

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

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

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

Come valutare il modello dopo SFT?

Prerequisiti

  • URI Checkpoint S3 dal file manifest.json del tuo processo 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 pronti all'uso: utilizza i benchmark predefiniti per convalidare le prestazioni relative alle 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à di registro per le calibrazioni, se necessario.

Crea jsonl per task 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" }'

Lancia il tuo Job di valutazione

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

Comandi Evaluation Job Launch
Modello Tecnica Sottocategoria URI immagine Comando
Nova 1.0 Valutazione Valutazione 708977205387.dkr. ecr.us-east-1.amazonaws.com /:SM-HP-Eval-Latest nova-evaluation-repo hyperpod start-job\ -n kubeflow\ --recipe -evaluation-repo:sm-hp-eval-latest»} 'evaluation/nova/nova_1_0/nova_lite/nova_lite_2_0_p5_48xl_gpu_ft_eval \ --override-parameters '{ "instance_type": "ml.p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova
Nova 2.0 Valutazione Valutazione 708977205387.dkr. ecr.us-east-1.amazonaws.com /:SM-HP-Eval-Latest nova-evaluation-repo hyperpod start-job -n kubeflow\ --recipe -evaluation-repo:sm-hp-eval-latest»} 'evaluation/nova/nova_2_0/nova_lite/nova_lite_2_0_p5_48xl_gpu_ft_eval \ --override-parameters '{ "instance_type": "ml.p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova

Lezioni apprese e suggerimenti

  • La qualità del set di dati SFT è fondamentale. È necessario fare ogni sforzo per filtrare i dati di bassa qualità. Se disponi di un piccolo sottoinsieme di dati di eccezionale qualità, in termini sia di complessità che di precisione, potresti considerare di collocarli verso la fine del corso di formazione 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 di testo mostrano che l'aggiunta della categoria "reasoning-instruction-following" proprietaria di Nova migliora significativamente le prestazioni rispetto ai 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 SFT con i tuoi set di dati.

  • Per quanto riguarda i set di dati MM, i nostri esperimenti indicano che incorporare oltre il 20% delle categorie di video nel mix è vantaggioso per mantenere le prestazioni dei benchmark generici.

  • Inoltre, l'SFT con miscelazione dei dati è piuttosto sensibile al tasso di apprendimento, quindi la nostra scoperta suggerisce di ottimizzarla con il tasso di apprendimento predefinito, ovvero 1e-5 per LoRa e 5e-6 per FR.

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