Valutazione del modello addestrato - 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 addestrato

Una ricetta di valutazione è un file di configurazione YAML che definisce come viene eseguito il processo di valutazione del modello Amazon Nova. Con questa ricetta, puoi valutare le prestazioni di un modello base o addestrato rispetto a benchmark comuni o ai tuoi set di dati personalizzati. Le metriche possono essere archiviate in Amazon TensorBoard S3 o. La valutazione fornisce metriche quantitative che aiutano a valutare le prestazioni del modello in varie attività per determinare se sono necessarie ulteriori personalizzazioni.

La valutazione dei modelli è un processo offline, in cui i modelli vengono testati rispetto a benchmark fissi con risposte predefinite. Non vengono valutati in tempo reale o in base alle interazioni degli utenti in tempo reale. Per le valutazioni in tempo reale, puoi valutare il modello dopo averlo distribuito su Amazon Bedrock richiamando il runtime di Amazon Bedrock. APIs

Attività di benchmark disponibili

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

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

Benchmark

Modalità

Descrizione

Metriche

Strategia

Sottoattività disponibile

mmlu

Testo

Comprensione linguistica in più attività: verifica le conoscenze in 57 materie.

accuratezza

zs_cot

mmlu_pro

Testo

MMLU — Professional Subset — Si concentra 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

zs_cot

gpa

Testo

Risposta a domande di fisica generale - Valuta la comprensione dei 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 di parole.

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

deviazione

zs

IFEval

Testo

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

accuratezza

zs

No

gen_qa

Testo

Valutazione personalizzata del set di dati: consente di utilizzare il proprio set di dati per il benchmarking, confrontando gli output del modello con le risposte di riferimento con metriche come ROUGE e BLEU.

tutto

gen_qa

No

mmmu

Multimodale

Massive Multidiscipline Multimodal Understanding (MMMU): benchmark a livello universitario che comprende domande a scelta multipla e a risposta aperta relative a 30 discipline.

accuratezza

zs_cot

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) per i prompt, calcolando la probabilità che B sia preferito ad A.

tutto

giudice

No

umano

Testo

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

passa @1

zs

No

Sono disponibili le seguenti mmlu sottoattività:

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" ]

Sono disponibili le seguenti bbh sottoattività:

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" ]

Sono disponibili le seguenti math sottoattività:

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

Comprensione dei parametri della ricetta

Esegui la configurazione

Di seguito è riportata una configurazione generale di esecuzione e una spiegazione dei parametri coinvolti.

run: name: eval_job_name model_type: amazon.nova-micro-v1:0:128k model_name_or_path: nova-micro/prod replicas: 1 data_s3_path: "" output_s3_path: s3://output_path
  • name: (Obbligatorio) Un nome descrittivo per il lavoro di valutazione. Questo aiuta a identificare il lavoro nella AWS console.

  • model_type: (Obbligatorio) Speciifica la variante del modello Amazon Nova da utilizzare. Non modificare manualmente questo campo. Le opzioni includono:

    • amazon.nova-micro-v1:0:128k

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

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

  • model_name_or_path: (Obbligatorio) Il percorso verso il modello base o il percorso S3 per il checkpoint post-addestrato. Le opzioni includono:

    • nova-micro/prod

    • nova-lite/prod

    • nova-pro/prod

    • (Percorso S3 per il checkpoint post-addestrato) s3://<escrow bucket>/<job id>/outputs/checkpoints

  • replicas: (Obbligatorio) Il numero di istanze di calcolo da utilizzare per l'addestramento distribuito. È necessario impostare questo valore su 1 perché i nodi multipli non sono supportati.

  • data_s3_path: (Obbligatorio) Il percorso S3 del set di dati di input. Lascia vuoto questo parametro, a meno che tu non stia usando Bring your own dataset o LLM come ricetta per giudici.

  • output_s3_path: (Obbligatorio) Il percorso S3 per memorizzare gli artefatti di valutazione dell'output. Nota che il bucket S3 di output deve essere creato dallo stesso account che sta creando il job.

