Valutazione del modello basato sull' SageMaker intelligenza artificiale - Amazon SageMaker AI

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Valutazione del modello basato sull' SageMaker intelligenza artificiale

Lo scopo del processo è valutare le prestazioni del modello addestrato rispetto a benchmark o set di dati personalizzati. Il processo di valutazione prevede in genere fasi per creare una ricetta di valutazione che punti al modello addestrato, specificare set di dati e metriche di valutazione, inviare un job separato per la valutazione e valutare le prestazioni rispetto a benchmark standard o dati personalizzati. Il processo di valutazione genera i parametri delle prestazioni archiviati nel bucket Amazon S3.

Nota

Il processo di valutazione descritto in questo argomento è un processo offline. Il modello viene testato sulla base di benchmark fissi con risposte predefinite, anziché essere valutato in tempo reale o tramite interazioni utente dal vivo. Per una valutazione in tempo reale, puoi testare il modello dopo averlo distribuito su Amazon Bedrock chiamando Amazon Bedrock Runtime. APIs

Prerequisiti

Prima di avviare un job di addestramento per la valutazione, verifica i seguenti requisiti.

  • Un modello SageMaker Amazon Nova addestrato all'intelligenza artificiale di cui desideri valutarne le prestazioni.

  • Ricetta Amazon Nova di base per la valutazione. Per ulteriori informazioni, consulta Recupero di ricette Amazon Nova.

Attività di benchmarking disponibili

È disponibile un pacchetto di codice di esempio che dimostra come calcolare le metriche di benchmark utilizzando la funzionalità di valutazione del SageMaker modello per Amazon Nova. Per accedere ai pacchetti di codice, consulta Sample-n. ova-lighteval-custom-task

Di seguito è riportato un elenco di benchmark standard di settore disponibili. È possibile specificare i benchmark seguenti nel parametro eval_task.

Benchmark disponibili per la valutazione del modello

Benchmark Modalità Description Metriche Strategia Sottoattività disponibile
mmlu

Testo

Massive Multitask Language Understanding (MMLU) - Verifica la conoscenza di 57 materie.

accuratezza

zs_cot
mmlu_pro Testo

MMLU - Sottoinsieme professionale - Incentrato su domini professionali come legge, medicina, contabilità e ingegneria.

accuratezza zs_cot No
bbh Testo

Attività di ragionamento avanzato - Una raccolta di problemi impegnativi che mettono alla prova le capacità cognitive e di risoluzione dei problemi di livello superiore.

accuratezza fs_cot
gpqa Testo

Risposta a domande di fisica generale - Valuta la comprensione di concetti di fisica e le relative capacità di risoluzione dei problemi.

accuratezza zs_cot No
matematica Testo

Risoluzione di problemi matematici - Misura il ragionamento matematico su argomenti quali algebra, calcolo e problemi testuali.

exact_match zs_cot
strong_reject Testo

Attività di controllo della qualità - Verifica la capacità del modello di rilevare e rifiutare contenuti inappropriati, dannosi o errati.

deflection zs
ifeval Testo

Valutazione che segue istruzioni - Misura la precisione con cui un modello segue le istruzioni fornite e completa le attività secondo le specifiche.

accuratezza zs No
gen_qa Multimodale (immagine)

Valutazione personalizzata del set di dati: consente di fornire il proprio set di dati per il benchmarking, confrontando gli output del modello con le risposte di riferimento con metriche come ROUGE e BLEU. gen_qasupporta l'inferenza delle immagini per i modelli basati su Amazon Nova Lite o Amazon Nova Pro. Supporta anche Bring-Your-Own Metrics lambda. (Per la valutazione RFT, usa la ricetta RFT eval)

tutto gen_qa No
llm_judge Testo

LLM-as-a-Judge Confronto delle preferenze: utilizza un modello Nova Judge per determinare la preferenza tra le risposte accoppiate (B rispetto a A) ai prompt, calcolando la probabilità che B sia preferito ad A.

tutto judge No

mm_llm_judge

Multi-Modal (immagine)

Questo nuovo benchmark si comporta allo stesso modo del precedente benchmark basato su testo. llm_judge L'unica differenza è che supporta l'inferenza delle immagini.

tutto judge No

rubric_llm_judge

Testo

Rubric Judge è un modello di valutazione avanzato LLM-as-a-judge basato su Nova 2.0 Lite. A differenza del modello di arbitro originale che fornisce solo verdetti di preferenza, Rubric Judge genera dinamicamente criteri di valutazione personalizzati su misura per ogni richiesta e assegna punteggi granulari su più dimensioni.

tutto

judge

No

aime_2024

Testo

AIME 2024 - American Invitational Mathematics Examination: problemi relativi alla verifica del ragionamento matematico avanzato e alla risoluzione dei problemi

exact_match

zs_cot

No

calendario_pianificazione

Testo

Natural Plan - Calendar - Pianificazione delle attività, test delle attività, capacità di pianificazione per la pianificazione di riunioni su più giorni e più persone

