評価レシピの例
Amazon Nova には、SageMaker HyperPod レシピ GitHub リポジトリで使用できる 4 種類の評価レシピが用意されています。
これらのレシピを使用すると、テキストのみのベンチマークの包括的なスイート全体で Amazon Nova モデルの基本的な機能を評価できます。これらは xxx_general_text_benchmark_eval.yaml 形式で提供されます。
これらのレシピを使用すると、ベンチマーク用の独自のデータセットを取り込んでモデル出力を比較し、さまざまなタイプのメトリクスを使用して回答を参照できます。これらは xxx_bring_your_own_dataset_eval.yaml 形式で提供されます。
Bring your own dataset の要件は次のとおりです。
-
ファイル形式の要件
-
評価例を含む 1 つの
gen_qa.jsonlファイルを含める必要があります。 -
SageMaker トレーニングジョブがアクセスできる S3 の場所にデータセットをアップロードする必要があります。
-
ファイルでは、一般的な Q&A データセットに必要なスキーマ形式に従う必要があります。
-
-
スキーマ形式の要件 - JSONL ファイルの各行は、次のフィールドがある JSON オブジェクトである必要があります。
-
query: (必須) 回答が必要な質問または指示を含む文字列 -
response: (必須) 予想されるモデル出力を含む文字列 -
system: (省略可) クエリを処理する前に AI モデルの動作、ロール、またはパーソナリティを設定するシステムプロンプトを含む文字列 -
metadata: (オプション) タグ付けの目的でエントリに関連付けられたメタデータを含む文字列。
-
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
以下の制限が適用されます。
-
評価ごとに許可される JSONL ファイルは 1 つだけです。
-
ファイルでは、定義されているスキーマに厳密に従う必要があります。
-
コンテキスト長の制限: データセット内の各サンプルについて、コンテキスト長 (システム + クエリプロンプトを含む) を 3,500 未満にする必要があります。
Amazon Nova LLM-as-a-judge は、1 つのモデルからのレスポンスの品質をカスタムデータセットのベースラインモデルレスポンスと比較できるようにするモデル評価機能です。プロンプト、ベースラインレスポンス、チャレンジャーレスポンスを含むデータセットを取り、Nova Judge モデルを使用して、ペアワイズ比較による Bradley-Terry 確率
レシピは xxx_llm_judge_eval.yaml 形式で提供されます。
LLM-as-a-judge の要件は以下のとおりです。
-
ファイル形式の要件
-
評価例を含む 1 つの
llm_judge.jsonlファイルを含めます。ファイル名はllm_judge.jsonlにする必要があります。 -
SageMaker AI SageMaker HyperPod RIG がアクセスできる S3 の場所にデータセットをアップロードする必要があります。
-
ファイルでは、
llm_judge.jsonlデータセットに必要なスキーマ形式に従う必要があります。 -
入力データセットでは、すべてのレコードが 12,000 コンテキスト長未満になるようにする必要があります。
-
-
スキーマ形式の要件 - JSONL ファイルの各行は、次のフィールドがある JSON オブジェクトである必要があります。
-
prompt: (必須) 生成されたレスポンスのプロンプトを含む文字列。 -
response_A: ベースラインレスポンスを含む文字列。 -
response_B: ベースラインレスポンスと比較される、代替レスポンスを含む文字列。
-
LLM-as-a-judge のエントリ例は以下のとおりです。
{ "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 ファイルは 1 つだけです。
-
ファイルでは、定義されているスキーマに厳密に従う必要があります。
-
Amazon Nova Judge モデルは、すべてのモデルファミリー仕様 (Lite、Micro、Pro) で同じです。
-
現時点では、カスタム判断モデルはサポートされていません。
-
コンテキスト長の制限: データセット内の各サンプルについて、コンテキスト長 (システム + クエリプロンプトを含む) を 7,000 未満にする必要があります。
マルチモーダル (イメージ) 用の Nova LLM Judge は、Nova MM_LLM Judge の略で、カスタムデータセットを使用して、1 つのモデルからのレスポンスの品質をベースラインモデルのレスポンスと比較できるモデル評価機能です。プロンプト、ベースラインレスポンス、チャレンジャーレスポンス、および Base64 エンコードされた文字列形式のイメージを含むデータセットを受け付けてから、Nova Judge モデルを使用して、ペアワイズ比較による Bradley-Terryxxx_mm_llm_judge _eval.yaml です。
Nova LLM データセットの要件
ファイル形式:
-
評価例を含む 1 つの
mm_llm_judge.jsonlファイル。ファイル名は正確にllm_judge.jsonlである必要があります。 -
SageMaker トレーニングジョブがアクセスできる S3 の場所にデータセットをアップロードする必要があります。
-
ファイルでは、
mm_llm_judgeデータセットに必要なスキーマ形式に従う必要があります。 -
入力データセットでは、イメージの属性を除いて、すべてのレコードが 12,000 コンテキスト長未満になるようにする必要があります。
スキーマ形式 - .jsonl ファイル内の各行は、次のフィールドがある JSON オブジェクトである必要があります。
-
必須フィールド。
prompt: 生成されたレスポンスのプロンプトを含む文字列。images: データ属性を持つオブジェクトのリストを含む配列 (値は Base64 でエンコードされたイメージ文字列)。response_A: ベースラインレスポンスを含む文字列。response_B: ベースラインレスポンスと比較される、代替レスポンスを含む文字列。
エントリ例
読みやすくするために、以下の例には新しい行とインデントが含まれていますが、実際のデータセットでは、各レコードを 1 行で記述する必要があります。
{ "prompt": "what is in the image?", "images": [ { "data": "data:image/jpeg;Base64,/9j/2wBDAAQDAwQDAwQEAwQFBAQFBgo..." } ], "response_A": "a dog.", "response_B": "a cat.", } { "prompt": "how many animals in echo of the images?", "images": [ { "data": "data:image/jpeg;Base64,/9j/2wBDAAQDAwQDAwQEAwQFBAQFBgo..." }, { "data": "data:image/jpeg;Base64,/DKEafe3gihn..." } ], "response_A": "The first image contains one cat and the second image contains one dog", "response_B": "The first image has one aminal and the second has one animal", }
カスタムデータセットを使用するには、以下の必須フィールドを使用して評価レシピを変更し、いずれの内容も変更しないでください。
evaluation: task: mm_llm_judge strategy: judge metric: all
制限事項
-
評価ごとに許可される
.jsonlファイルは 1 つだけです。 -
ファイルでは、定義されているスキーマに厳密に従う必要があります。
-
Nova MM Judge モデルはイメージ参照のみをサポートしています。
-
Nova MM Judge モデルは、Amazon Nova Lite 仕様全体で同じです。
-
現在、カスタム判断モデルはサポートされていません。
-
Amazon S3 イメージ URI はサポートされていません。
-
入力データセットでは、イメージの属性を除いて、すべてのレコードが 12,000 コンテキスト長未満になるようにする必要があります。
Rubric Judge は、Nova 2.0 Lite 上に構築された拡張 LLM-as-a-judge 評価モデルです。プリファレンス判定のみを提供する元のジャッジモデル
主な機能:
-
動的条件の生成: 入力プロンプトに基づいて関連する評価ディメンションを自動的に作成します
-
加重スコアリング: 各基準に重要度の重みを割り当てて、相対的な有意性を反映します
-
詳細な評価: 各基準について、バイナリ (true/false) ベースまたはスケール (1~5) ベースで詳細なスコアを提供します
-
品質メトリクス: レスポンス間の差の大きさを定量化する継続的な品質スコア (0~1 スケール) を計算します
モデルによって生成された条件の例:
price_validation: description: "The response includes validation to ensure price is a positive value." type: "scale" weight: 0.3
モデルは、生成されたすべての基準に対して両方のレスポンスを評価し、これらの基準レベルのスコアを使用して最終的なプリファレンスの決定を通知します。
レシピ設定
Rubric Judge レシピ
レシピで task: rubric_llm_judge を設定して Rubric Judge を有効にします。
run: name: nova-eval-job-name # [MODIFIABLE] Unique identifier for your evaluation job model_type: amazon.nova-2-lite-v1:0:256k # [FIXED] Rubric Judge model type model_name_or_path: "nova-lite-2/prod" # [FIXED] Path to model checkpoint or identifier replicas: 1 # [MODIFIABLE] Number of replicas for SageMaker Training job data_s3_path: "" # [FIXED] Leave empty for SageMaker Training job output_s3_path: "" # [FIXED] Leave empty for SageMaker Training job evaluation: task: rubric_llm_judge # [FIXED] Evaluation task - enables Rubric Judge strategy: judge # [FIXED] Evaluation strategy metric: all # [FIXED] Metric calculation method inference: max_new_tokens: 12000 # [MODIFIABLE] Maximum tokens to generate top_k: -1 # [MODIFIABLE] Top-k sampling parameter top_p: 1.0 # [MODIFIABLE] Nucleus sampling parameter temperature: 0 # [MODIFIABLE] Sampling temperature (0 = deterministic)
元の LLM as a Judge レシピ (比較用)
元のジャッジモデルは task: llm_judge を使用します。
run: name: eval-job-name # [MODIFIABLE] Unique identifier for your evaluation job model_type: amazon.nova-micro-v1:0:128k # [FIXED] Model type model_name_or_path: "nova-micro/prod" # [FIXED] Path to model checkpoint or identifier replicas: 1 # [MODIFIABLE] Number of replicas for SageMaker Training job data_s3_path: "" # [FIXED] Leave empty for SageMaker Training job output_s3_path: "" # [FIXED] Leave empty for SageMaker Training job evaluation: task: llm_judge # [FIXED] Original judge task strategy: judge # [FIXED] Evaluation strategy metric: all # [FIXED] Metric calculation method inference: max_new_tokens: 12000 # [MODIFIABLE] Maximum tokens to generate top_k: -1 # [MODIFIABLE] Top-k sampling parameter top_p: 1.0 # [MODIFIABLE] Nucleus sampling parameter temperature: 0 # [MODIFIABLE] Sampling temperature (0 = deterministic)
入力データセット形式
入力データセットの形式は、元のジャッジモデル
必須フィールド:
-
prompt: 入力プロンプトと指示を含む文字列 -
response_A: ベースラインモデル出力を含む文字列 -
response_B: カスタマイズされたモデル出力を含む文字列
データセットの例 (JSONL 形式):
{"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."}
フォーマット要件:
-
各エントリは 1 行の JSON オブジェクトである必要があります
-
エントリを改行で区切ります
-
例に示すように、正確なフィールドの命名に従います
評価出力
出力構造
Rubric Judge は、元のジャッジモデルと比較して強化された評価メトリクスを生成します。
{ "config_general": { "lighteval_sha": "string", "num_fewshot_seeds": "int", "max_samples": "int | null", "job_id": "int", "start_time": "float", "end_time": "float", "total_evaluation_time_secondes": "string", "model_name": "string", "model_sha": "string", "model_dtype": "string | null", "model_size": "string" }, "results": { "custom|rubric_llm_judge_judge|0": { "a_scores": "float", "a_scores_stderr": "float", "b_scores": "float", "b_scores_stderr": "float", "ties": "float", "ties_stderr": "float", "inference_error": "float", "inference_error_stderr": "float", "score": "float", "score_stderr": "float", "weighted_score_A": "float", "weighted_score_A_stderr": "float", "weighted_score_B": "float", "weighted_score_B_stderr": "float", "score_margin": "float", "score_margin_stderr": "float", "winrate": "float", "lower_rate": "float", "upper_rate": "float" } }, "versions": { "custom|rubric_llm_judge_judge|0": "int" } }
Rubric Judge の新しいメトリクス
以下の 6 つのメトリクスは Rubric Judge に固有であり、きめ細かな品質評価を提供します。
メトリクス |
説明 |
|---|---|
weighted_score_A |
モデル生成のすべての評価基準における response_A の平均正規化品質スコア。スコアは基準の重要度によって重み付けされ、0~1 のスケール (高いほど品質が良い) に正規化されます |
weighted_score_A_stderr |
weighted_score_A の平均の標準誤差。統計的不確実性を示します |
weighted_score_B |
モデルが生成したすべての評価基準における response_B の平均正規化品質スコア。スコアは基準の重要度によって重み付けされ、0~1 のスケール (高いほど品質が良い) に正規化されます |
weighted_score_B_stderr |
weighted_score_B の平均の標準誤差。統計的不確実性を示します |
score_margin |
加重スコアの差 (weighted_score_A - weighted_score_B として計算)。範囲: -1.0~1.0。正 = response_A の方が良い、負 = response_B の方が良い、ゼロに近い = 同様の品質 |
score_margin_stderr |
score_margin の平均の標準誤差。品質差の測定の不確実性を示します |
加重スコアメトリクスについて
目的: 加重スコアは、バイナリプリファレンス判定を補完する継続的な品質測定値を提供し、モデルのパフォーマンスをより深く洞察できるようにします。
元のジャッジとの主な違い:
-
元のジャッジ: 離散的なプリファレンスのみを出力します (A>B、B>A、A=B)
-
Rubric Judge: カスタム基準に基づいて、プリファレンスと継続的品質スコア (0~1 スケール) の両方を出力します
score_margin の解釈:
-
score_margin = -0.128: Response_B スコアが response_A より 12.8 パーセントポイント高い -
|score_margin| < 0.1: 品質差は小さい (僅差の判断) -
|score_margin| > 0.2: 品質差は明確 (自信のある判断)
ユースケース:
-
モデルの改善: モデルのパフォーマンスが低い具体的な領域を特定する
-
品質の定量化: ウィン/ロス比だけでなく、パフォーマンスギャップの大きさを測定する
-
信頼度評価: 僅差の判断と明確な品質差を区別する
重要
最終的な判定は、全体的な推論を維持し、前方/後方評価を通じて適切な位置バイアスの軽減を確保するために、ジャッジモデルの明示的なプリファレンスラベルに基づいて行われます。加重スコアはオブザーバビリティツールとして機能し、主要な判定の代わりとしては機能しません。
計算方法
加重スコアは、以下のプロセスを通じて計算されます。
-
基準データの抽出: ジャッジの YAML 出力を解析して基準スコアと重みを抽出します
-
スコアの正規化:
-
スケールタイプの基準 (1~5):
(score - 1) / 4を計算して 0~1 に正規化します -
バイナリ基準 (true/false): 1.0/0.0 に変換します
-
-
重みを適用する: 正規化された各スコアに基準の重みを掛けます
-
集計: 各レスポンスのすべての加重スコアを合計します
-
マージンの計算:
score_margin = weighted_score_A - weighted_score_Bを計算します
例: response_A の加重合計が 0.65 で response_B の加重合計が 0.78 の場合、score_margin は -0.13 になり、response_B の品質がすべての加重基準で 13 パーセントポイント高いことを示します。
推論モデルのサポート
推論モデルのサポートにより、最終的なレスポンスを生成する前に明示的な内部推論を実行する推論対応 Nova モデルによる評価が可能になります。この機能は、reasoning_effort パラメータを介した API レベルの制御を使用して、推論機能を動的に有効または無効にし、複雑な分析タスクの応答品質を向上させる可能性があります。
サポートされているモデル:
-
amazon.nova-2-lite-v1:0:256k
レシピ設定
レシピの inference セクションに reasoning_effort パラメータを追加して、推論を有効にします。
run: name: eval-job-name # [MODIFIABLE] Unique identifier for your evaluation job model_type: amazon.nova-2-lite-v1:0:256k # [FIXED] Must be a reasoning-supported model model_name_or_path: nova-lite-2/prod # [FIXED] Path to model checkpoint or identifier replicas: 1 # [MODIFIABLE] Number of replicas for SageMaker Training job data_s3_path: "" # [MODIFIABLE] Leave empty for SageMaker Training job; optional for job output_s3_path: "" # [MODIFIABLE] Output path for job (not compatible with SageMaker Training jobs) evaluation: task: mmlu # [MODIFIABLE] Evaluation task strategy: generate # [MODIFIABLE] Evaluation strategy metric: all # [MODIFIABLE] Metric calculation method inference: reasoning_effort: high # [MODIFIABLE] Enables reasoning mode; options: low/medium/high or null to disable max_new_tokens: 200 # [MODIFIABLE] Maximum tokens to generate top_k: 50 # [MODIFIABLE] Top-k sampling parameter top_p: 1.0 # [MODIFIABLE] Nucleus sampling parameter temperature: 0 # [MODIFIABLE] Sampling temperature (0 = deterministic)
reasoning_effort パラメータを使用する
reasoning_effort パラメータは、推論可能なモデルの推論動作を制御します。
前提条件:
-
モデルの互換性:
model_typeが推論対応モデル (現在amazon.nova-2-lite-v1:0:256k) を指定している場合にのみreasoning_effortを設定します -
エラー処理: サポートされていないモデルで
reasoning_effortを使用すると、ConfigValidationError: "Reasoning mode is enabled but model '{model_type}' does not support reasoning. Please use a reasoning-capable model or disable reasoning mode."で失敗します
利用可能なオプション:
オプション |
行動 |
トークンの制限 |
ユースケース |
|---|---|---|---|
null (デフォルト) |
推論モードを無効にします |
該当なし |
オーバーヘッドを推論しない標準評価 |
low |
制約のある推論を有効にします |
内部推論用の 4,000 トークン |
簡潔な推論を必要とするシナリオ。速度とコストを最適化 |
high |
制約なしで推論を有効にします |
内部推論にトークン制限なし |
広範な分析とステップバイステップの推論を必要とする複雑な問題 |
推論を有効にする場合
以下の場合は、推論モード (low、medium、または high) を使用します。
-
複雑な問題解決タスク (数学、ロジックパズル、コーディング)
-
中間推論を必要とする複数ステップの分析質問
-
詳細な説明やステップバイステップの思考によって精度が向上するタスク
-
応答品質が速度よりも優先されるシナリオ
以下の場合は、非推論モード (パラメータを省略) を使用します。
-
単純な Q&A クエリまたは事実クエリ
-
クリエイティブライティングのタスク
-
応答時間の短縮が重要な場合
-
推論オーバーヘッドを除外する必要があるパフォーマンスベンチマーク
-
推論がタスクのパフォーマンスを向上させない場合のコスト最適化
トラブルシューティング
エラー:「推論モードは有効ですが、モデルは推論をサポートしていません」
原因: reasoning_effort パラメータは null 以外の値に設定されていますが、指定された model_type は推論をサポートしていません。
解決策:
-
モデルタイプが
amazon.nova-2-lite-v1:0:256kであることを確認します -
別のモデルを使用する場合は、推論対応モデルに切り替えるか、レシピから
reasoning_effortパラメータを削除します