Tipi di valutazione e Job Submission - 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à.

Tipi di valutazione e Job Submission

Analisi comparativa con set di dati standardizzati

Utilizza il tipo Benchmark Evaluation per valutare la qualità del tuo modello su set di dati di benchmark standardizzati, inclusi set di dati popolari come MMLU e BBH.

Benchmark Set di dati personalizzato supportato Modalità Description Metriche Strategia Sottoattività disponibile
mmlu No Testo Massive Multitask Language Understanding (MMLU) - Verifica la conoscenza di 57 materie. accuratezza zs_cot
mmlu_pro No Testo MMLU - Sottoinsieme professionale - Incentrato su domini professionali come legge, medicina, contabilità e ingegneria. accuratezza zs_cot No
bbh No 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 No 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 No Testo Risoluzione di problemi matematici - Misura il ragionamento matematico su argomenti quali algebra, calcolo e problemi testuali. exact_match zs_cot
strong_reject No Testo Attività di controllo della qualità: verifica la capacità del modello di rilevare e rifiutare contenuti inappropriati, dannosi o errati. deflection zs
ifeval No 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

Per ulteriori informazioni sui formati BYOD, vedere. Formati di set di dati supportati per attività Bring-Your-Own-Dataset (BYOD)

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. StrongReject Queste sottoattività consentono di valutare le prestazioni del modello in base a funzionalità e aree di conoscenza specifiche.

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

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

Sottoattività matematiche

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

StrongReject Sottoattività

STRONG_REJECT_SUBTASKS = [ "gcg_transfer_harmbench", "gcg_transfer_universal_attacks", "combination_3", "combination_2", "few_shot_json", "dev_mode_v2", "dev_mode_with_rant", "wikipedia_with_title", "distractors", "wikipedia", "style_injection_json", "style_injection_short", "refusal_suppression", "prefix_injection", "distractors_negated", "poems", "base64", "base64_raw", " base64_input_only", "base64_output_only", "evil_confidant", "aim", "rot_13", "disemvowel", "auto_obfuscation", "auto_payload_splitting", "pair", "pap_authority_endorsement", "pap_evidence_based_persuasion", "pap_expert_endorsement", "pap_logical_appeal", "pap_misrepresentation" ]

Invia il tuo lavoro di riferimento

SageMaker Studio
Una configurazione minima per il benchmarking tramite Studio SageMaker
SageMaker Python SDK
from sagemaker.train.evaluate import get_benchmarks from sagemaker.train.evaluate import BenchMarkEvaluator Benchmark = get_benchmarks() # Create evaluator with MMLU benchmark evaluator = BenchMarkEvaluator( benchmark=Benchmark.MMLU, model="arn:aws:sagemaker:<region>:<account-id>:model-package/<model-package-name>/<version>", s3_output_path="s3://<bucket-name>/<prefix>/", evaluate_base_model=False ) execution = evaluator.evaluate()

Per ulteriori informazioni sull'invio di lavori di valutazione tramite SageMaker Python SDK, consulta: https://sagemaker.readthedocs.io/en/stable/model_customization/evaluation.html

Valutazione del Large Language Model as a Judge (LLMAJ)

Utilizza la valutazione LLM-as-a-judge (LLMAJ) per sfruttare un altro modello di frontiera per valutare le risposte del modello target. Puoi utilizzare i modelli AWS Bedrock come giudici chiamando l'create_evaluation_jobAPI per avviare il processo di valutazione.

Per ulteriori informazioni sui modelli di arbitro supportati, consulta: -supported.html https://docs.aws.amazon.com/bedrock/ latest/userguide/models

È possibile utilizzare 2 diversi formati metrici per definire la valutazione:

Invia un job LLMAJ con metriche integrate

SageMaker Studio
Una configurazione minima per il benchmarking LLMAJ tramite Studio SageMaker
SageMaker Python SDK
from sagemaker.train.evaluate import LLMAsJudgeEvaluator evaluator = LLMAsJudgeEvaluator( model="arn:aws:sagemaker:<region>:<account-id>:model-package/<model-package-name>/<version>", evaluator_model="<bedrock-judge-model-id>", dataset="s3://<bucket-name>/<prefix>/<dataset-file>.jsonl", builtin_metrics=["<builtin-metric-1>", "<builtin-metric-2>"], s3_output_path="s3://<bucket-name>/<prefix>/", evaluate_base_model=False ) execution = evaluator.evaluate()

Per ulteriori informazioni sull'invio di lavori di valutazione tramite SageMaker Python SDK, consulta: https://sagemaker.readthedocs.io/en/stable/model_customization/evaluation.html

Invia un job LLMAJ con metriche personalizzate

Definisci le tue metriche personalizzate:

{ "customMetricDefinition": { "name": "PositiveSentiment", "instructions": ( "You are an expert evaluator. Your task is to assess if the sentiment of the response is positive. " "Rate the response based on whether it conveys positive sentiment, helpfulness, and constructive tone.\n\n" "Consider the following:\n" "- Does the response have a positive, encouraging tone?\n" "- Is the response helpful and constructive?\n" "- Does it avoid negative language or criticism?\n\n" "Rate on this scale:\n" "- Good: Response has positive sentiment\n" "- Poor: Response lacks positive sentiment\n\n" "Here is the actual task:\n" "Prompt: {{prompt}}\n" "Response: {{prediction}}" ), "ratingScale": [ {"definition": "Good", "value": {"floatValue": 1}}, {"definition": "Poor", "value": {"floatValue": 0}} ] } }

