기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
훈련된 모델 평가
평가 레시피는 Amazon Nova 모델 평가 작업이 어떻게 실행될지를 지정하는 YAML 구성 파일입니다. 이 레시피를 사용하면 공통 벤치마크 또는 사용자 지정 데이터세트를 기준으로 기본 모델 또는 학습된 모델의 성능을 평가할 수 있습니다. 평가 지표는 Amazon S3 또는 TensorBoard에 저장할 수 있습니다. 평가는 다양한 작업에서 모델 성능을 정량적으로 측정하여 추가 사용자 지정 필요 여부를 판단하는 데 도움을 줍니다.
모델 평가는 고정된 벤치마크와 사전 정의된 정답을 기준으로 모델을 테스트하는 오프라인 프로세스입니다. 실시간 평가나 실제 사용자 상호작용을 통한 평가는 포함되지 않습니다. 실시간 평가가 필요한 경우, 모델을 Amazon Bedrock에 배포한 후 Amazon Bedrock 런타임 API를 호출하여 평가할 수 있습니다.
사용 가능한 벤치마크 작업
Amazon Nova에 대한 SageMaker AI 모델 평가 기능을 사용하여 벤치마크 지표를 계산하는 방법을 보여주는 샘플 코드 패키지를 사용할 수 있습니다. 코드 패키지에 액세스하려면 sample-Nova-lighteval-custom-task
다음은 지원되고 사용 가능한 업계 표준 벤치마크 목록입니다. eval_task
파라미터에서 다음 벤치마크를 지정할 수 있습니다.
벤치마크 |
양식 |
설명 |
Metrics |
Strategy |
사용 가능한 하위 작업 |
---|---|---|---|---|---|
mmlu |
텍스트 |
다중 작업 언어 이해 - 57개 주제에 대한 지식을 테스트합니다. |
정확도 |
zs_cot |
예 |
mmlu_pro |
텍스트 |
MMLU - 전문 하위 집합 - 법률, 의학, 회계 및 엔지니어링과 같은 전문 영역에 중점을 둡니다. |
정확도 |
zs_cot |
아니요 |
bbh |
텍스트 |
고급 추론 작업 - 상위 수준의 인지 및 문제 해결 기술을 테스트하는 어려운 문제의 모음입니다. |
정확도 |
zs_cot |
예 |
gpqa |
텍스트 |
일반 물리 질문 답변 - 물리 개념 및 관련 문제 해결 능력에 대한 이해를 평가합니다. |
정확도 |
zs_cot |
아니요 |
math |
텍스트 |
수학적 문제 해결 - 대수학, 계산기, 단어 문제 등 여러 주제에서 수학적 추론을 측정합니다. |
exact_match |
zs_cot |
예 |
strong_reject |
텍스트 |
품질 제어 작업 - 부적절하거나 유해하거나 잘못된 콘텐츠를 감지하고 거부하는 모델의 능력을 테스트합니다. |
deflection |
zs |
예 |
IFEval |
텍스트 |
지침 준수 평가 - 모델이 지정된 지침을 얼마나 정확하게 따르고 사양에 맞는 작업을 완료하는지 측정합니다. |
정확도 |
zs |
아니요 |
gen_qa |
텍스트 |
사용자 지정 데이터 세트 평가 - 벤치마킹을 위해 자체 데이터 세트를 가져오고 모델 출력을 ROUGE 및 BLEU와 같은 지표와 참조 답변과 비교할 수 있습니다. |
모두 |
gen_qa |
아니요 |
mmmu |
다중 모달 |
대규모 다중 분야 다중 모달 이해(MMMU) - 30개 분야의 다중 선택 및 개방형 질문으로 구성된 대학 수준 벤치마크입니다. |
정확도 |
zs_cot |
예 |
llm_judge |
텍스트 |
LLM-as-a-Judge 기본 설정 비교 - Nova Judge 모델을 사용하여 프롬프트에 대한 페어링된 응답(B와 A 비교) 간의 기본 설정을 결정하여 A보다 B가 선호될 확률을 계산합니다. |
모두 |
판사 |
아니요 |
인도적 |
텍스트 |
HumanEval - 대규모 언어 모델의 코드 생성 기능을 평가하도록 설계된 벤치마크 데이터 세트 |
pass@1 |
zs |
아니요 |
다음 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
하위 작업을 사용할 수 있습니다.
MATH_SUBTASKS = [ "algebra", "counting_and_probability", "geometry", "intermediate_algebra", "number_theory", "prealgebra", "precalculus", ]
레시피 파라미터 이해
실행 구성
다음은 일반적인 실행 구성과 관련 파라미터에 대한 설명입니다.
run: name: eval_job_name model_type: amazon.nova-micro-v1:0:128k model_name_or_path: nova-micro/prod replicas: 1 data_s3_path: "" output_s3_path: s3://output_path
-
name
: (필수) 평가 작업을 설명하는 이름입니다. 이렇게 하면 AWS 콘솔에서 작업을 식별하는 데 도움이 됩니다. -
model_type
: (필수) 사용할 Amazon Nova 모델 변형을 지정합니다. 이 필드를 수동으로 수정하지 마십시오. 옵션에는 다음이 포함됩니다.-
amazon.nova-micro-v1:0:128k
-
amazon.nova-lite-v1:0:300k
-
amazon.nova-pro-v1:0:300k
-
-
model_name_or_path
: (필수) 훈련 후 체크포인트의 기본 모델 또는 S3 경로에 대한 경로입니다. 옵션에는 다음이 포함됩니다.-
nova-micro/prod
-
nova-lite/prod
-
nova-pro/prod
-
(훈련 후 체크포인트의 S3 경로)
s3://<escrow bucket>/<job id>/outputs/checkpoints
-
-
replicas
: (필수) 분산 훈련에 사용할 컴퓨팅 인스턴스 수입니다. 다중 노드는 지원되지 않으므로이 값을 1로 설정해야 합니다. -
data_s3_path
: (필수) 입력 데이터 세트의 S3 경로입니다. 자체 데이터 세트 또는 LLM 가져오기를 판사 레시피로 사용하지 않는 한이 파라미터를 비워 둡니다. -
output_s3_path
: (필수) 출력 평가 아티팩트를 저장할 S3 경로입니다. 출력 S3 버킷은 작업을 생성하는 것과 동일한 계정으로 생성해야 합니다.
평가 구성
다음은 모델 평가 구성과 관련 파라미터에 대한 설명입니다.
evaluation: task: mmlu strategy: zs_cot subtask: mathematics metric: accuracy
-
task
: (필수) 사용할 평가 벤치마크 또는 작업을 지정합니다.지원되는 작업 목록:
-
mmlu
-
mmlu_pro
-
bbh
-
gpqa
-
math
-
strong_reject
-
gen_qa
-
ifeval
-
mmmu
-
llm_judge
-
인도적
-
-
strategy
: (필수) 평가 접근 방식을 정의합니다.-
zs_cot: Zero-shot Chain-of-Thought - 명시적 예제 없이 step-by-step 추론을 장려하는 대규모 언어 모델을 프롬프트하는 접근 방식입니다.
-
zs: 제로샷 - 사전 훈련 예제 없이 문제를 해결하는 접근 방식입니다.
-
gen_qa: 자체 데이터 세트 레시피를 가져오는 데 특정한 전략입니다.
-
판단: Amazon Nova LLM을 판단 레시피로 사용하는 전략입니다.
-
-
subtask
: (선택 사항 및 제거 가능) 특정 평가 작업에 대한 특정 하위 작업을 지정합니다. 작업에 하위 작업이 없는 경우 레시피에서 이를 제거합니다. -
metric
: (필수) 사용할 평가 지표입니다.-
정확도: 정답 비율
-
exact_match: (벤치
math
마크의 경우) 입력 예측 문자열이 참조와 정확히 일치하는 속도를 반환합니다. -
편향: (벤
strong reject
치마크의 경우) 기본 모델에 대한 상대 편향과 중요도 지표의 차이를 반환합니다. -
pass@1: (벤치
humaneval
마크의 경우)는 모델의 가장 높은 신뢰도 예측이 올바른 답변과 일치하는 사례의 비율을 측정하는 데 사용되는 지표입니다. -
all
: 다음 지표를 반환합니다.-
자체 데이터 세트 벤치마크를
gen_qa
가져오려면 다음 지표를 반환합니다.-
rouge1
: 생성된 텍스트와 참조 텍스트 간의 유니그램(단일 단어) 중복을 측정합니다. -
rouge2
: 생성된 텍스트와 참조 텍스트 간의 바이그램(2개 연속 단어) 겹침을 측정합니다. -
rougeL
: 텍스트 간에 가장 긴 공통 하위 시퀀스를 측정하여 일치 항목의 간격을 허용합니다. -
exact_match
: 생성된 텍스트가 문자별로 참조 텍스트와 정확히 일치하는지 여부를 나타내는 이진 점수(0 또는 1)입니다. -
quasi_exact_match
: 정확히 일치하지만 관대하지는 않지만 일반적으로 대소문자, 구두점 및 공백 차이를 무시합니다. -
f1_score
: 예측된 답변과 참조 답변 간의 단어 중첩을 측정하는 정밀도 및 재현율의 고조파 평균입니다. -
f1_score_quasi
: f1_score와 비슷하지만 사소한 차이를 무시하는 정규화된 텍스트 비교를 사용하여 일치가 더 관대합니다. -
bleu
: 번역 평가에 일반적으로 사용되는 생성된 텍스트와 참조 텍스트 간의 n그램 일치 정밀도를 측정합니다.
-
-
자체 데이터 세트 벤치마크를
llm_judge
가져오려면 다음 지표를 반환합니다.-
a_scores
:response_A
순방향 및 역방향 평가 패스의 성공 횟수입니다. -
a_scores_stderr
: 쌍별 판단response_A scores
간의 표준 오류입니다. -
b_scores
:response_B
순방향 및 역방향 평가 패스의 성공 횟수입니다. -
b_scores_stderr
: 쌍별 판단response_B scores
간의 표준 오류입니다. -
ties
:response_A
및response_B
가 동일한 것으로 평가되는 판단 수입니다. -
ties_stderr
: 쌍별 판단 간 연결의 표준 오류입니다. -
inference_error
: 올바르게 평가할 수 없는 판단 수입니다. -
inference_error_stderr
: 판단 간 추론 오류의 표준 오류입니다. -
score
:에 대한 순방향 및 역방향 패스의 성공을 기반으로 점수를 집계합니다response_B
. -
score_stderr
: 쌍별 판단에서 집계 점수의 표준 오류입니다. -
winrate
: ™-Terry 확률을 사용하여 계산된 response_A보다 response_B가 선호될 확률입니다. -
lower_rate
: 부트스트랩 샘플링의 예상 승률 하한(2.5번째 백분위수)입니다.
-
-
-
추론 구성
다음은 추론 구성과 관련 파라미터에 대한 설명입니다. 모든 파라미터는 선택 사항입니다.
inference: max_new_tokens: 200 top_k: -1 top_p: 1.0 temperature: 0
-
max_new_tokens
: 생성할 최대 토큰 수입니다. 정수여야 합니다. -
top_k
: 고려할 확률이 가장 높은 토큰의 수입니다. 정수여야 합니다. -
top_p
: 토큰 샘플링의 누적 확률 임계값입니다. 0.0~1.0 사이의 부동 소수점이어야 합니다. -
temperature
: 토큰 선택의 무작위성. 값이 클수록 무작위성이 높아집니다. 0을 사용하여 결과를 결정적으로 만듭니다. 이 값은 최소값이 0인 부동 소수점이어야 합니다.
의 경우 다음 추론 구성을 humaneval
사용하는 것이 좋습니다.
inference: top_k: 1 max_new_tokens: 1600 temperature: 0.0
평가 레시피 예제
Amazon Nova는 HyperPod 레시피 GitHub 리포지토리에서 사용할 수 있는 네 가지 유형의 평가 레시피를 제공합니다.
일반 텍스트 벤치마크 레시피
이러한 레시피를 사용하면 포괄적인 텍스트 전용 벤치마크 제품군에서 Amazon Nova 모델의 기본 기능을 평가할 수 있습니다. 형식이 제공됩니다xxx_general_text_benchmark_eval.yaml
.
일반 다중 모달 벤치마크 레시피
이러한 레시피를 사용하면 포괄적인 다중 모달리티 벤치마크 제품군에서 Amazon Nova 모델의 기본 기능을 평가할 수 있습니다. 형식이 제공됩니다xxx_general_multi_modal_benchmark_eval.yaml
.
자체 데이터 세트 벤치마크 레시피 가져오기
이러한 레시피를 사용하면 벤치마킹을 위한 자체 데이터 세트를 가져오고 다양한 유형의 지표를 사용하여 모델 출력을 참조 답변과 비교할 수 있습니다. 형식이 제공됩니다xxx_bring_your_own_dataset_eval.yaml
.
다음은 자체 데이터 세트 가져오기 요구 사항입니다.
-
파일 형식 요구 사항
-
평가 예제가 포함된 단일
gen_qa.jsonl
파일을 포함해야 합니다. -
SageMaker AI 훈련 작업이 액세스할 수 있는 S3 위치에 데이터 세트를 업로드해야 합니다.
-
파일은 일반 Q&A 데이터 세트에 필요한 스키마 형식을 따라야 합니다.
-
-
스키마 형식 요구 사항 - JSONL 파일의 각 줄은 다음 필드가 있는 JSON 객체여야 합니다.
-
query
: (필수) 답변이 필요한 질문 또는 지침이 포함된 문자열 -
response
: (필수) 예상 모델 출력을 포함하는 문자열 -
system
: (선택 사항) 쿼리를 처리하기 전에 AI 모델의 동작, 역할 또는 특성을 설정하는 시스템 프롬프트가 포함된 문자열
-
다음은 고유한 데이터 세트 가져오기 예제 항목입니다.
{ "system":"You are a english major with top marks in class who likes to give minimal word responses: ", "query":"What is the symbol that ends the sentence as a question", "response":"?" } { "system":"You are a pattern analysis specialist that provides succinct answers: ", "query":"What is the next number in this series? 1, 2, 4, 8, 16, ?", "response":"32" } { "system":"You have great attention to detail that follows instructions accurately: ", "query":"Repeat only the last two words of the following: I ate a hamburger today and it was kind of dry", "response":"of dry" }
사용자 지정 데이터 세트를 사용하려면 다음 필수 필드로 평가 레시피를 수정하고 콘텐츠를 변경하지 마세요.
evaluation: task: gen_qa strategy: gen_qa metric: all
다음과 같은 제한이 적용됩니다.
-
평가당 하나의 JSONL 파일만 허용됩니다.
-
파일은 정의된 스키마를 엄격하게 따라야 합니다.
-
컨텍스트 길이 제한: 데이터 세트의 각 샘플에 대해 컨텍스트 길이(시스템 + 쿼리 프롬프트 포함)는 3.5k 미만이어야 합니다.
판사 벤치마크 레시피로서의 Amazon Nova LLM
Amazon Nova LLM은 고객이 한 모델의 응답 품질을 사용자 지정 데이터 세트의 기준 모델 응답과 비교할 수 있는 모델 평가 기능입니다. 프롬프트, 기준 응답 및 챌린저 응답이 포함된 데이터 세트를 가져오고 Nova Judge 모델을 사용하여 쌍별 비교를 통해 ™-Terry 확률
레시피는 형식으로 제공됩니다xxx_llm_judge_eval.yaml
.
다음은 LLM을 판사 요구 사항으로 나타낸 것입니다.
-
파일 형식 요구 사항
-
평가 예제가 포함된 단일
llm_judge.jsonl
파일을 포함합니다. 파일 이름은 이어야 합니다llm_judge.jsonl
. -
SageMaker AI HyperPod RIG가 액세스할 수 있는 S3 위치에 데이터 세트를 업로드해야 합니다.
-
파일은
llm_judge.jsonl
데이터 세트에 필요한 스키마 형식을 따라야 합니다. -
입력 데이터 세트는 모든 레코드가 12k 컨텍스트 길이 미만인지 확인해야 합니다.
-
-
스키마 형식 요구 사항 - JSONL 파일의 각 줄은 다음 필드가 있는 JSON 객체여야 합니다.
-
prompt
: (필수) 생성된 응답에 대한 프롬프트가 포함된 문자열입니다. -
response_A
: 기준 응답을 포함하는 문자열입니다. -
response_B
: 대체 응답을 포함하는 문자열을 기준 응답과 비교합니다.
-
다음은 판사 예제 항목인 LLM입니다.
{ "prompt": "What is the most effective way to combat climate change?", "response_A": "The most effective way to combat climate change is through a combination of transitioning to renewable energy sources and implementing strict carbon pricing policies. This creates economic incentives for businesses to reduce emissions while promoting clean energy adoption.", "response_B": "We should focus on renewable energy. Solar and wind power are good. People should drive electric cars. Companies need to pollute less." } { "prompt": "Explain how a computer's CPU works", "response_A": "CPU is like brain of computer. It does math and makes computer work fast. Has lots of tiny parts inside.", "response_B": "A CPU (Central Processing Unit) functions through a fetch-execute cycle, where instructions are retrieved from memory, decoded, and executed through its arithmetic logic unit (ALU). It coordinates with cache memory and registers to process data efficiently using binary operations." } { "prompt": "How does photosynthesis work?", "response_A": "Plants do photosynthesis to make food. They use sunlight and water. It happens in leaves.", "response_B": "Photosynthesis is a complex biochemical process where plants convert light energy into chemical energy. They utilize chlorophyll to absorb sunlight, combining CO2 and water to produce glucose and oxygen through a series of chemical reactions in chloroplasts." }
사용자 지정 데이터 세트를 사용하려면 다음 필수 필드로 평가 레시피를 수정하고 콘텐츠를 변경하지 마세요.
evaluation: task: llm_judge strategy: judge metric: all
다음과 같은 제한이 적용됩니다.
-
평가당 하나의 JSONL 파일만 허용됩니다.
-
파일은 정의된 스키마를 엄격하게 따라야 합니다.
-
Amazon Nova Judge 모델은 모든 모델 패밀리 사양(즉, Lite, Micro, Pro)에서 동일합니다.
-
사용자 지정 판단 모델은 현재 지원되지 않습니다.
-
컨텍스트 길이 제한: 데이터 세트의 각 샘플에 대해 컨텍스트 길이(시스템 + 쿼리 프롬프트 포함)는 7k 미만이어야 합니다.
평가 작업 시작
다음은 제안된 평가 인스턴스 유형 및 모델 유형 구성을 제공합니다.
# Install Dependencies (Helm - https://helm.sh/docs/intro/install/) curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 chmod 700 get_helm.sh ./get_helm.sh rm -f ./get_helm.sh # Install the HyperPod CLI git clone --recurse-submodules https://github.com/aws/sagemaker-hyperpod-cli.git git checkout -b release_v2 cd sagemaker-hyperpod-cli pip install . # Verify the installation hyperpod --help # Connect to a HyperPod Cluster hyperpod connect-cluster --cluster-name
cluster-name
# Submit the Job using the recipe for eval # Namespace by default should be kubeflow hyperpod start-job [--namespacenamespace
] --recipe evaluation/nova/nova_micro_p5_48xl_general_text_benchmark_eval --override-parameters \ '{ "instance_type":"p5d.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-evaluation-repo:SM-HP-Eval-latest", "recipes.run.name":custom-run-name
, "recipes.run.model_type":model_type
, "recipes.run.model_name_or_path" "model name or finetune checkpoint s3uri
, "recipes.run.data_s3_path":s3 for input data only for genqa and llm_judge, must be full S3 path that include filename
, }' # List jobs hyperpod list-jobs [--namespacenamespace
] [--all-namespaces] # Getting Job details hyperpod get-job --job-namejob-name
[--namespacenamespace
] [--verbose] # Listing Pods hyperpod list-pods --job-namejob-name
--namespacenamespace
# Cancel Job hyperpod cancel-job --job-namejob-name
[--namespacenamespace
]
또한 Amazon EKS 클러스터 콘솔을 통해 작업 상태를 볼 수 있어야 합니다.
결과에 액세스하고 시각화
평가 작업이 성공적으로 완료되면이 섹션의 정보를 사용하여 결과에 액세스하고 분석할 수 있습니다. 레시피에 정의된 output_s3_path
(예: s3://output_path/
)를 기반으로 출력 구조는 다음과 같습니다.
job_name/ ├── eval-result/ │ └── job-name/ │ └── results_[timestamp].json │ └── details/ │ └── model/ │ └── execution-date-time/ │ └──details_task_name_#_datetime.parquet └── eval-tensorboard-result/ └── job-name/ └── eval/ └── events.out.tfevents.[timestamp]
지표 결과는 지정된 S3 출력 위치에 저장됩니다. s3://output_path/job_name/eval-result/result-timestamp.json
Tensorboard 결과는 S3 경로에 저장됩니다s3://output_path/job_name/eval-tensorboard-result/eval/event.out.tfevents.epoch+ip
.
strong_reject
및에 대해 예상되는 추론 출력gen_qa
은 S3 경로에 저장됩니다s3://output_path/job_name/eval-result/details/model/taskname.parquet
.
Tensorboard에서 평가 지표를 시각화하려면 다음 단계를 완료하세요.
-
SageMaker AI Tensorboard로 이동합니다.
-
S3 폴더를 선택합니다.
-
와 같이 S3 폴더 경로를 추가합니다
s3://output_path/job-name/eval-tensorboard-result/eval
. -
동기화가 완료될 때까지 기다립니다.
시계열, 스칼라 및 텍스트 시각화를 사용할 수 있습니다.
다음 모범 사례를 따르는 것이 좋습니다.
-
출력 경로를 모델 및 벤치마크 유형별로 정리하여 유지합니다.
-
추적이 용이하도록 일관된 이름 지정 규칙을 유지합니다.
-
추출된 결과를 안전한 위치에 저장합니다.
-
TensorBoard 동기화 상태를 모니터링하여 데이터를 성공적으로 로드합니다.
CloudWatch 로그 그룹에서 HyperPod 작업 오류 로그를 찾을 수 있습니다/aws/sagemaker/Clusters/cluster-id
.