

# レシピパラメータについて
<a name="customize-fine-tune-evaluate-understand-modify"></a>

**実行設定**  
以下は一般的な実行設定と関連するパラメータの説明です。

```
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
  mlflow_tracking_uri: ""
  mlflow_experiment_name : ""
  mlflow_run_name : ""
```
+ `name`: (必須) 評価ジョブのわかりやすい名前。AWS コンソールでジョブを区別しやすくなります。
+ `model_type`: (必須) 使用する Amazon Nova モデルバリアントを指定します。このフィールドは手動で変更しないでください。オプションには以下が含まれます。
  + `amazon.nova-micro-v1:0:128k`
  + `amazon.nova-lite-v1:0:300k`
  + `amazon.nova-pro-v1:0:300k`
  + `amazon.nova-2-lite-v1:0:256k`
+ `model_name_or_path`: (必須) ベースモデルへのパスまたはトレーニング後のチェックポイント用の S3 パス。オプションには以下が含まれます。
  + `nova-micro/prod`
  + `nova-lite/prod`
  + `nova-pro/prod`
  + `nova-lite-2/prod`
  + （トレーニング後のチェックポイントの S3 パス) `s3://<escrow bucket>/<job id>/outputs/checkpoints`
+ `replicas`: (必須) 分散トレーニングに使用するコンピューティングインスタンスの数。マルチノードはサポートされていないため、この値を 1 に設定する必要があります。
+ `data_s3_path`: (必須) 入力データセットへの S3 パス。*Bring your own dataset* または *LLM-as-a-judge* を使用しない限り、このパラメータは空のままにします。
+ `output_s3_path`: (必須) 出力評価アーティファクトを保存する S3 パス。出力 S3 バケットは、ジョブを作成しているのと同じアカウントで作成する必要があります。
+ `mlflow_tracking_uri`: (オプション) MLflow の実行/実験を追跡するための MLFlow 追跡サーバー ARN。SageMaker AI 実行ロールから追跡サーバーにアクセスするアクセス許可があることを確認してください

**評価設定**  
以下はモデル評価設定と関連するパラメータの説明です。

```
evaluation:
  task: mmlu
  strategy: zs_cot
  subtask: mathematics
  metric: accuracy
```
+ `task`: (必須) 使用する評価ベンチマークまたはタスクを指定します。

  サポートされているタスクのリスト:
  + mmlu
  + mmlu\_pro
  + bbh
  + gpqa
  + 算術
  + strong\_reject
  + gen\_qa
  + ifeval
  + llm\_judge
  + humaneval
  + mm\_llm\_judge
  + rubric\_llm\_judge
  + aime\_2024
  + calendar\_scheduling
  + humaneval
+ `strategy`: (必須) 評価アプローチを定義します。
  + zs\_cot: Zero-shot Chain-of-Thought - 明示的な例を必要とせずにステップバイステップの推論を推進する、大規模言語モデルに対してプロンプトを実行するアプローチ。
  + zs: Zero-shot - 過去のトレーニング例なしで問題を解決するためのアプローチ。
  + gen\_qa: Bring your own dataset レシピに固有の戦略。
  + judge: Judge および mm\_llm\_judge として Amazon Nova LLM に固有の戦略。
+ `subtask`: (省略および削除可能) 特定の評価タスクの特定のサブタスクを指定します。タスクにサブタスクがない場合は、レシピからこれを削除します。
+ `metric`: (必須) 使用する評価メトリクス。
  + accuracy: 正しい回答の割合
  + exact\_match: (`math` ベンチマークの場合) 入力予測文字列が参照と完全に一致する率を返します。
  + deflection: (`strong reject` ベンチマークの場合) ベースモデルへの相対偏向と有意性メトリクスの差を返します。
  + pass@1: (`humaneval` ベンチマークの場合) モデルの最高信頼度予測が正解と一致するケースの割合を測定するために使用されるメトリクス。
  + `all`: 次のメトリクスを返します。
    + `gen_qa` と Bring your own dataset ベンチマークでは、次のメトリクスを返します。
      + `rouge1`: 生成されたテキストと参照テキスト間のユニグラム (単一単語) の重複を測定します。
      + `rouge2`: 生成されたテキストと参照テキストの間のバイグラム (2 つの連続した単語) の重複を測定します。
      + `rougeL`: テキスト間の最長の共通サブシーケンスを測定し、一致でのギャップを許容します。
      + `exact_match`: 生成されたテキストが参照テキストと完全に一致するかどうかを示すバイナリスコア (0 または 1)。文字単位で評価されます。
      + `quasi_exact_match`: 完全一致に似ていますが、より寛容で、通常は大文字と小文字、句読点、空白の違いが無視されます。
      + `f1_score`: 予測された回答と参照回答の間の単語の重複を測定する、精度と再現率を組み合わせた手法。
      + `f1_score_quasi`: f1\_score に似ていますが、より寛容なマッチングであり、わずかな違いを無視する正規化されたテキスト比較を使用します。
      + `bleu`: 翻訳評価で一般的に使用される、生成されたテキストと参照テキストの間の n グラム一致の精度を測定します。
    + `llm_judge` および `mm_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`: Bradley-Terry 確率を使用して計算された、response\_A よりも response\_B が優先される確率。
      + `lower_rate`: ブートストラップサンプリングからの推定勝率の下限 (2.5 パーセンタイル)。

**推論の設定**  
以下は推論設定と関連するパラメータの説明です。すべてのパラメータは省略可能です。

```
inference:
  max_new_tokens: 200
  top_k: -1
  top_p: 1.0
  temperature: 0
  top_logprobs: 10
  reasoning_effort: null  # options: low/high to enable reasoning or null to disable reasoning
```
+ `max_new_tokens`: 生成するトークンの最大数。整数にする必要があります。
+ `top_k`: 考慮する最も高い確率のトークンの数。整数にする必要があります。
+ `top_p`: トークンサンプリングの累積確率しきい値。これは 0.0 から 1.0 までの浮動小数点数にする必要があり、その範囲に限ります。
+ `temperature`: トークン選択のランダム性。値が大きいほどランダム性が高くなります。結果を確定的にするには、0 を使用します。この値は、最小値が 0 の浮動小数点数にする必要があります。
+ `top_logprobs`: 推論レスポンスで返される上位の logprob の数。この値は 0～20 の整数にする必要があります。Logprobs には、メッセージコンテンツで返される各出力トークンの考慮された出力トークンとログ確率が含まれます。
+ `reasoning_effort`: 推論対応モデルの推論動作を制御します。`model_type` が推論対応モデル (現在は `amazon.nova-2-lite-v1:0:256k`) を指定する場合にのみ `reasoning_effort` を設定します。使用可能なオプションは、`null` (設定されていない場合はデフォルト値。推論を無効化)、`low`、または `high` です。

`humaneval` では、次の推論設定をお勧めします。

```
inference:
  top_k: 1
  max_new_tokens: 1600
  temperature: 0.0
```

**MLFlow 設定**  
以下は MLFlow 設定と関連するパラメータの説明です。すべてのパラメータは省略可能です。

```
run:
  mlflow_tracking_uri: ""
  mlflow_experiment_name: ""
  mlflow_run_name: ""
```
+ `mlflow_tracking_uri`: (オプション) MLflow 追跡サーバーの場所 (SMHP でのみ必要)
+ `mlflow_experiment_name`: (オプション) 関連する ML 実行をグループ化する実験の名前
+ `mlflow_run_name`: (オプション) 実験内の特定のトレーニング実行のカスタム名