Configurazione di valutazione

Di seguito è riportata una configurazione di valutazione del modello e una spiegazione dei parametri coinvolti.

evaluation: task: mmlu strategy: zs_cot subtask: mathematics metric: accuracy
  • task: (Obbligatorio) Speciifica il benchmark o l'attività di valutazione da utilizzare.

    Elenco delle attività supportate:

    • mmlu

    • mmlu_pro

    • bbh

    • gpa

    • matematica

    • strong_reject

    • gen_qa

    • ifeval

    • mmmu

    • llm_judge

    • umanevale

  • strategy: (Obbligatorio) Definisce l'approccio di valutazione:

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

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

    • gen_qa: una strategia specifica per creare le proprie ricette di set di dati.

    • judge: una strategia specifica per Amazon Nova LLM as Judge recipes.

  • subtask: (Facoltativo e rimovibile) Specifica una sottoattività specifica per determinate attività di valutazione. Rimuovila dalla tua ricetta se la tua attività non ha sottoattività.

  • metric: (Obbligatorio) La metrica di valutazione da utilizzare.

    • precisione: percentuale di risposte corrette

    • exact_match: (Per math benchmark), restituisce la velocità con cui le stringhe previste in input corrispondono esattamente ai loro riferimenti.

    • deflessione: (per strong reject benchmark), restituisce la deflessione relativa rispetto al modello base e la differenza nelle metriche di significatività.

    • pass @1: (Per humaneval benchmark) è una metrica utilizzata per misurare la percentuale di casi in cui la previsione con la massima affidabilità del modello corrisponde alla risposta corretta.

    • all: Restituisce le seguenti metriche:

      • Per un gen_qa benchmark personalizzato per il set di dati, restituisci 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 i testi, tenendo conto delle lacune nella corrispondenza.

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

        • quasi_exact_match: Simile alla corrispondenza esatta ma più indulgente, in genere ignora le differenze tra maiuscole e minuscole, punteggiatura e spazi bianchi.

        • 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 più mite, utilizza un confronto di testo normalizzato che ignora le differenze minori.

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

      • Per llm_judge creare un benchmark personalizzato per il set di dati, restituisci le seguenti metriche:

        • a_scores: Numero di vittorie per più passaggi di response_A valutazione in avanti e indietro.

        • a_scores_stderr: Errore standard response_A scores tra giudizi a coppie.

        • b_scores: Numero di vittorie per response_B più passaggi di valutazione in avanti e indietro.

        • b_scores_stderr: Errore standard response_B scores tra giudizi a coppie.

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

        • ties_stderr: Errore standard di parità tra i giudizi a coppie.

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

        • inference_error_stderr: Errore standard degli errori di inferenza tra i giudizi.

        • score: Punteggio aggregato basato sulle vittorie ottenute con passaggi in avanti e indietro. response_B

        • score_stderr: Errore standard del punteggio aggregato tra i giudizi a coppie.

        • winrate: la probabilità che response_B sia preferita rispetto a response_a calcolata utilizzando la probabilità di Bradley-Terry.

        • lower_rate: Limite inferiore (2,5° percentile) della percentuale di vittorie stimata derivante dal campionamento bootstrap.

Configurazione dell'inferenza

Di seguito è riportata una configurazione di inferenza e una spiegazione dei parametri coinvolti. Tutti i parametri sono opzionali:

inference: max_new_tokens: 200 top_k: -1 top_p: 1.0 temperature: 0
  • max_new_tokens: Il numero massimo di token da generare. Deve essere un numero intero.

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

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

  • temperature: Casualità nella selezione dei token. Valori più grandi introducono una maggiore casualità. Usa 0 per rendere deterministici i risultati. Questo valore deve essere un float con un valore minimo di 0.

Nota che perhumaneval, consigliamo la seguente configurazione di inferenza:

