View a markdown version of this page

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 Multi-task Compreensão da linguagem — 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 Quality-Control Tarefa — testa a capacidade do modelo de detectar e rejeitar conteúdo impróprio, prejudicial ou incorreto. deflection zs Sim
ifeval Não Texto Instruction-Following Avaliação — mede a precisão com que um modelo segue as instruções dadas e conclui as tarefas de acordo com 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.

  • SageMaker LLM como juiz: esse recurso é desenvolvido pela Amazon Bedrock Evaluations. Seu uso desse recurso está sujeito aos preços das avaliações do Amazon Bedrock, consulte os Termos de Serviço aplicáveis ao Amazon Bedrock e os termos que se aplicam ao uso de modelos de terceiros. O Amazon Bedrock Evaluations pode transmitir dados com segurança Regiões da AWS dentro de sua região para processamento. Para obter mais informações, acesse a documentação do Amazon Bedrock Evaluations.

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 requirements/contracts, consulteAvalie 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 uma pontuação Built-In personalizada
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 Built-In pontuação.

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