

# 了解配方参数
<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-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\$1pro
  + bbh
  + gpqa
  + math
  + strong\$1reject
  + gen\$1qa
  + ifeval
  + llm\$1judge
  + humaneval
  + mm\$1llm\$1judge
  + rubric\$1llm\$1judge
  + aime\$12024
  + calendar\$1scheduling
  + humaneval
+ `strategy`：（必填）定义评估方法：
  + zs\$1cot：零样本思维链，该提示方法激励大型语言模型逐步进行推理，而不提供明确的示例。
  + zs：零样本，该方法事先无需任何训练示例即可解决问题。
  + gen\$1qa：一种专门用于自带数据集配方的策略。
  + judge：一种专门用于 Amazon Nova LLM as judge 和 mm\$1llm\$1judge 的策略。
+ `subtask`：（可选且可移除）为某些评估任务指定具体的子任务。如果您的任务没有任何子任务，请将其从配方中移除。
+ `metric`：（必填）要使用的评估指标。
  + accuracy：正确答案的百分比
  + exact\$1match：（对于 `math` 基准测试），返回输入预测字符串与其引用完全匹配的速率。
  + deflection：（对于 `strong reject` 基准测试），返回基本模型的相对偏差和差异显著性指标。
  + pass@1：（对于 `humaneval` 基准测试），该指标用于衡量模型的最高置信度预测与正确答案相匹配的情况所占的百分比。
  + `all`：返回以下指标：
    + 对于 `gen_qa` 和自带数据集基准测试，返回以下指标：
      + `rouge1`：衡量生成的文本和参考文本之间的一元（单个词）重叠度。
      + `rouge2`：衡量生成的文本和参考文本之间的二元（两个连续的词）重叠度。
      + `rougeL`：衡量文本之间的最长公共子序列，匹配中可以存在间隙。
      + `exact_match`：二进制分数（0 或 1），用于指示生成的文本是否与参考文本逐个字符完全匹配。
      + `quasi_exact_match`：与精确匹配类似，但更加宽松，通常忽略大小写、标点符号和空格差异。
      + `f1_score`：精度和查全率之间的调和平均数，衡量预测答案和参考答案之间的词语重叠度。
      + `f1_score_quasi`：与 f1\$1score 类似，但匹配更为宽松，使用忽略细微差异的标准化文本比较。
      + `bleu`：衡量生成的文本和参考文本之间 n-gram 匹配的精确度，通常用于翻译评估。
    + 对于 `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\$1B 比 response\$1A 更受欢迎的概率。
      + `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`：推理响应中需返回的最高对数概率数量。取值必须为 0 到 20 之间的整数。对数概率包含消息内容中返回的输出词元及其对应的对数概率值。
+ `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`:（可选）实验名称，用于对相关的机器学习运行记录进行分组
+ `mlflow_run_name`:（可选）实验中某次特定训练运行的自定义名称