exact_match

fs

No

humaneval

Testo

HumanEval - Un set di dati di riferimento progettato per valutare le capacità di generazione di codice di modelli linguistici di grandi dimensioni

pass@1

zs No

Configurazioni specifiche di una valutazione

Di seguito sono riportati i componenti chiave della ricetta e le indicazioni su come modificarli in base ai casi d’uso.

Comprensione e modifica delle ricette

Configurazione run generale

run: name: eval_job_name model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: nova-lite-2/prod # or s3://escrow_bucket/model_location replicas: 1 data_s3_path: "" mlflow_tracking_uri: "" mlflow_experiment_name : "" mlflow_run_name : ""
  • name: un nome descrittivo per il processo di valutazione.

  • model_type: specifica la variante del modello Nova da utilizzare. Non modificare manualmente questo campo. Le opzioni includono:

    • Amazon. nova-micro-v1:01:28 K

    • amazzone. nova-lite-v1:0:300 k

    • amazzone. nova-pro-v1:0:300 k

    • amazon.nova-2-lite-v 1:0:256k

  • model_name_or_path: il percorso del modello di base o il percorso S3 per il checkpoint post-addestrato. Le opzioni includono:

    • nova-micro/prod

    • nova-lite/prod

    • nova-pro/prod

    • nova-lite-2/prod

    • Percorso S3 per il percorso di checkpoint post-addestrato (s3:customer-escrow-111122223333-smtj-<unique_id>/<training_run_name>)

      Nota

      Valutare un modello post-addestrato

      Per valutare un modello post-addestrato dopo un job di addestramento Nova SFT, segui questa procedura dopo aver eseguito correttamente un job di addestramento. L’addestramento ha esito positivo se alla fine dei log viene visualizzato il messaggio “Training is complete”. Nel bucket di output è inoltre disponibile un file manifest.json contenente la posizione del checkpoint. Questo file si trova all’interno di un file output.tar.gz nella posizione S3 di output. Per procedere con la valutazione, utilizza questo checkpoint impostandolo come valore per run.model_name_or_path nella configurazione della ricetta.

  • replica: Il numero di istanze di calcolo da utilizzare per l'inferenza distribuita (esecuzione dell'inferenza su più nodi). Imposta replica > 1 per abilitare l'inferenza multinodo, che accelera la valutazione. Se replica vengono specificati entrambi instance_count e, instance_count ha la precedenza. Tieni presente che le repliche multiple si applicano solo ai lavori di SageMaker formazione, non. SageMaker HyperPod

  • data_s3_path: percorso Amazon S3 del set di dati di input. Questo campo è obbligatorio, ma deve essere sempre lasciato vuoto.

  • mlflow_tracking_uri: (Facoltativo) La posizione del server di MLflow tracciamento (necessaria solo su SMHP)

  • mlflow_experiment_name: (Facoltativo) Nome dell'esperimento per raggruppare insieme le esecuzioni ML correlate

  • mlflow_run_name: (Facoltativo) Nome personalizzato per un corso di formazione specifico all'interno di un esperimento

Configurazione evaluation