Per ulteriori informazioni, consulta: https://docs.aws.amazon.com/bedrock/latest/userguide/model- -formats.html evaluation-custom-metrics-prompt

SageMaker Studio
Carica la metrica personalizzata tramite Metriche personalizzate > Aggiungi metriche personalizzate
SageMaker Python SDK
evaluator = LLMAsJudgeEvaluator( model="arn:aws:sagemaker:<region>:<account-id>:model-package/<model-package-name>/<version>", evaluator_model="<bedrock-judge-model-id>", dataset="s3://<bucket-name>/<prefix>/<dataset-file>.jsonl", custom_metrics=custom_metric_dict = { "customMetricDefinition": { "name": "PositiveSentiment", "instructions": ( "You are an expert evaluator. Your task is to assess if the sentiment of the response is positive. " "Rate the response based on whether it conveys positive sentiment, helpfulness, and constructive tone.\n\n" "Consider the following:\n" "- Does the response have a positive, encouraging tone?\n" "- Is the response helpful and constructive?\n" "- Does it avoid negative language or criticism?\n\n" "Rate on this scale:\n" "- Good: Response has positive sentiment\n" "- Poor: Response lacks positive sentiment\n\n" "Here is the actual task:\n" "Prompt: {{prompt}}\n" "Response: {{prediction}}" ), "ratingScale": [ {"definition": "Good", "value": {"floatValue": 1}}, {"definition": "Poor", "value": {"floatValue": 0}} ] } }, s3_output_path="s3://<bucket-name>/<prefix>/", evaluate_base_model=False )

Scorer personalizzati

Definisci la tua funzione di punteggio personalizzata per avviare un processo di valutazione. Il sistema fornisce due marcatori integrati: Prime math e Prime code. Puoi anche utilizzare la tua funzione di scorer. Puoi copiare direttamente il codice della funzione scorer o portare la tua definizione di funzione Lambda utilizzando l'ARN associato. Per impostazione predefinita, entrambi i tipi di scorer producono risultati di valutazione che includono metriche standard come F1 score, ROUGE e BLEU.

Per ulteriori informazioni sui marcatori integrati e personalizzati e sui rispettivi requisiti/contratti, vedere. Valuta con punteggi preimpostati e personalizzati

Registra il tuo set di dati

Porta il tuo set di dati per lo scorer personalizzato registrandolo come Hub Content Dataset. SageMaker

SageMaker Studio

In Studio, carica il tuo set di dati utilizzando la pagina Datasets dedicata.

Set di dati di valutazione registrato in Studio SageMaker
SageMaker Python SDK

In SageMaker Python SDK, carica il tuo set di dati utilizzando la pagina Datasets dedicata.

from sagemaker.ai_registry.dataset import DataSet dataset = DataSet.create( name="your-bring-your-own-dataset", source="s3://<bucket-name>/<prefix>/<dataset-file>.jsonl" ) dataset.refresh()

Invia un lavoro di scorer integrato

SageMaker Studio
Scegli tra esecuzioni di codice o risposte matematiche per un punteggio personalizzato integrato
SageMaker Python SDK
from sagemaker.train.evaluate import CustomScorerEvaluator from sagemaker.train.evaluate import get_builtin_metrics BuiltInMetric = get_builtin_metrics() evaluator_builtin = CustomScorerEvaluator( evaluator=BuiltInMetric.PRIME_MATH, dataset="arn:aws:sagemaker:<region>:<account-id>:hub-content/<hub-content-id>/DataSet/your-bring-your-own-dataset/<version>", model="arn:aws:sagemaker:<region>:<account-id>:model-package/<model-package-name>/<version>", s3_output_path="s3://<bucket-name>/<prefix>/", evaluate_base_model=False ) execution = evaluator.evaluate()

Seleziona da BuiltInMetric.PRIME_MATH o BuiltInMetric.PRIME_CODE per Built-In Scoring.

Invia un lavoro di marcatore personalizzato

Definisci una funzione di ricompensa personalizzata. Per ulteriori informazioni, consulta Scorer personalizzati (Bring Your Own Metrics).

Registra la funzione di ricompensa personalizzata

SageMaker Studio
Passa a SageMaker Studio > Assets > Evaluator > Crea valutatore > Crea funzione di ricompensa
Inviate il lavoro di valutazione Custom Scorer facendo riferimento alla funzione di ricompensa preimpostata registrata in Custom Scorer > Metriche personalizzate
SageMaker Python SDK
from sagemaker.ai_registry.evaluator import Evaluator from sagemaker.ai_registry.air_constants import REWARD_FUNCTION evaluator = Evaluator.create( name = "your-reward-function-name", source="/path_to_local/custom_lambda_function.py", type = REWARD_FUNCTION )
evaluator = CustomScorerEvaluator( evaluator=evaluator, dataset="s3://<bucket-name>/<prefix>/<dataset-file>.jsonl", model="arn:aws:sagemaker:<region>:<account-id>:model-package/<model-package-name>/<version>", s3_output_path="s3://<bucket-name>/<prefix>/", evaluate_base_model=False ) execution = evaluator.evaluate()