

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

# 평가 유형 및 작업 제출
<a name="model-customize-evaluation-types"></a>

## 표준화된 데이터 세트를 사용한 벤치마킹
<a name="model-customize-evaluation-benchmarking"></a>

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


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

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

### 사용 가능한 하위 작업
<a name="model-customize-evaluation-benchmarking-subtasks"></a>

다음은 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"
]
```

### 벤치마크 작업 제출
<a name="model-customize-evaluation-benchmarking-submit"></a>

------
#### [ SageMaker Studio ]

![\[SageMaker Studio를 통한 벤치마킹을 위한 최소 구성\]](http://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/images/benchmark-submission-sagemaker-studio.png)


------
#### [ 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\$1customization/evaluation.html](https://sagemaker.readthedocs.io/en/stable/model_customization/evaluation.html) 참조하세요.

------

## 판사로서의 대규모 언어 모델(LLMAJ) 평가
<a name="model-customize-evaluation-llmaj"></a>

LLM-as-a-judge(LLMAJ) 평가를 사용하여 다른 경계 모델을 활용하여 대상 모델 응답의 등급을 매깁니다. 평가 작업을 시작하기 위해 `create_evaluation_job` API를 호출하여 AWS Bedrock 모델을 판단자로 사용할 수 있습니다.

지원되는 판사 모델에 대한 자세한 내용은 [https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html](https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html) 참조하십시오.

2가지 지표 형식을 사용하여 평가를 정의할 수 있습니다.
+ **기본 제공 지표:** AWS Bedrock 기본 제공 지표를 활용하여 모델의 추론 응답 품질을 분석합니다. 자세한 내용은 [https://docs.aws.amazon.com/bedrock/latest/userguide/model-evaluation-type-judge-prompt.html](https://docs.aws.amazon.com/bedrock/latest/userguide/model-evaluation-type-judge-prompt.html) 참조하십시오.
+ **사용자 지정 지표:** Bedrock Evaluation 사용자 지정 지표 형식으로 사용자 지정 지표를 정의하여 자체 지침을 사용하여 모델의 추론 응답 품질을 분석합니다. 자세한 내용은 [https://docs.aws.amazon.com/bedrock/latest/userguide/model-evaluation-custom-metrics-prompt-formats.html](https://docs.aws.amazon.com/bedrock/latest/userguide/model-evaluation-custom-metrics-prompt-formats.html) 참조하십시오.

### 기본 제공 지표 LLMAJ 작업 제출
<a name="model-customize-evaluation-llmaj-builtin"></a>

------
#### [ SageMaker Studio ]

![\[SageMaker Studio를 통한 LLMAJ 벤치마킹을 위한 최소 구성\]](http://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/images/llmaj-as-judge-submission-sagemaker-studio.png)


------
#### [ 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\$1customization/evaluation.html](https://sagemaker.readthedocs.io/en/stable/model_customization/evaluation.html) 참조하십시오.

------

### 사용자 지정 지표 LLMAJ 작업 제출
<a name="model-customize-evaluation-llmaj-custom"></a>

사용자 지정 지표(들)를 정의합니다.

```
{
    "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](https://docs.aws.amazon.com/bedrock/latest/userguide/model-evaluation-custom-metrics-prompt-formats.html) 참조하십시오.

------
#### [ SageMaker Studio ]

![\[사용자 지정 지표 > 사용자 지정 지표 추가를 통해 사용자 지정 지표 업로드\]](http://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/images/custom-llmaj-metrics-submission-sagemaker-studio.png)


------
#### [ 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
)
```

------

## 사용자 지정 득점자
<a name="model-customize-evaluation-custom-scorers"></a>

자체 사용자 지정 scorer 함수를 정의하여 평가 작업을 시작합니다. 시스템은 프라임 수학과 프라임 코드라는 두 가지 기본 제공 득점자를 제공합니다. 자체 득점자 함수를 가져올 수도 있습니다. scorer 함수 코드를 직접 복사하거나 연결된 ARN을 사용하여 자체 Lambda 함수 정의를 가져올 수 있습니다. 기본적으로 두 scorer 유형 모두 F1 점수, ROUGE 및 BLEU와 같은 표준 지표를 포함하는 평가 결과를 생성합니다.

기본 제공 및 사용자 지정 득점자와 해당 요구 사항/계약에 대한 자세한 내용은 섹션을 참조하세요[프리셋 및 사용자 지정 스코어러로 평가](model-customize-evaluation-preset-custom-scorers.md).

### 데이터 세트 등록
<a name="model-customize-evaluation-custom-scorers-register-dataset"></a>

사용자 지정 득점자를 위한 자체 데이터 세트를 SageMaker Hub 콘텐츠 데이터 세트로 등록하여 가져옵니다.

------
#### [ SageMaker Studio ]

Studio에서 전용 데이터 세트 페이지를 사용하여 데이터 세트를 업로드합니다.

![\[SageMaker Studio에 등록된 평가 데이터 세트\]](http://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/images/dataset-registration-sagemaker-studio.png)


------
#### [ 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 작업 제출
<a name="model-customize-evaluation-custom-scorers-builtin"></a>

------
#### [ SageMaker Studio ]

![\[기본 제공 사용자 지정 점수에 대한 코드 실행 또는 수학 답변 중에서 선택\]](http://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/images/builtin-scorer-submission-sagemaker-studio.png)


------
#### [ 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 작업 제출
<a name="model-customize-evaluation-custom-scorers-custom"></a>

사용자 지정 보상 함수를 정의합니다. 자세한 내용은 [사용자 지정 득점자(자체 지표 가져오기)](model-customize-evaluation-preset-custom-scorers.md#model-customize-evaluation-custom-scorers-byom) 단원을 참조하십시오.

**사용자 지정 보상 함수 등록**

------
#### [ SageMaker Studio ]

![\[SageMaker Studio > 자산 > 평가자 > 평가자 생성 > 보상 함수 생성으로 이동\]](http://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/images/custom-scorer-submission-sagemaker-studio.png)


![\[사용자 지정 득점자 > 사용자 지정 지표에서 등록된 사전 설정 보상 함수를 참조하는 사용자 지정 득점자 평가 작업 제출\]](http://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/images/custom-scorer-benchmark-submission-sagemaker-studio.png)


------
#### [ 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()
```

------