evaluation: task: mmlu strategy: zs_cot subtask: abstract_algebra metric: accuracy
  • task: specifica il benchmark o l’attività di valutazione da utilizzare. Le attività supportate includono:

    • mmlu

    • mmlu_pro

    • bbh

    • gpqa

    • math

    • strong_reject

    • gen_qa

    • ifeval

    • llm_judge

    • mm_llm_judge

    • rubric_llm_judge

    • aime_2024

    • calendar_scheduling

    • humaneval

  • strategy: definisce l’approccio di valutazione.

    • zs_cot: Zero-shot Chain of Thought: un approccio per suggerire modelli linguistici di grandi dimensioni che incoraggia il step-by-step ragionamento senza richiedere esempi espliciti.

    • fs_cot: Few-shot Chain of Thought: un approccio che fornisce alcuni esempi di step-by-step ragionamento prima di chiedere al modello di risolvere un nuovo problema.

    • zs: Zero-shot - Un approccio per risolvere un problema senza esempi di addestramento precedenti.

    • gen_qa: strategia specifica per utilizzare un set di dati personalizzato.

    • judge: Strategia specifica per Nova LLM come giudice e. mm_llm_judge

  • subtask: facoltativo. Componenti specifici dell’attività di valutazione. Per un elenco completo delle sottoattività disponibili, consulta Sottoattività disponibili.

    • Controlla le sottoattività supportate in Attività di benchmarking disponibili.

    • Se non sono presenti benchmark per sottoattività, è consigliabile rimuovere questo campo.

  • metric: la metrica di valutazione da utilizzare.

    • accuracy: percentuale di risposte corrette.

    • exact_match: per il benchmark math, restituisce la velocità con cui le stringhe previste nell’input corrispondono esattamente ai loro riferimenti.

    • deflection: per il benchmark strong reject, restituisce la deviazione relativa rispetto al modello di base e la differenza nelle metriche di significatività.

    • all:

      Per un benchmark Bring Your Own Dataset e gen_qa, restituisce le seguenti metriche:

      • rouge1: misura la sovrapposizione di unigrammi (parole singole) tra il testo generato e quello di riferimento.

      • rouge2: misura la sovrapposizione di bigrammi (due parole consecutive) tra il testo generato e quello di riferimento.

      • rougeL: misura la sottosequenza comune più lunga tra testi, tenendo conto di lacune nella corrispondenza.

      • exact_match: punteggio binario (0 oppure 1) che indica se il testo generato corrisponde esattamente al testo di riferimento, carattere per carattere.

      • quasi_exact_match: simile alla corrispondenza esatta, ma meno rigida, in genere ignora le differenze tra maiuscole e minuscole, punteggiatura e spazi.

      • f1_score: media armonica di precisione e richiamo, che misura la sovrapposizione di parole tra le risposte previste e quelle di riferimento.

      • f1_score_quasi: simile a f1_score, ma con una corrispondenza meno rigida, utilizza un confronto di testo normalizzato che ignora differenze minori.

      • bleu: misura la precisione delle corrispondenze in n-grammi tra il testo generato e quello di riferimento, comunemente utilizzate nella valutazione delle traduzioni.

      Inoltre llm_judgemm_llm_judge, porta il tuo benchmark del set di dati, restituisci le seguenti metriche:

      • a_scores: numero di vittorie per response_A nei passaggi di valutazione avanti e indietro.

      • a_scores_stderr: errore standard di response_A_scores nei giudizi a coppie.

      • b_scores: misura il numero di vittorie per response_B nei passaggi di valutazione avanti e indietro.

      • a_scores_stderr: errore standard di response_B_scores nei giudizi a coppie.

      • ties: numero di giudizi in cui response_A e response_B sono valutati in modo uguale.

      • ties_stderr: errore standard di ties nei giudizi a coppie.

      • inference_error: numero di giudizi che non è stato possibile valutare correttamente.

      • score: punteggio aggregato basato sulle vittorie nei passaggi avanti e indietro per response_B.

      • score_stderr: punteggio aggregato basato sulle vittorie nei passaggi avanti e indietro per response_B.

      • inference_error_stderr: errore standard del punteggio aggregato nei giudizi a coppie.

      • winrate: la probabilità che response_B venga preferito rispetto a response_A calcolato utilizzando la probabilità di Bradley-Terry.

      • lower_rate: limite inferiore (percentile 2,5) del tasso di successo stimato derivante dal campionamento bootstrap.

      • upper_rate: limite superiore (percentile 97,5) del tasso di successo stimato derivante dal campionamento bootstrap.

Configurazione inference (facoltativa)

inference: max_new_tokens: 2048 top_k: -1 top_p: 1.0 temperature: 0 top_logprobs: 10 reasoning_effort: null # options: low/high to enable reasoning or null to disable reasoning
  • max_new_tokens: numero massimo di token da generare. Deve essere un numero intero. Non disponibile per LLM-as-a-judge.

  • top_k: numero di token con la più alta probabilità da considerare. Deve essere un numero intero.

  • top_p: soglia di probabilità cumulativa per il campionamento tramite token. Deve essere un valore decimale compreso tra 1,0 e 0,0.

  • temperature: casualità nella selezione dei token (valore più alto = casualità maggiore), mantieni il valore pari a 0 per rendere il risultato deterministico. Tipo decimale, il valore minimo è 0.

  • top_logprobs: Il numero di migliori logprobs da restituire nella risposta di inferenza. Questo valore deve essere un numero intero compreso tra 0 e 20. I logprobs contengono i token di output considerati e le probabilità di registro di ogni token di output restituito nel contenuto del messaggio.

  • reasoning_effort: controlla il comportamento di ragionamento per modelli in grado di ragionare. Imposta reasoning_effort solo quando model_type specifica un modello in grado di ragionare (attualmente). amazon.nova-2-lite-v1:0:256k Le opzioni disponibili sono nulle (valore predefinito se non impostato; disabilita il ragionamento), basse o alte.

Esempi di ricette di valutazione

Amazon Nova offre quattro diversi tipi di ricette di valutazione. Tutte le ricette sono disponibili nell' GitHub archivio delle SageMaker HyperPod ricette di Amazon.

