Types d'évaluation et soumission de Job - Amazon SageMaker AI

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Types d'évaluation et soumission de Job

Analyse comparative avec des ensembles de données standardisés

Utilisez le type d'évaluation de référence pour évaluer la qualité de votre modèle dans des ensembles de données de référence standardisés, y compris des ensembles de données populaires tels que MMLU et BBH.

Comparaison Ensemble de données personnalisé pris en charge Modalités Description Métriques Stratégie Sous-tâche disponible
mmlu Non Texte Compréhension linguistique multitâche : teste les connaissances dans 57 domaines. précision zs_cot Oui
mmlu_pro Non Texte MMLU – Sous-ensemble professionnel : se concentre sur les domaines professionnels tels que le droit, la médecine, la comptabilité et l’ingénierie. précision zs_cot Non
bbh Non Texte Tâches de raisonnement avancées : ensemble de problèmes difficiles qui mettent à l’épreuve des compétences cognitives et de résolution de problèmes de haut niveau. précision fs_cot Oui
gpqa Non Texte Réponses aux questions de physique générale : évalue la compréhension des concepts de physique et les capacités de résolution de problèmes connexes. précision zs_cot Non
math Non Texte Résolution de problèmes mathématiques : mesure le raisonnement mathématique dans des domaines tels que l’algèbre, le calcul et les problèmes de mots. exact_match zs_cot Oui
strong_reject Non Texte Tâche de contrôle qualité : teste la capacité du modèle à détecter et à rejeter le contenu inapproprié, préjudiciable ou incorrect. deflection zs Oui
ifeval Non Texte Évaluation suivant les instructions : évalue la précision avec laquelle un modèle suit les instructions données et exécute les tâches conformément aux spécifications. précision zs Non

Pour plus d'informations sur les formats BYOD, consultezFormats de jeu de données pris en charge pour les tâches Bring-Your-Own-Dataset (BYOD).

Sous-tâches disponibles

La liste suivante répertorie les sous-tâches disponibles pour l'évaluation de modèles dans plusieurs domaines, notamment MMLU (Massive Multitask Language Understanding), BBH (Big Bench Hard) et MATH. StrongReject Ces sous-tâches vous permettent d’évaluer les performances de votre modèle par rapport à des capacités et à des domaines de connaissances spécifiques.

Sous-tâches du 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" ]

Sous-tâches 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" ]

Sous-tâches mathématiques

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

StrongReject Sous-tâches

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

Soumettez votre offre d'emploi de référence

SageMaker Studio
Une configuration minimale pour l'analyse comparative via 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()

Pour plus d'informations sur la soumission de tâches d'évaluation via le SDK SageMaker Python, voir : https://sagemaker.readthedocs.io/en/stable/model_customization/evaluation.html

Évaluation du modèle linguistique étendu en tant que juge (LLMAJ)

Utilisez l'évaluation LLM-as-a-judge (LLMAJ) pour tirer parti d'un autre modèle de pointe afin de classer les réponses de votre modèle cible. Vous pouvez utiliser les modèles AWS Bedrock comme juges en appelant create_evaluation_job l'API pour lancer la tâche d'évaluation.

Pour plus d'informations sur les modèles de juges pris en charge, voir : https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html

Vous pouvez utiliser deux formats de mesures différents pour définir l'évaluation :

Soumettre une tâche LLMAJ de métriques intégrée

SageMaker Studio
Une configuration minimale pour le benchmarking LLMAJ via 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()

Pour plus d'informations sur la soumission de tâches d'évaluation via le SDK SageMaker Python, voir : https://sagemaker.readthedocs.io/en/stable/model_customization/evaluation.html

Soumettre une tâche LLMAJ de métriques personnalisée

Définissez vos métriques personnalisées :

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

Pour plus d'informations, voir : https://docs.aws.amazon.com/bedrock/latest/userguide/model- evaluation-custom-metrics-prompt -formats.html

SageMaker Studio
Téléchargez la métrique personnalisée via Métriques personnalisées > Ajouter des métriques personnalisées
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 )

Scorers personnalisés

Définissez votre propre fonction de notation personnalisée pour lancer une tâche d'évaluation. Le système fournit deux marqueurs intégrés : Prime math et Prime code. Vous pouvez également apporter votre propre fonction de score. Vous pouvez copier directement le code de votre fonction scorer ou apporter votre propre définition de fonction Lambda à l'aide de l'ARN associé. Par défaut, les deux types de marqueurs produisent des résultats d'évaluation qui incluent des métriques standard telles que le score F1, ROUGE et BLEU.

Pour plus d'informations sur les évaluateurs intégrés et personnalisés et leurs exigences/contrats respectifs, voir. Évaluez à l'aide de marqueurs prédéfinis et personnalisés

Enregistrez votre jeu de données

Apportez votre propre jeu de données pour un scorer personnalisé en l'enregistrant en tant que jeu de données SageMaker Hub Content Dataset.

SageMaker Studio

Dans Studio, téléchargez votre jeu de données à l'aide de la page dédiée aux ensembles de données.

Ensemble de données d'évaluation enregistré dans SageMaker Studio
SageMaker Python SDK

Dans le SDK SageMaker Python, téléchargez votre ensemble de données à l'aide de la page dédiée aux ensembles de données.

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

Soumettre une tâche de scorer intégrée

SageMaker Studio
Choisissez parmi des exécutions de code ou des réponses mathématiques pour une notation personnalisée intégrée
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()

Sélectionnez parmi BuiltInMetric.PRIME_MATH ou BuiltInMetric.PRIME_CODE pour la notation intégrée.

Soumettre un job de scorer personnalisé

Définissez une fonction de récompense personnalisée. Pour de plus amples informations, veuillez consulter Scorateurs personnalisés (apportez vos propres statistiques).

Enregistrez la fonction de récompense personnalisée

SageMaker Studio
Accédez à SageMaker Studio > Ressources > Évaluateur > Créer un évaluateur > Créer une fonction de récompense
Soumettez la tâche d'évaluation de Custom Scorer faisant référence à la fonction de récompense prédéfinie enregistrée dans Custom Scorer > Métriques personnalisées
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()