翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
トレーニング済みモデルの評価
評価レシピとは、Amazon Nova モデル評価ジョブの実行方法を定義する YAML 設定ファイルを指します。このレシピを使用すると、ベースモデルまたはトレーニング済みモデルのパフォーマンスを、一般的なベンチマークまたは独自のカスタムデータセットに照らして評価できます。メトリクスは Amazon S3 または TensorBoard に保存できます。この評価では、さまざまなタスクにわたってモデルのパフォーマンスを評価し、さらなるカスタマイズが必要かどうかを判断するのに役立つ定量的メトリクスが提供されます。
モデル評価はオフラインプロセスであり、モデルは事前定義された回答を持つ固定ベンチマークに照らしてテストされます。リアルタイムでの評価やライブユーザーインタラクションに照らした評価は行われません。リアルタイム評価の場合、Amazon Bedrock ランタイム API を呼び出して、Amazon Bedrock にモデルをデプロイした後にモデルを評価できます。
使用可能なベンチマークタスク
Amazon Nova の SageMaker AI モデル評価機能を使用してベンチマークメトリクスを計算する方法を示すサンプルコードパッケージを利用できます。コードパッケージにアクセスするには、「sample-Nova-lighteval-custom-task
サポートされている利用可能な業界標準ベンチマークのリストを次に示します。eval_task
パラメータで次のベンチマークを指定できます。
ベンチマーク |
モダリティ |
説明 |
メトリクス |
方針 |
サブタスクが利用可能 |
---|---|---|---|---|---|
mmlu |
テキスト |
マルチタスク言語の理解 – 57 のサブジェクトの知識をテストします。 |
正確性 |
zs_cot |
あり |
mmlu_pro |
テキスト |
MMLU – プロフェッショナルサブセット – 法律、医学、会計、エンジニアリングなどのプロフェッショナルドメインに焦点を当てています。 |
正確性 |
zs_cot |
なし |
bbh |
テキスト |
高度な推論タスク – 高レベルの認知スキルと問題解決スキルをテストする困難な問題のコレクション。 |
正確性 |
zs_cot |
あり |
gpqa |
テキスト |
一般的な物理質問への回答 – 物理概念と関連する問題解決能力の理解を評価します。 |
正確性 |
zs_cot |
なし |
算術 |
テキスト |
数学的問題解決 — 代数、計算、単語の問題などのトピック全体で数学的推論を測定します。 |
exact_match |
zs_cot |
あり |
strong_reject |
テキスト |
品質管理タスク – 不適切、有害、または誤ったコンテンツを検出して拒否するモデルの能力をテストします。 |
deflection |
zs |
あり |
IFEval |
テキスト |
Instruction-Following Evaluation – モデルが指定された指示にどの程度正確に従っているかを評価し、仕様に従ってタスクを完了します。 |
正確性 |
zs |
なし |
gen_qa |
テキスト |
カスタムデータセット評価 – モデル出力を比較して、ROUGE や BLEU などのメトリクスと回答を参照しながら、ベンチマーク用に独自のデータセットを取り込むことができます。 |
すべて |
gen_qa |
なし |
mmmu |
マルチモーダル |
Massive Multidiscipline Multimodal Understanding (MMMU) – 30 の分野の複数選択の質問と自由回答形式の質問で構成される大学レベルのベンチマーク。 |
正確性 |
zs_cot |
あり |
llm_judge |
テキスト |
LLM-as-a-Judge プリファレンス比較 – Nova Judge モデルを使用して、プロンプトのペアレスポンス間のプリファレンス (B と A の比較) を決定し、B が A よりも優先される確率を計算します。 |
すべて |
判断する |
なし |
人道的 |
テキスト |
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
-
DBH
-
gpqa
-
算術
-
strong_reject
-
gen_qa
-
ifeval
-
mmmu
-
llm_judge
-
人道的
-
-
strategy
: (必須) 評価アプローチを定義します。-
zs_cot: ゼロショットの思考Chain-of-Thought - 明示的な例を必要とせずにstep-by-stepの推論を奨励する大規模言語モデルをプロンプトするアプローチ。
-
zs: ゼロショット - 以前のトレーニング例なしで問題を解決するためのアプローチ。
-
gen_qa: 独自のデータセットレシピを取り込むための戦略。
-
judge: ジャッジレシピとしての Amazon Nova LLM に固有の戦略。
-
-
subtask
: (オプションおよびリムーバブル) 特定の評価タスクの特定のサブタスクを指定します。タスクにサブタスクがない場合は、レシピからこれを削除します。 -
metric
: (必須) 使用する評価メトリクス。-
accuracy: 正しい回答の割合
-
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
: response_B が、"-Terry probability を使用して計算された response_A よりも優先される確率。 -
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 リポジトリで使用できる 4 種類の評価レシピが用意されています。
一般的なテキストベンチマークレシピ
これらのレシピを使用すると、Amazon Nova モデルの基本的な機能をテキストのみのベンチマークの包括的なスイートで評価できます。これらは 形式で提供されますxxx_general_text_benchmark_eval.yaml
。
一般的なマルチモーダルベンチマークレシピ
これらのレシピを使用すると、マルチモダリティベンチマークの包括的なスイート全体で Amazon Nova モデルの基本的な機能を評価できます。これらは 形式で提供されますxxx_general_multi_modal_benchmark_eval.yaml
。
独自のデータセットベンチマークレシピを取り込む
これらのレシピを使用すると、ベンチマーク用の独自のデータセットを取り込んでモデル出力を比較し、さまざまなタイプのメトリクスを使用して回答を参照できます。これらは 形式で提供されますxxx_bring_your_own_dataset_eval.yaml
。
独自のデータセット要件は次のとおりです。
-
ファイル形式の要件
-
評価例を含む 1 つの
gen_qa.jsonl
ファイルを含める必要があります。 -
データセットは、SageMaker AI トレーニングジョブがアクセスできる S3 の場所にアップロードする必要があります。
-
ファイルは、一般的な Q&A データセットに必要なスキーマ形式に従う必要があります。
-
-
スキーマ形式の要件 - JSONL ファイルの各行は、次のフィールドを持つ JSON オブジェクトである必要があります。
-
query
: (必須) 回答が必要な質問または指示を含む文字列 -
response
: (必須) 予想されるモデル出力を含む文字列 -
system
: (オプション) クエリを処理する前に AI モデルの動作、ロール、またはパーソナリティを設定するシステムプロンプトを含む文字列
-
Bring Your Own Data Set のエントリ例を次に示します。
{ "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
以下の制限が適用されます。
-
評価ごとに 1 つの JSONL ファイルのみが許可されます。
-
ファイルは、定義されたスキーマに厳密に従う必要があります。
-
コンテキストの長さの制限: データセット内の各サンプルについて、コンテキストの長さ (システム + クエリプロンプトを含む) は 3.5k 未満である必要があります。
審査員ベンチマークレシピとしての Amazon Nova LLM
Amazon Nova LLM as a Judge は、1 つのモデルからのレスポンスの品質をカスタムデータセットのベースラインモデルレスポンスと比較できるようにするモデル評価機能です。プロンプト、ベースラインレスポンス、チャレンジャーレスポンスを含むデータセットを取得し、Nova Judge モデルを使用して、ペアワイズ比較による "-Terry 確率
レシピは 形式で提供されますxxx_llm_judge_eval.yaml
。
以下は、審査員要件としての LLM です。
-
ファイル形式の要件
-
評価例を含む 1 つの
llm_judge.jsonl
ファイルを含めます。ファイル名は である必要がありますllm_judge.jsonl
。 -
データセットは、SageMaker AI HyperPod RIG がアクセスできる S3 の場所にアップロードする必要があります。 SageMaker HyperPod
-
ファイルは、
llm_judge.jsonl
データセットに必要なスキーマ形式に従う必要があります。 -
入力データセットは、すべてのレコードが 12,000 コンテキスト長未満であることを確認する必要があります。
-
-
スキーマ形式の要件 - 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
以下の制限が適用されます。
-
評価ごとに 1 つの JSONL ファイルのみが許可されます。
-
ファイルは、定義されたスキーマに厳密に従う必要があります。
-
Amazon Nova Judge モデルは、すべてのモデルファミリー仕様 (Lite、Micro、Pro) で同じです。
-
現時点では、カスタム判事モデルはサポートされていません。
-
コンテキストの長さの制限: データセット内の各サンプルについて、コンテキストの長さ (システム + クエリプロンプトを含む) は 7,000 未満である必要があります
評価ジョブを開始する
以下に、推奨される評価インスタンスタイプとモデルタイプの設定を示します。
# 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
テンソルボードの結果は 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 同期ステータスをモニタリングして、データのロードが成功することを確認します。
HyperPod ジョブエラーログは、CloudWatch ロググループ にあります/aws/sagemaker/Clusters/cluster-id
。