inference: top_k: 1 max_new_tokens: 1600 temperature: 0.0

Esempi di ricette di valutazione

Amazon Nova offre quattro tipi di ricette di valutazione, disponibili nell' GitHub archivio delle HyperPod ricette.

Ricette di benchmark testuali generali

Queste ricette ti consentono di valutare le funzionalità fondamentali dei modelli Amazon Nova attraverso una suite completa di benchmark di solo testo. Sono fornite nel formato. xxx_general_text_benchmark_eval.yaml

Ricetta generale di riferimento multimodale

Queste ricette consentono di valutare le funzionalità fondamentali dei modelli Amazon Nova attraverso una suite completa di benchmark multimodali. Sono fornite nel formato. xxx_general_multi_modal_benchmark_eval.yaml

Porta la tua ricetta di riferimento per il set di dati

Queste ricette ti consentono di utilizzare il tuo set di dati per il benchmarking e confrontare i risultati del modello con risposte di riferimento utilizzando diversi tipi di metriche. Sono fornite nel formato. xxx_bring_your_own_dataset_eval.yaml

Di seguito sono riportati i requisiti per portare il proprio set di dati:

  • Requisiti di formato dei file

    • È necessario includere un singolo gen_qa.jsonl file contenente esempi di valutazione.

    • Il tuo set di dati deve essere caricato in una posizione S3 a cui SageMaker AI Training Job possa accedervi.

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

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

    • query: (Obbligatorio) Stringa contenente la domanda o l'istruzione che richiede una risposta

    • response: (Obbligatorio) Stringa contenente l'output del modello previsto

    • system: (Facoltativo) 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

Ecco un esempio di inserimento del set di dati «Bring Your Own Data Set»

{ "system":"You are a 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 that 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 that follows 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" }

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

evaluation: task: gen_qa strategy: gen_qa metric: all

Si applicano le limitazioni seguenti:

  • È consentito un solo file JSONL per valutazione.

  • Il file deve seguire rigorosamente lo schema definito.

  • Limite di lunghezza del contesto: per ogni campione del set di dati, la lunghezza del contesto (inclusi i prompt di interrogazione di sistema e di ricerca) deve essere inferiore a 3,5 k

Amazon Nova LLM come ricetta di riferimento per Judge

Amazon Nova LLM as a Judge è una funzionalità di valutazione del modello che consente ai clienti di confrontare la qualità delle risposte di un modello con una risposta del modello di base su un set di dati personalizzato. Comprende un set di dati con richieste, risposte di base e risposte dello sfidante e utilizza un modello Nova Judge per fornire una metrica del tasso di successo basata sulla probabilità di Bradley-Terry con confronti a coppie.

Le ricette sono fornite nel formatoxxx_llm_judge_eval.yaml.

Di seguito sono riportati i requisiti del LLM come giudice:

  • Requisiti di formato dei file

    • Includi un singolo llm_judge.jsonl file contenente esempi di valutazione. Il nome del file deve esserellm_judge.jsonl.

    • Il tuo set di dati deve essere caricato in una posizione S3 a cui SageMaker AI HyperPod RIG può accedere.

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

    • Il set di dati di input dovrebbe garantire che tutti i record abbiano una lunghezza di contesto inferiore a 12k.

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

    • prompt: (Obbligatorio) Una stringa contenente il prompt per la risposta generata.

    • response_A: Una stringa contenente la risposta di base.

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

Ecco un esempio di LLM come giudice

