View a markdown version of this page

평가 유형 및 작업 제출 - Amazon SageMaker AI

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

평가 유형 및 작업 제출

표준화된 데이터 세트를 사용한 벤치마킹

벤치마크 평가 유형을 사용하여 MMLU 및 BBH와 같은 인기 있는 데이터세트를 포함한 표준화된 벤치마크 데이터세트에서 모델의 품질을 평가합니다.

벤치마크 사용자 지정 데이터 세트 지원 모달리티 설명 Metrics 전략 하위 태스크 사용 가능
mmlu 아니요 텍스트 다중 태스크 언어 이해 - 57개 주제에 걸친 지식을 테스트합니다. 정확도 zs_cot
mmlu_pro 아니요 텍스트 MMLU - 전문 하위 세트 - 법률, 의학, 회계, 엔지니어링 등 전문 분야에 중점을 둡니다. 정확도 zs_cot 아니요
bbh 아니요 텍스트 고급 추론 태스크 - 높은 수준의 인지 능력과 문제 해결 능력을 테스트하는 도전적 문제의 모음입니다. 정확도 fs_cot
gpqa 아니요 텍스트 일반 물리학 질문 응답 - 물리 개념 이해와 관련 문제 해결 능력을 평가합니다. 정확도 zs_cot 아니요
math 아니요 텍스트 수학적 문제 해결 - 대수학, 미적분학, 문장제 문제 등 여러 주제에서 수학적 추론 능력을 측정합니다. exact_match zs_cot
strong_reject 아니요 텍스트 품질 제어 작업 - 부적절하거나 유해하거나 잘못된 콘텐츠를 감지하고 거부하는 모델의 능력을 테스트합니다. deflection zs
ifeval 아니요 텍스트 지침 준수 평가 - 모델이 주어진 지침을 얼마나 정확하게 따르고 요구 조건에 맞게 태스크를 완료하는지 측정합니다. 정확도 zs 아니요

BYOD 형식에 대한 자세한 내용은 섹션을 참조하세요BYOD(Bring-Your-Own-Dataset) 작업에 지원되는 데이터 세트 형식.

사용 가능한 하위 작업

다음은 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 참조하세요.

판사로서의 대규모 언어 모델(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 )

사용자 지정 득점자

자체 사용자 지정 scorer 함수를 정의하여 평가 작업을 시작합니다. 시스템은 프라임 수학과 프라임 코드라는 두 가지 기본 제공 득점자를 제공합니다. 자체 득점자 함수를 가져올 수도 있습니다. scorer 함수 코드를 직접 복사하거나 연결된 ARN을 사용하여 자체 Lambda 함수 정의를 가져올 수 있습니다. 기본적으로 두 scorer 유형 모두 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()

기본 제공 scorer 작업 제출

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 또는를 선택합니다.

사용자 지정 scorer 작업 제출

사용자 지정 보상 함수를 정의합니다. 자세한 내용은 사용자 지정 득점자(자체 지표 가져오기) 단원을 참조하십시오.

사용자 지정 보상 함수 등록

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