Ricette di valutazione

    Queste ricette consentono di valutare le funzionalità fondamentali dei modelli Amazon Nova attraverso una suite completa di benchmark di solo testo.

    Formato della ricetta: xxx_general_text_benchmark_eval.yaml.

    Queste ricette consentono di utilizzare un set di dati personalizzato per il benchmarking e confrontare i risultati del modello con risposte di riferimento utilizzando diversi tipi di metriche.

    Formato della ricetta: xxx_ bring_your_own_dataset_eval.yaml.

    Requisiti Bring Your Own Dataset

    Formato del file:

    • Singolo file gen_qa.jsonl contenente esempi di valutazione. Il nome del file deve essere esattamente gen_qa.jsonl.

    • È necessario caricare il set di dati in una posizione S3 accessibile ai lavori di SageMaker formazione.

    • Il file deve seguire il formato dello schema richiesto per il set di dati Q&A generale.

    Requisiti del formato dello schema: ogni riga del .jsonl file deve essere un oggetto JSON con i seguenti campi.

    • Campi obbligatori.

      query: stringa contenente la domanda o l’istruzione che richiede una risposta.

      response: stringa contenente l’output del modello previsto.

    • Campi facoltativi.

      system: stringa contenente il prompt di sistema che imposta il comportamento, il ruolo o la personalità del modello di intelligenza artificiale prima che elabori la query.

      images: Array contenente un elenco di oggetti con attributi di dati (stringhe di immagini codificate in Base64).

      metadata: Stringa contenente i metadati associati alla voce a scopo di etichettatura.

    Esempio di inserimento

    { "system":"You are an English major with top marks in class who likes to give minimal word responses: ", "query":"What is the symbol that ends the sentence as a question", "response":"?" }{ "system":"You are a pattern analysis specialist who provides succinct answers: ", "query":"What is the next number in this series? 1, 2, 4, 8, 16, ?", "response":"32" }{ "system":"You have great attention to detail and follow instructions accurately: ", "query":"Repeat only the last two words of the following: I ate a hamburger today and it was kind of dry", "response":"of dry" }{ "system": "Image inference: ", "query": "What is the number in the image? Please just use one English word to answer.", "response": "two", "images": [ { "data": "data:image/png;Base64,iVBORw0KGgoA ..." } ] }

    Per utilizzare il set di dati personalizzato, modifica la ricetta di valutazione aggiungendo i seguenti campi obbligatori senza modificare la configurazione esistente:

    evaluation: task: gen_qa strategy: gen_qa metric: all

    Limitazioni

    • È consentito un solo file .jsonl per valutazione.

    • Il file deve seguire rigorosamente lo schema definito.

    Porta le tue metriche

    Puoi utilizzare le tue metriche per personalizzare completamente il flusso di lavoro di valutazione del modello con funzionalità di preelaborazione, postelaborazione e metriche personalizzate. La preelaborazione consente di elaborare i dati di input prima di inviarli al server di inferenza, mentre la postelaborazione consente di personalizzare il calcolo delle metriche e restituire metriche personalizzate in base alle proprie esigenze.

    Segui questi passaggi per utilizzare le tue metriche con un SDK di valutazione personalizzato.

    1. Se non l'hai ancora fatto, crea prima una AWS Lambda funzione. Account AWS

    2. Scarica il nova-custom-eval-layer.zip file predefinito dal GitHub repository. Puoi utilizzare questo SDK di valutazione personalizzato Nova open source per convalidare i payload di input e output per la tua funzione personalizzata e fornire un'interfaccia unificata per l'integrazione con la valutazione delle metriche Bring your own di Nova durante la formazione.

    3. Carica il layer Lambda personalizzato utilizzando il seguente comando:

      aws lambda publish-layer-version \ --layer-name nova-custom-eval-layer \ --zip-file fileb://nova-custom-eval-layer.zip \ --compatible-runtimes python3.12 python3.11 python3.10 python3.9
    4. Aggiungi questo livello come livello personalizzato alla tua funzione Lambda, insieme al AWS livello richiesto: AWSLambdaPowertoolsPythonV3-python312-arm64 (richiesto per la pydantic dipendenza).

    5. Aggiorna il codice Lambda utilizzando l'esempio fornito, modificando il codice secondo necessità. Questo codice di esempio crea una funzione Lambda per la valutazione personalizzata di Nova con fasi di preelaborazione e post-elaborazione per la valutazione del modello.

      from nova_custom_evaluation_sdk.processors.decorators import preprocess, postprocess from nova_custom_evaluation_sdk.lambda_handler import build_lambda_handler @preprocess def preprocessor(event: dict, context) -> dict: data = event.get('data', {}) return { "statusCode": 200, "body": { "system": data.get("system"), "prompt": data.get("prompt", ""), "gold": data.get("gold", "") } } @postprocess def postprocessor(event: dict, context) -> dict: # data is already validated and extracted from event data = event.get('data', []) inference_output = data.get('inference_output', '') gold = data.get('gold', '') metrics = [] inverted_accuracy = 0 if inference_output.lower() == gold.lower() else 1.0 metrics.append({ "metric": "inverted_accuracy_custom", "value": accuracy }) # Add more metrics here return { "statusCode": 200, "body": metrics } # Build Lambda handler lambda_handler = build_lambda_handler( preprocessor=preprocessor, postprocessor=postprocessor )
    6. Concedi a Lambda l'accesso al processo di valutazione. Assicurati che il ruolo di esecuzione specificato per il processo di valutazione includa una policy per richiamare la tua funzione Lambda. Ecco una policy di esempio:

      JSON
      { "Version":"2012-10-17", "Statement": [ { "Sid": "LambdaAccess", "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": "arn:aws:lambda:us-east-1:111122223333:function:ExampleFunction", "Condition": { "StringLike": { "aws:PrincipalArn": "arn:aws:iam::111122223333:role/service-role/AmazonSageMaker-ExecutionRole-ARN" } } }, { "Sid": "DenyNonAWSEventSourcesForLambda", "Effect": "Deny", "Action": [ "lambda:InvokeFunction" ], "Resource": "arn:aws:lambda:us-east-1:111122223333:function:ExampleFunction", "Condition": { "Null": { "lambda:EventSourceToken": false } } } ] }
    7. Esamina lo schema del payload Lambda. La tabella seguente elenca lo schema di richiesta e risposta Lambda. Puoi convalidare lo schema utilizzando l'SDK di valutazione personalizzato Nova.

      Payload della richiesta Lambda Payload di risposta Lambda
      Preprocessore
      { "process_type": "preprocess", "data": { "system": "You are a helpful assistant", "prompt": "What is 2+2?", "gold": "4" } }
      { "statusCode": 200, "body": { "system": "You are a helpful assistant that can substitute * for addition", "prompt": "What is 2*2?", "gold": "4" } }
      Postprocessore
      { "process_type": "postprocess", "data": { "prompt": "What is 2+2?", "inference_output": "2+2=4", "gold": "4" } }
      { "statusCode": 200, "body": [ {"metric": "accuracy", "value": 1.0}, {"metric": "f1_score", "value": 1.0}, {"metric": "exact_match", "value": 1}, {"metric": "length_ratio", "value": 0.8} ] }
    8. Modificate il file della ricetta. Ecco un esempio.

      processor: lambda_arn: arn:aws:lambda:us-east-1:111122223333:function:name lambda_type: "custom_metrics" preprocessing: enabled: true postprocessing: enabled: true aggregation: average
      • lambda-arn: Amazon Resource Name (ARN) per la tua funzione Lambda che gestisce la preelaborazione e la postelaborazione.

      • lambda_type: «custom_metrics» o «rft».

      • preprocessing: Se abilitare le operazioni di preelaborazione personalizzate.

      • postprocessing: Se abilitare le operazioni di post-elaborazione personalizzate.

      • aggregation: Funzione di aggregazione integrata (opzioni valide: min, max, average, sum).

    Limitazioni

    • Le metriche Bring your own si applicano solo ai set di dati di input di testo.

    • I set di dati di input multimodali non sono supportati.

    • La fase di preelaborazione non elabora il campo dei metadati.

    Nova LLM Judge è una funzionalità di valutazione del modello che consente di confrontare la qualità delle risposte di un modello con le risposte del modello di base utilizzando un set di dati personalizzato. Accetta un set di dati contenente prompt, risposte di base e risposte di richiesta di verifica, quindi utilizza un modello Nova Judge per fornire una metrica del tasso di successo basata sulla probabilità di Bradley-Terry con confronti a coppie. Formato della ricetta: xxx_llm_judge_eval.yaml.

    Requisiti dei set di dati Nova LLM

    Formato del file:

    • Singolo file llm_judge.jsonl contenente esempi di valutazione. Il nome del file deve essere esattamente llm_judge.jsonl.

    • È necessario caricare il set di dati in una posizione S3 a cui possono accedere i lavori di SageMaker formazione.

    • Il file deve seguire il formato dello schema richiesto per il set di dati llm_judge.

    • Il set di dati di input deve garantire che tutti i record abbiano una lunghezza di contesto inferiore a 12.000.

    Formato dello schema - Ogni riga del file .jsonl deve essere un oggetto JSON con i campi seguenti.

    • Campi obbligatori.

      prompt: stringa contenente il prompt per la risposta generata.

      response_A: stringa contenente la risposta di base.

      response_B: stringa contenente la risposta alternativa da confrontare con la risposta di base.

    Esempio di inserimento

    { "prompt": "What is the most effective way to combat climate change?", "response_A": "The most effective way to combat climate change is through a combination of transitioning to renewable energy sources and implementing strict carbon pricing policies. This creates economic incentives for businesses to reduce emissions while promoting clean energy adoption.", "response_B": "We should focus on renewable energy. Solar and wind power are good. People should drive electric cars. Companies need to pollute less." } { "prompt": "Explain how a computer's CPU works", "response_A": "CPU is like brain of computer. It does math and makes computer work fast. Has lots of tiny parts inside.", "response_B": "A CPU (Central Processing Unit) functions through a fetch-execute cycle, where instructions are retrieved from memory, decoded, and executed through its arithmetic logic unit (ALU). It coordinates with cache memory and registers to process data efficiently using binary operations." } { "prompt": "How does photosynthesis work?", "response_A": "Plants do photosynthesis to make food. They use sunlight and water. It happens in leaves.", "response_B": "Photosynthesis is a complex biochemical process where plants convert light energy into chemical energy. They utilize chlorophyll to absorb sunlight, combining CO2 and water to produce glucose and oxygen through a series of chemical reactions in chloroplasts." }

    Per utilizzare un set di dati personalizzato, modifica la ricetta di valutazione con i seguenti campi obbligatori, senza modificare alcun contenuto:

    evaluation: task: llm_judge strategy: judge metric: all

    Limitazioni

    • È consentito un solo file .jsonl per valutazione.

    • Il file deve seguire rigorosamente lo schema definito.

    • I modelli Nova Judge sono gli stessi per quanto riguarda le specifiche Micro/Lite/Pro.

    • Attualmente i modelli Judge personalizzati non sono supportati.

    Nova LLM in qualità di giudice per le ricette di riferimento multimodali (immagini)

    Nova LLM Judge for multi-modal (immagine), abbreviazione di Nova MM_LLM Judge, è una funzionalità di valutazione del modello che consente di confrontare la qualità delle risposte di un modello con le risposte di un modello di base utilizzando un set di dati personalizzato. Accetta un set di dati contenente prompt, risposte di base e risposte challenger e immagini sotto forma di stringa codificata in Base64, quindi utilizza un modello Nova Judge per fornire una metrica del tasso di vittoria basata sulla probabilità di Bradley-Terry attraverso confronti a coppie. Formato della ricetta: xxx_mm_llm_judge_eval.yaml.

    Requisiti dei set di dati Nova LLM

    Formato del file:

    • Singolo file mm_llm_judge.jsonl contenente esempi di valutazione. Il nome del file deve essere esatto. llm_judge.jsonl

    • È necessario caricare il set di dati in una posizione S3 a cui i responsabili della SageMaker formazione possano accedervi.

    • Il file deve seguire il formato dello schema richiesto per il set di dati mm_llm_judge.

    • Il set di dati di input dovrebbe garantire che tutti i record abbiano una lunghezza di contesto inferiore a 12 k, escluso l'attributo dell'immagine.

    Formato dello schema - Ogni riga del file .jsonl deve essere un oggetto JSON con i campi seguenti.

    • Campi obbligatori.

      prompt: stringa contenente il prompt per la risposta generata.

      images: Array contenente un elenco di oggetti con attributi di dati (i valori sono stringhe di immagine codificate in Base64).

      response_A: stringa contenente la risposta di base.

      response_B: stringa contenente la risposta alternativa da confrontare con la risposta di base.

    Esempio di inserimento

    Per motivi di leggibilità, l'esempio seguente include nuove righe e rientri, ma nel set di dati effettivo, ogni record deve trovarsi su una sola riga.

    { "prompt": "What is in the image?", "images": [ { "data": "data:image/jpeg;Base64,/9j/2wBDAAQDAwQDAwQEAwQFBAQFBgo..." } ], "response_A": "a dog.", "response_B": "a cat.", } { "prompt": "How many animals are in each of the images?", "images": [ { "data": "data:image/jpeg;Base64,/9j/2wBDAAQDAwQDAwQEAwQFBAQFBgo..." }, { "data": "data:image/jpeg;Base64,/DKEafe3gihn..." } ], "response_A": "The first image contains one cat and the second image contains one dog", "response_B": "The first image has one aminal and the second has one animal" }

    Per utilizzare un set di dati personalizzato, modifica la ricetta di valutazione con i seguenti campi obbligatori, senza modificare alcun contenuto:

    evaluation: task: mm_llm_judge strategy: judge metric: all

    Limitazioni

    • È consentito un solo file .jsonl per valutazione.

    • Il file deve seguire rigorosamente lo schema definito.

    • I modelli Nova MM Judge supportano solo il riferimento alle immagini.

    • I modelli Nova MM Judge sono gli stessi per tutte le specifiche di Amazon Nova Micro, Amazon Nova Lite e Amazon Nova Pro.

    • Attualmente i modelli Judge personalizzati non sono supportati.

    • L'URI di immagine Amazon S3 non è supportato.

    • Il set di dati di input dovrebbe garantire che tutti i record abbiano una lunghezza di contesto inferiore a 12 k, escluso l'attributo images.

    Esecuzione di job di addestramento per la valutazione

    Avvia un job di addestramento utilizzando il seguente esempio di notebook Jupyter. Si prega di fare riferimento al seguente taccuino come esempio per eseguire il processo di formazione di valutazione. Per ulteriori informazioni, consulta Utilizzare uno stimatore di SageMaker intelligenza artificiale per eseguire un processo di formazione.

    Tabelle di riferimento

    Prima di eseguire il notebook, fai riferimento alle seguenti tabelle di riferimento per selezionare l’URI delle immagini e le configurazioni delle istanze.

    Selezione dell’URI delle immagini

    Recipe URI immagine

    URI delle immagini di valutazione

    708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-evaluation-repo:SM-TJ-Eval-V2-latest

    Selezione del tipo e del numero di istanze

    Modello Tipo di processo Tipo di istanza Numero di istanze consigliato Numero di istanze consentito
    Amazon Nova Micro Valutazione (SFT/DPO)

    g5.12xlarge

    1 1 - 16
    Amazon Nova Lite Valutazione (SFT/DPO)

    g5.12xlarge

    1 1 - 16
    Amazon Nova Pro Valutazione (SFT/DPO)

    p5.48xlarge

    1 1 - 16

    Notebook di esempio

    Il seguente notebook di esempio mostra come eseguire un job di addestramento per la valutazione.

    # install python SDK # Do not use sagemaker v3, as sagemaker v3 introduced breaking changes !pip install sagemaker==2.254.1 import os import sagemaker,boto3 from sagemaker.inputs import TrainingInput from sagemaker.pytorch import PyTorch sagemaker_session = sagemaker.Session() role = sagemaker.get_execution_role() # Download recipe from https://github.com/aws/sagemaker-hyperpod-recipes/tree/main/recipes_collection/recipes/evaluation/nova to local # Assume the file name be `recipe.yaml` # Populate parameters # input_s3_uri = "s3://<path>/input/" # (Optional) Only used for multi-modal dataset or bring your own dataset s3 location output_s3_uri= "s3://<path>/output/" # Output data s3 location, a zip containing metrics json and tensorboard metrics files will be stored to this location instance_type = "instance_type" # ml.g5.16xlarge as example instance_count = 1 # The number of instances for inference (set instance_count > 1 for multi-node inference to accelerate evaluation) job_name = "your job name" recipe_path = "recipe path" # ./recipe.yaml as example image_uri = "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-evaluation-repo:SM-TJ-Eval-V2-latest" # Do not change output_kms_key = "<KMS key arn to encrypt trained model in Amazon-owned S3 bucket>" # optional, leave blank for Amazon managed encryption # (Optional) To bring your own dataset and LLM judge for evaluation # evalInput = TrainingInput( # s3_data=input_s3_uri, # distribution='FullyReplicated', # s3_data_type='S3Prefix' #) estimator = PyTorch( output_path=output_s3_uri, base_job_name=job_name, role=role, instance_type=instance_type, instance_count=instance_count, training_recipe=recipe_path, sagemaker_session=sagemaker_session, image_uri=image_uri, output_kms_key=output_kms_key ) estimator.fit() # If input dataset exist, pass in inputs # estimator.fit(inputs={"train": evalInput})

    Valutazione e analisi dei risultati della valutazione

    Una volta completato correttamente il processo di valutazione, è possibile valutare e analizzare i seguendo questa procedura.

    Per valutare e analizzare i risultati, procedi nel seguente modo.
    1. Comprendi la struttura della posizione di output. I risultati vengono archiviati nella posizione di output specificata di Amazon S3 come file compresso:

      s3://your-bucket/output/benchmark-name/ └── job_name/ └── output/ └── output.tar.gz
    2. Scarica il file output.tar.gz dal bucket. Estrai il contenuto per visualizzarlo.

      run_name/ ├── eval_results/ | └── results_[timestamp].json │ └── inference_output.jsonl (only present for gen_qa) | └── details/ | └── model/ | └── <execution-date-time>/ | └──details_<task_name>_#_<datetime>.parquet └── tensorboard_results/ └── eval/ └── events.out.tfevents.[timestamp]
      • results_[timestamp].json - File JSON delle metriche di output

      • details_<task_name>_#_<datetime>.parquet - File di output di inferenza (ad eccezione di strong_reject)

      • events.out.tfevents.[timestamp]- file TensorBoard di output

      • inference_output.jsonl - File di output di inferenza pulito (solo per attività gen_qa)

    3. Visualizza i risultati in TensorBoard. Per visualizzare le metriche di valutazione:

      1. Carica la cartella estratta in un bucket S3

      2. Vai a SageMaker TensorBoard

      3. Seleziona “Cartelle S3”

      4. Aggiungi il percorso della cartella S3

      5. Attendi il completamento della sincronizzazione

    4. Analizza gli output di inferenza. Tutte le attività di valutazione, tranne llm_judge e strong_reject, includono i seguenti campi per l’analisi nell’output dell’inferenza.

      • full_prompt- Il prompt utente completo inviato al modello utilizzato per l'attività di valutazione.

      • gold- Il campo che contiene le risposte corrette come specificato dal set di dati.

      • metrics- Il campo che contiene le metriche valutate sulla singola inferenza. I valori che richiedono l’aggregazione non hanno un valore sui singoli output di inferenza.

      • predictions- Il campo che contiene un elenco dell'output del modello per il prompt specificato.

      • pred_logits- Il campo che contiene i token di output considerati e le probabilità di registro di ogni token di output restituito nel contenuto del messaggio.

      Esaminando questi campi, è possibile determinare la causa delle differenze nelle metriche e comprendere il comportamento dei modelli personalizzati.

      Per llm_judge, il file di output dell’inferenza contiene i seguenti campi nel campo delle metriche per coppia di valutazioni.

      • forward_output - Le preferenze non elaborate di Judge durante la valutazione nell’ordine diretto (response_A, response_B).

      • backward_output - Le preferenze non elaborate di Judge durante la valutazione nell’ordine inverso (response_B, response_A).

      • Pairwise metrics - Metriche calcolate per coppia di valutazioni avanti e indietro, tra cui a_scores, b_scores, ties, inference-score e score.

        Nota

        Metriche aggregate come winrate sono disponibili solo nei file dei risultati di riepilogo, non basate su giudizi individuali.

      Per gen_qa, il file inference_output.jsonl contiene i seguenti campi per ogni oggetto JSON:

      • prompt - Il prompt finale inviato al modello

      • inference - L’output di inferenza non elaborato del modello

      • gold - La risposta target dal set di dati di input

      • metadata - La stringa di metadati del set di dati di input, se fornita

    Best practice e risoluzione dei problemi di valutazione

    Best practice

    Di seguito sono elencate alcune best practice per il processo di valutazione.

    • Mantieni i percorsi di output organizzati per modello e tipo di benchmark.

    • Mantieni convenzioni di denominazione coerenti per semplificare il monitoraggio.

    • Salva i risultati estratti in una posizione sicura.

    • Monitora lo stato di TensorBoard sincronizzazione per il corretto caricamento dei dati.

    Risoluzione dei problemi

    È possibile utilizzare CloudWatch il gruppo di log /aws/sagemaker/TrainingJobs per addestrare i registri degli errori dei processi.

    Guasto al nucleo del motore

    Problema:

    Se stai vedendo:

    RuntimeError: Engine core initialization failed.

    Causa:

    Sebbene si tratti di un errore generale che può avere più cause, in genere si verifica quando c'è una mancata corrispondenza tra il checkpoint del modello che stai tentando di caricare e il tipo di modello specificato. Ad esempio, volete valutare un checkpoint del modello Nova 2.0 lite ottimizzato, ma il tipo di modello fornito è di tipo 1.0. ad es. amazon.nova-micro-v1:0:128k

    La mappatura corretta dovrebbe essere

    model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: nova-lite-2/prod # or s3://escrow_bucket/model_location

    Prevenzione:

    Ricontrolla che model_name_or_path sia mappato a destra model_type prima di inviare il lavoro di valutazione.

    Sottoattività disponibili

    Di seguito sono elencate le sottoattività disponibili per la valutazione del modello in più domini, tra cui MMLU (Massive Multitask Language Understanding), BBH (Big Bench Hard) e MATH. Queste sottoattività consentono di valutare le prestazioni del modello in base a funzionalità e aree di conoscenza specifiche.

    MMLU

    MMLU_SUBTASKS = [ "abstract_algebra", "anatomy", "astronomy", "business_ethics", "clinical_knowledge", "college_biology", "college_chemistry", "college_computer_science", "college_mathematics", "college_medicine", "college_physics", "computer_security", "conceptual_physics", "econometrics", "electrical_engineering", "elementary_mathematics", "formal_logic", "global_facts", "high_school_biology", "high_school_chemistry", "high_school_computer_science", "high_school_european_history", "high_school_geography", "high_school_government_and_politics", "high_school_macroeconomics", "high_school_mathematics", "high_school_microeconomics", "high_school_physics", "high_school_psychology", "high_school_statistics", "high_school_us_history", "high_school_world_history", "human_aging", "human_sexuality", "international_law", "jurisprudence", "logical_fallacies", "machine_learning", "management", "marketing", "medical_genetics", "miscellaneous", "moral_disputes", "moral_scenarios", "nutrition", "philosophy", "prehistory", "professional_accounting", "professional_law", "professional_medicine", "professional_psychology", "public_relations", "security_studies", "sociology", "us_foreign_policy", "virology", "world_religions" ]

    BBH

    BBH_SUBTASKS = [ "boolean_expressions", "causal_judgement", "date_understanding", "disambiguation_qa", "dyck_languages", "formal_fallacies", "geometric_shapes", "hyperbaton", "logical_deduction_five_objects", "logical_deduction_seven_objects", "logical_deduction_three_objects", "movie_recommendation", "multistep_arithmetic_two", "navigate", "object_counting", "penguins_in_a_table", "reasoning_about_colored_objects", "ruin_names", "salient_translation_error_detection", "snarks", "sports_understanding", "temporal_sequences", "tracking_shuffled_objects_five_objects", "tracking_shuffled_objects_seven_objects", "tracking_shuffled_objects_three_objects", "web_of_lies", "word_sorting" ]

    Math (Matematica)

    MATH_SUBTASKS = [ "algebra", "counting_and_probability", "geometry", "intermediate_algebra", "number_theory", "prealgebra", "precalculus",

    Valuta i tuoi modelli Nova personalizzati utilizzando vari metodi e metriche di valutazione.