Tipos de evaluación y presentación de trabajos - Amazon SageMaker AI

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Tipos de evaluación y presentación de trabajos

Evaluación comparativa con conjuntos de datos estandarizados

Utilice el tipo de evaluación comparativa para evaluar la calidad de su modelo en conjuntos de datos de referencia estandarizados, incluidos conjuntos de datos populares como MMLU y BBH.

Referencia Se admiten conjuntos de datos personalizados Modalidades Description (Descripción) Métricas Strategy (Estrategia) Subtarea disponible
mmlu No Texto Comprensión del lenguaje multitarea: evalúa los conocimientos sobre 57 materias. precisión zs_cot
mmlu_pro No Texto MMLU (subconjunto profesional): se centra en dominios profesionales como derecho, medicina, contabilidad e ingeniería. precisión zs_cot No
bbh No Texto Tareas de razonamiento avanzado: conjunto de problemas complejos que ponen a prueba las habilidades cognitivas y de resolución de problemas de nivel superior. precisión fs_cot
gpqa No Texto Respuesta a preguntas de física general: evalúa la comprensión de conceptos de física y habilidades relacionadas con la resolución de problemas. precisión zs_cot No
math No Texto Resolución de problemas matemáticos: mide el razonamiento matemático en temas como álgebra, cálculo y problemas verbales. exact_match zs_cot
strong_reject No Texto Tarea de control de calidad: prueba la capacidad del modelo para detectar y rechazar contenido inapropiado, dañino o incorrecto. desviación zs
ifeval No Texto Evaluación de seguimiento de instrucciones: mide la precisión con la que un modelo sigue las instrucciones dadas y completa las tareas según las especificaciones. precisión zs No

Para obtener más información sobre los formatos BYOD, consulte. Formatos de conjuntos de datos compatibles para Bring-Your-Own-Dataset tareas (BYOD)

Subtareas disponibles

A continuación, se enumeran las subtareas disponibles para la evaluación de modelos en varios dominios, como MMLU (Massive Multitask Language Understanding), BBH (Big Bench Hard) y MATH. StrongReject Estas subtareas le permiten evaluar el rendimiento del modelo en función de capacidades y áreas de conocimiento específicas.

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

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

Subtareas de matemáticas

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

StrongReject Subtareas

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

Envía tu trabajo de referencia

SageMaker Studio
Una configuración mínima para realizar evaluaciones comparativas a través de 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 obtener más información sobre el envío de trabajos de evaluación a través del SDK de SageMaker Python, consulte: https://sagemaker.readthedocs.io/en/stable/model_customization/evaluation.html

Evaluación de un modelo lingüístico amplio como juez (LLMAJ)

Utilice la evaluación LLM-as-a-judge (LLMAJ) para aprovechar otro modelo fronterizo y calificar las respuestas del modelo objetivo. Puede utilizar los modelos AWS Bedrock como jueces llamando a la create_evaluation_job API para iniciar el trabajo de evaluación.

Para obtener más información sobre los modelos de jueces compatibles, consulte: -supported.html https://docs.aws.amazon.com/bedrock/ latest/userguide/models

Puede utilizar dos formatos métricos diferentes para definir la evaluación:

Envíe un trabajo LLMAJ con métricas integradas

SageMaker Studio
Una configuración mínima para la evaluación comparativa de LLMAJ a través de 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 obtener más información sobre el envío de trabajos de evaluación a través del SDK de SageMaker Python, consulte: https://sagemaker.readthedocs.io/en/stable/model_customization/evaluation.html

Envíe un trabajo de LLMAJ con métricas personalizadas

Defina su (s) métrica (s) personalizada (s):

{ "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 obtener más información, consulte: https://docs.aws.amazon.com/bedrock/latest/userguide/model- evaluation-custom-metrics-prompt -formats.html

SageMaker Studio
Cargue la métrica personalizada en Métricas personalizadas > Añadir 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 )

Puntuadores personalizados

Defina su propia función de puntuación personalizada para iniciar un trabajo de evaluación. El sistema incluye dos marcadores integrados: Prime math y Prime code. También puedes traer tu propia función de anotador. Puede copiar el código de la función de puntuación directamente o crear su propia definición de función de Lambda mediante el ARN asociado. De forma predeterminada, ambos tipos de anotadores producen resultados de evaluación que incluyen métricas estándar, como la puntuación F1, ROUGE y BLEU.

Para obtener más información sobre los goleadores integrados y personalizados y sus requisitos o contratos respectivos, consulte. Evalúe con marcadores preestablecidos y personalizados

Registre su conjunto de datos

Crea tu propio conjunto de datos para un marcador personalizado registrándolo como un conjunto de datos de contenido de SageMaker Hub.

SageMaker Studio

En Studio, carga tu conjunto de datos a través de la página dedicada a los conjuntos de datos.

Conjunto de datos de evaluación registrado en Studio SageMaker
SageMaker Python SDK

En el SDK de SageMaker Python, carga tu conjunto de datos mediante la página dedicada a los conjuntos de datos.

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

Envía un trabajo de anotador integrado

SageMaker Studio
Seleccione entre ejecuciones de código o respuestas matemáticas para obtener una puntuación 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()

Seleccione entre BuiltInMetric.PRIME_MATH o BuiltInMetric.PRIME_CODE para la puntuación integrada.

Envíe un trabajo de anotador personalizado

Defina una función de recompensa personalizada. Para obtener más información, consulte Puntuadores personalizados (traiga sus propias métricas).

Registre la función de recompensa personalizada

SageMaker Studio
Vaya a SageMaker Studio > Activos > Evaluador > Crear evaluador > Crear función de recompensa
Envíe el trabajo de evaluación de Custom Scorer haciendo referencia a la función de recompensa preestablecida registrada en Custom Scorer > Métricas personalizadas
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()