評価タイプとジョブ送信 - Amazon SageMaker AI

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

評価タイプとジョブ送信

標準化されたデータセットによるベンチマーク

ベンチマーク評価タイプを使用して、MMLU や BBH などの一般的なデータセットを含む標準化されたベンチマークデータセット全体でモデルの品質を評価します。

ベンチマーク サポートされているカスタムデータセット モダリティ 説明 メトリクス 方針 使用可能なサブタスク
mmlu いいえ テキスト マルチタスク言語理解 — 57 のテーマの知識をテストします。 正確性 zs_cot はい
mmlu_pro いいえ テキスト MMLU – プロフェッショナルサブセット – 法律、医学、会計、エンジニアリングなどのプロフェッショナル分野に焦点を当てています。 正確性 zs_cot いいえ
bbh いいえ テキスト 高度な推論タスク – 高レベルの認知スキルと問題解決スキルをテストする困難な問題のコレクション。 正確性 fs_cot はい
gpqa いいえ テキスト 一般的な物理質問への回答 – 物理の概念と関連する問題解決能力の理解を評価します。 正確性 zs_cot いいえ
算術 いいえ テキスト 数学的問題解決 — 代数、微積分、単語の問題など、複数のトピックにわたって数学的推論を測定します。 exact_match zs_cot はい
strong_reject いいえ テキスト 品質管理タスク – 不適切、有害、または誤ったコンテンツを検出して拒否するモデルの能力をテストします。 deflection zs はい
ifeval いいえ テキスト 指示に従った評価 – どの程度モデルが所定の指示に正確に従い、仕様に従ってタスクを完了したかを評価します。 正確性 zs いいえ

BYOD 形式の詳細については、「」を参照してくださいBring-Your-Own-Dataset (BYOD) タスクでサポートされているデータセット形式

使用可能なサブタスク

以下に、MMLU (Massive Multitask Language Understanding)、BBH (Big Bench Hard)、StrongReject、MATH など、複数のドメインでモデル評価に使用できるサブタスクを示します。これらのサブタスクでは、特定の機能や知識領域におけるモデルのパフォーマンスを評価できます。

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

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

数学サブタスク

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

StrongReject サブタスク

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

ベンチマークジョブを送信する

SageMaker Studio
SageMaker Studio によるベンチマークの最小設定
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()

SageMaker Python SDK による評価ジョブの送信の詳細については、https://sagemaker.readthedocs.io/en/stable/model_customization/evaluation.html を参照してください。

Large Language Model as a Judge (LLMAJ) の評価

LLM-as-a-judge (LLMAJ) 評価を使用して、別のフロンティアモデルを活用してターゲットモデルのレスポンスを評価できます。create_evaluation_job API を呼び出して評価ジョブを起動することで、 AWS Bedrock モデルを審査員として使用できます。

サポートされている判事モデルの詳細については、https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html を参照してください。

2 つの異なるメトリクス形式を使用して評価を定義できます。

組み込みメトリクス LLMAJ ジョブを送信する

SageMaker Studio
SageMaker Studio による LLMAJ ベンチマークの最小設定
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()

SageMaker Python SDK による評価ジョブの送信の詳細については、https://sagemaker.readthedocs.io/en/stable/model_customization/evaluation.html を参照してください。

カスタムメトリクス LLMAJ ジョブを送信する

カスタムメトリクス (複数可) を定義します。

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

詳細については、https://docs.aws.amazon.com/bedrock/latest/userguide/model-evaluation-custom-metrics-prompt-formats.html を参照してください。

SageMaker Studio
カスタムメトリクス経由でカスタムメトリクスをアップロードする > カスタムメトリクスを追加する
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 )

カスタムスコアラー

独自のカスタムスコアラー関数を定義して、評価ジョブを起動します。システムは、Prime Math と Prime コードの 2 つの組み込みスコアラーを提供します。独自のスコアラー関数を使用することもできます。スコアラー関数コードを直接コピーするか、関連付けられた ARN を使用して独自の Lambda 関数定義を取り込むことができます。デフォルトでは、どちらのスコアラータイプも、F1 スコア、ROUGE、BLEU などの標準メトリクスを含む評価結果を生成します。

組み込みスコアラーとカスタムスコアラー、およびそれぞれの要件/契約の詳細については、「」を参照してくださいプリセットおよびカスタムスコアラーによる評価

データセットを登録する

SageMaker Hub コンテンツデータセットとして登録して、カスタムスコアラーに独自のデータセットを作成します。

SageMaker Studio

Studio で、専用のデータセットページを使用してデータセットをアップロードします。

SageMaker Studio に登録された評価データセット
SageMaker Python SDK

SageMaker Python SDK で、専用のデータセットページを使用してデータセットをアップロードします。

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

組み込みスコアラージョブを送信する

SageMaker Studio
組み込みカスタムスコアリングのコード実行または数学回答から選択
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()

組み込みスコアリングBuiltInMetric.PRIME_CODEには BuiltInMetric.PRIME_MATH または を選択します。

カスタムスコアラージョブを送信する

カスタム報酬関数を定義します。詳細については、「カスタムスコアラー (独自のメトリクスを使用)」を参照してください。

カスタム報酬関数を登録する

SageMaker Studio
SageMaker Studio に移動する > アセット > 評価者 > 評価者を作成する > 報酬関数を作成する
登録済みのプリセット報酬関数を参照するカスタムスコアラー評価ジョブをカスタムスコアラー > カスタムメトリクスで送信する
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()