

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 了解配方參數
<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 路徑。除非您使用的是*使用自有資料集*或 *LLM 即評審*配方，否則請將此參數保留空白。
+ `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：零樣本思緒鏈 - 一種可提示大型語言模型的方法，鼓勵逐步推理，而無需明確的範例。
  + zs：零樣本 - 一種無需任何先前訓練範例即可解決問題的方法。
  + gen\_qa：使用自有資料集配方特定的策略。
  + judge：Amazon Nova LLM 作為 Judge 和 mm\_llm\_judge 的特定策略。
+ `subtask`：(選用且可移除) 針對特定評估任務指定特定子任務。如果您的任務沒有任何子任務，請從配方中移除此項目。
+ `metric`：(必要) 要使用的評估指標。
  + 正確性：正確回答的百分比
  + exact\_match：(對於 `math` 基準) 會傳回輸入預測字串與其參考完全相符的比率。
  + 偏轉：(對於 `strong reject` 基準測試) 會將相對偏轉傳回基本模型和顯著性指標的差異。
  + pass@1：(對於 `humaneval` 基準測試) 用來測量模型最高可信度預測符合正確回答之案例百分比的指標。
  + `all`：傳回下列指標：
    + 對於 `gen_qa` 和使用自有資料集基準，這會傳回下列指標：
      + `rouge1`：測量所產生文字和參考文字之間一元語法 (一個字) 的重疊。
      + `rouge2`：測量所產生文字和參考文字之間二元語法 (連續兩個字) 的重疊。
      + `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 的整數。Logprob 包含考慮的輸出字符，以及訊息內容中傳回的每個輸出字符的日誌機率。
+ `reasoning_effort`：控制可推理模型的推理行為。`reasoning_effort` 只有在`model_type`指定可推理的模型時設定 （目前為 `amazon.nova-2-lite-v1:0:256k`)。可用選項為 `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`：（選用） 實驗中特定訓練執行的自訂名稱