{ "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 il tuo set di dati personalizzato, modifica la ricetta di valutazione con i seguenti campi obbligatori, non modificare alcun contenuto:

evaluation: task: llm_judge strategy: judge metric: all

Si applicano le limitazioni seguenti:

  • È consentito un solo file JSONL per valutazione.

  • Il file deve seguire rigorosamente lo schema definito.

  • I modelli Amazon Nova Judge sono gli stessi per tutte le specifiche della famiglia di modelli (ovvero Lite, Micro e Pro).

  • Al momento i modelli Custom Judge non sono supportati.

  • Limite di lunghezza del contesto: per ogni campione del set di dati, la lunghezza del contesto (inclusi i prompt di interrogazione di sistema e di ricerca) deve essere inferiore a 7k

Inizia un lavoro di valutazione

Di seguito viene fornita una configurazione consigliata del tipo di istanza di valutazione e del tipo di modello:

# Install Dependencies (Helm - https://helm.sh/docs/intro/install/) curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 chmod 700 get_helm.sh ./get_helm.sh rm -f ./get_helm.sh # Install the HyperPod CLI git clone --recurse-submodules https://github.com/aws/sagemaker-hyperpod-cli.git git checkout -b release_v2 cd sagemaker-hyperpod-cli pip install . # Verify the installation hyperpod --help # Connect to a HyperPod Cluster hyperpod connect-cluster --cluster-name cluster-name # Submit the Job using the recipe for eval # Namespace by default should be kubeflow hyperpod start-job [--namespace namespace] --recipe evaluation/nova/nova_micro_p5_48xl_general_text_benchmark_eval --override-parameters \ '{ "instance_type":"p5d.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-evaluation-repo:SM-HP-Eval-latest", "recipes.run.name": custom-run-name, "recipes.run.model_type": model_type, "recipes.run.model_name_or_path" " model name or finetune checkpoint s3uri, "recipes.run.data_s3_path": s3 for input data only for genqa and llm_judge, must be full S3 path that include filename, }' # List jobs hyperpod list-jobs [--namespace namespace] [--all-namespaces] # Getting Job details hyperpod get-job --job-name job-name [--namespace namespace] [--verbose] # Listing Pods hyperpod list-pods --job-name job-name --namespace namespace # Cancel Job hyperpod cancel-job --job-name job-name [--namespace namespace]

Dovresti anche essere in grado di visualizzare lo stato del processo tramite la console del cluster Amazon EKS.

Accedi e visualizza i tuoi risultati

Una volta completato con successo il processo di valutazione, puoi accedere e analizzare i risultati utilizzando le informazioni in questa sezione. In base a output_s3_path (ad esempios3://output_path/) definito nella ricetta, la struttura di output è la seguente:

job_name/ ├── eval-result/ │ └── job-name/ │ └── results_[timestamp].json │ └── details/ │ └── model/ │ └── execution-date-time/ │ └──details_task_name_#_datetime.parquet └── eval-tensorboard-result/ └── job-name/ └── eval/ └── events.out.tfevents.[timestamp]

I risultati delle metriche vengono archiviati nella posizione di output S3 specificata s3://output_path/job_name/eval-result/result-timestamp.json

I risultati di Tensorboard vengono archiviati nel percorso S3. s3://output_path/job_name/eval-tensorboard-result/eval/event.out.tfevents.epoch+ip

Gli output di inferenza, previsti per strong_reject egen_qa, vengono archiviati nel percorso S3. s3://output_path/job_name/eval-result/details/model/taskname.parquet

Per visualizzare le metriche di valutazione in Tensorboard, completa i seguenti passaggi:

  1. Passa a AI Tensorboard. SageMaker

  2. Seleziona le cartelle S3.

  3. Aggiungi il percorso della cartella S3, ad esempio. s3://output_path/job-name/eval-tensorboard-result/eval

  4. Attendi il completamento della sincronizzazione.

Sono disponibili le serie temporali, gli scalari e le visualizzazioni di testo.

È preferibile seguire le best practice seguenti:

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

  • Mantieni convenzioni di denominazione coerenti per un facile tracciamento.

  • Salva i risultati estratti in un luogo sicuro.

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

È possibile trovare i registri degli errori di HyperPod lavoro nel gruppo /aws/sagemaker/Clusters/cluster-id di CloudWatch log.