Tipos de avaliação e envio de trabalhos - SageMaker Inteligência Artificial da Amazon

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Tipos de avaliação e envio de trabalhos

Avaliação comparativa com conjuntos de dados padronizados

Use o tipo de avaliação de referência para avaliar a qualidade do seu modelo em conjuntos de dados de referência padronizados, incluindo conjuntos de dados populares como MMLU e BBH.

Referência Conjunto de dados personalizado suportado Modalidades Description Metrics Estratégia Subtarefa disponível
mmlu Não Texto Compreensão de linguagem multitarefa: testa o conhecimento em 57 disciplinas. accuracy zs_cot Sim
mmlu_pro Não Texto MMLU (subconjunto profissional): concentra-se em domínios profissionais como direito, medicina, contabilidade e engenharia. accuracy zs_cot Não
bbh Não Texto Tarefas de raciocínio avançado: um conjunto de problemas desafiadores que testam habilidades cognitivas e de resolução de problemas de nível mais alto. accuracy fs_cot Sim
gpqa Não Texto Resposta a perguntas de física geral: avalia a compreensão de conceitos de física e habilidades relacionadas à resolução de problemas. accuracy zs_cot Não
math Não Texto Resolução de problemas matemáticos: mede o raciocínio matemático em vários tópicos, como álgebra, cálculo e problemas de palavras. exact_match zs_cot Sim
strong_reject Não Texto Tarefa de controle de qualidade — testa a capacidade do modelo de detectar e rejeitar conteúdo impróprio, prejudicial ou incorreto. deflection zs Sim
ifeval Não Texto Avaliação de seguimento de instruções: avalia com que precisão um modelo segue as instruções dadas e conclui as tarefas conforme as especificações. accuracy zs Não

Para obter mais informações sobre formatos BYOD, consulteFormatos de conjunto de dados compatíveis para Bring-Your-Own-Dataset tarefas (BYOD).

Subtarefas disponíveis

A seguir, listamos as subtarefas disponíveis para avaliação do modelo em vários domínios, incluindo MMLU (Massive Multitask Language Understanding), BBH (Big Bench Hard) e MATH. StrongReject Essas subtarefas permitem avaliar o desempenho do modelo em capacidades e áreas de conhecimento específicas.

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

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

Subtarefas matemáticas

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

StrongReject Subtarefas

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

Envie seu trabalho de referência

SageMaker Studio
Uma configuração mínima para benchmarking por meio do 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()

Para obter mais informações sobre o envio de trabalhos de avaliação por meio do SageMaker Python SDK, consulte: https://sagemaker.readthedocs.io/en/stable/model_customization/evaluation.html

Avaliação do Large Language Model as a Judge (LLMAJ)

Use a avaliação LLM-as-a-judge (LLMAJ) para aproveitar outro modelo de fronteira para avaliar as respostas do modelo de destino. Você pode usar os modelos AWS Bedrock como juízes chamando a create_evaluation_job API para iniciar o trabalho de avaliação.

Para obter mais informações sobre os modelos de juízes suportados, consulte: https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html

Você pode usar dois formatos de métrica diferentes para definir a avaliação:

Envie uma tarefa LLMAJ com métricas integradas

SageMaker Studio
Uma configuração mínima para benchmarking do LLMAJ por meio do 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()

Para obter mais informações sobre o envio de trabalhos de avaliação por meio do SageMaker Python SDK, consulte: https://sagemaker.readthedocs.io/en/stable/model_customization/evaluation.html

Envie um trabalho LLMAJ com métricas personalizadas

Defina suas métricas personalizadas:

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

Para obter mais informações, consulte: https://docs.aws.amazon.com/bedrock/latest/userguide/model- evaluation-custom-metrics-prompt -formats.html

SageMaker Studio
Faça o upload da métrica personalizada por meio de Métricas personalizadas > Adicionar métricas personalizadas
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 )

Pontuadores personalizados

Defina sua própria função de pontuação personalizada para iniciar um trabalho de avaliação. O sistema fornece dois marcadores integrados: Prime math e Prime code. Você também pode trazer sua própria função de marcador. Você pode copiar o código da função do marcador diretamente ou trazer sua própria definição de função Lambda usando o ARN associado. Por padrão, os dois tipos de pontuador produzem resultados de avaliação que incluem métricas padrão, como pontuação na F1, ROUGE e BLEU.

Para obter mais informações sobre pontuadores integrados e personalizados e seus respectivos requisitos/contratos, consulte. Avalie com pontuadores predefinidos e personalizados

Registre seu conjunto de dados

Traga seu próprio conjunto de dados para um marcador personalizado registrando-o como um conjunto de dados do SageMaker Hub Content.

SageMaker Studio

No Studio, faça o upload do seu conjunto de dados usando a página dedicada de conjuntos de dados.

Conjunto de dados de avaliação registrado no Studio SageMaker
SageMaker Python SDK

No SDK do SageMaker Python, faça o upload do seu conjunto de dados usando a página dedicada de conjuntos de dados.

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()

Envie um trabalho de pontuação integrado

SageMaker Studio
Selecione entre execuções de código ou respostas matemáticas para obter pontuação personalizada integrada
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()

Selecione entre BuiltInMetric.PRIME_MATH ou BuiltInMetric.PRIME_CODE para pontuação incorporada.

Envie um trabalho de pontuação personalizado

Defina uma função de recompensa personalizada. Para obter mais informações, consulte Pontuadores personalizados (traga suas próprias métricas).

Registre a função de recompensa personalizada

SageMaker Studio
Navegando até SageMaker Studio > Assets > Evaluator > Criar avaliador > Criar função de recompensa
Envie o trabalho de avaliação do Custom Scorer referenciando a função de recompensa predefinida registrada em Custom Scorer > Custom Scorer > Custom metrics
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()