# 创建评测任务

> 全部文档的索引见 [llms.txt](https://ark.volcengine.com/llms.txt)；在任一文档页面地址后追加 `.md` 可获取该页的 Markdown 版本。

`POST https://ark.cn-beijing.volcengineapi.com/?Action=CreateEvaluationJob&Version=2024-01-01`

创建一个模型评测任务，对指定模型通过评测集进行自动化评测。

## 鉴权

本接口支持鉴权方式如下，详情请参见 [Base URL 及鉴权](/docs/base-url-and-authentication)。

* Access Key 鉴权，请在 [Access Key 管理](https://console.volcengine.com/iam/keymanage) 页面，获取 Access Key。本接口仅支持 Access Key 鉴权。

---

<span id="request-parameters"></span>
## 请求参数

### Body 参数

**EvaluationDatasets** `object[]` `必选` | 评测集列表

评测集列表，用于评测目标模型在不同能力维度上的表现。可同时指定多个评测集组合评估。

> **说明**
>
> 评测集支持平台预置（`AdminDataset`）与用户自定义（`UserDataset`）两类。用户自定义评测集需先上传至 TOS（仅支持华北 2-北京地域），并按平台规定的 JSONL 格式组织样本。

**DatasetType** `string` `必选` | 评测集类型

`EvaluationDatasets.DatasetType`

评测集类型，决定评测集来源：

- `AdminDataset`：平台预置评测集。
- `UserDataset`：用户自定义评测集（需通过 TOS 上传）。

**Method** `string` `必选` | 评测算法

`EvaluationDatasets.Method`

评测算法，决定如何对模型输出进行打分：

- `Include`：包含匹配，模型输出中包含期望答案即判正确。
- `BuiltIn`：平台内置算法（如 LLM-as-Judge 等）。
- `Match`：精确匹配，模型输出与期望答案完全一致才判正确。
- `InferenceOnly`：仅做推理、不进行评分，常用于数据采集场景。

**AdminEvaluationDatasetId** `string` | 预置评测集 ID

`EvaluationDatasets.AdminEvaluationDatasetId`

平台预置评测集的 ID。当 *DatasetType* 为 `AdminDataset` 时填写。

**EvaluationAbility** `string` | 评测能力维度

`EvaluationDatasets.EvaluationAbility`

评测集所覆盖的能力维度名称，例如 MMLU、CMMLU 等。

**ScoringWeight** `integer` | 评测分数比重

`EvaluationDatasets.ScoringWeight`

评测集在最终综合评分中所占的分数权重，数值越大该评测集对综合分数的影响越大。

**TosLocation** `object` | 评测集 TOS 位置

`EvaluationDatasets.TosLocation`

用户自定义评测集在 TOS 中的存储位置。当 *DatasetType* 为 `UserDataset` 时必填。

**BucketName** `string` `必选` | TOS 桶名称

`EvaluationDatasets.TosLocation.BucketName`

> **说明：注意**
>
> 当前火山方舟仅支持华北 2-北京地域（`region: cn-beijing`）的 TOS 桶。请在创建或选择桶时确认地域。

**ObjectKey** `string` `必选` | TOS 对象路径

`EvaluationDatasets.TosLocation.ObjectKey`

TOS 对象路径（Object Key），指向具体的评测集或结果文件。

**Name** `string` `必选` | 任务名称

模型评测任务的名称，用于在控制台和接口中标识该任务。

**DatasetFormat** `string` `默认值 SingleTurn` | 评测集数据格式

评测集数据格式，决定平台如何解析评测集样本：

- `SingleTurn`：单轮对话格式。
- `MultiTurn`：多轮对话格式。

**Description** `string` | 任务描述

模型评测任务的描述，用于补充说明任务用途、背景等信息。

**DryRun** `boolean` `默认值 false` | 是否仅做预检

是否仅对此请求进行预检：

- `true`：仅做参数与权限校验，不会真正创建评测任务。
- `false`：发送正常请求，创建评测任务。

**EndpointId** `string` | 接入点 ID

接入点 ID。当通过接入点（Endpoint）指定评测对象时填写，可在控制台的接入点列表页获取。与 *ModelReference* 二选一。

**EvaluationJobSettings** `object` | 高级设置

评测任务的高级设置，包含推理参数、结果存储位置、裁判模型 system prompt 等。

**EnableLogProbs** `boolean` | 是否启用 Logprobs

`EvaluationJobSettings.EnableLogProbs`

是否在评测过程中启用 Logprobs（返回每个 token 的对数概率）。

**InferenceParameters** `object` | 推理参数

`EvaluationJobSettings.InferenceParameters`

推理参数配置，控制评测过程中模型的生成行为。

**FrequencyPenalty** `string` | 频率惩罚系数

`EvaluationJobSettings.InferenceParameters.FrequencyPenalty`

频率惩罚系数。值为正数时，会根据新 token 在生成文本中出现的频率施加惩罚，降低模型逐字重复的概率。

**取值范围**：`[-2, 2]`

**Logprobs** `boolean` | 是否启用 Logprobs

`EvaluationJobSettings.InferenceParameters.Logprobs`

是否在推理结果中返回每个 token 的对数概率（Logprobs）。

**MaxTokens** `integer` | 最大输出 token 数

`EvaluationJobSettings.InferenceParameters.MaxTokens`

模型本次推理可生成的最大 token 数。

**取值范围**：`[0, 4096]`

**Stop** `string[]` | 停止生成字符串

`EvaluationJobSettings.InferenceParameters.Stop`

停止生成的字符串列表。模型遇到列表中任一字符串时立即停止生成，且该字符串本身不会输出。最多支持 4 个。

**Temperature** `string` | 采样温度

`EvaluationJobSettings.InferenceParameters.Temperature`

采样温度。控制对每个候选 token 概率分布的平滑程度，值越大输出越随机、越小越确定。

**取值范围**：`[0, 1]`

**TopLogprobs** `integer` | TopLogprobs 数量

`EvaluationJobSettings.InferenceParameters.TopLogprobs`

每个输出 token 位置最多返回的最可能 token 数量，每个 token 都附带对数概率。仅当 *Logprobs* 为 `true` 时生效。

**取值范围**：`[0, 20]`

**TopP** `string` | 核采样概率阈值

`EvaluationJobSettings.InferenceParameters.TopP`

核采样概率阈值。模型只考虑累计概率落在 *TopP* 内的候选 token 集合。

**取值范围**：`[0, 1]`

**LLMJudgeMetricSystemPrompt** `string` | 裁判模型 system prompt

`EvaluationJobSettings.LLMJudgeMetricSystemPrompt`

裁判模型（LLM-as-Judge）的 system prompt，用于描述评估指标和打分规则。仅当评测算法为 `BuiltIn` 且涉及 LLM 裁判时生效。

**ResultTosLocation** `object` | 结果存储 TOS 位置

`EvaluationJobSettings.ResultTosLocation`

评测结果在 TOS 的存储位置。未指定时使用平台默认存储。

**BucketName** `string` `必选` | TOS 桶名称

`EvaluationJobSettings.ResultTosLocation.BucketName`

> **说明：注意**
>
> 当前火山方舟仅支持华北 2-北京地域（`region: cn-beijing`）的 TOS 桶。请在创建或选择桶时确认地域。

**ObjectKey** `string` `必选` | TOS 对象路径

`EvaluationJobSettings.ResultTosLocation.ObjectKey`

TOS 对象路径（Object Key），指向具体的评测集或结果文件。

**IgnoreCache** `boolean` | 是否忽略缓存

是否忽略推理缓存。开启后即便存在历史相同输入的推理结果，也会重新调用模型推理。

**InferenceType** `string` `默认值 ChatInference` | 推理类型

推理类型，决定评测时调用模型的方式：

- `BatchInference`：批量推理，适合大规模评测，吞吐高、延迟不敏感。
- `ChatInference`：在线推理，逐条请求，延迟低。

**ModelReference** `object` | 评测对象（模型）

评测对象（模型）的引用信息，用于指定参与评测的模型。与 *EndpointId* 二选一指定评测对象。

**CustomModelId** `string` | 定制模型 ID

`ModelReference.CustomModelId`

定制模型的 ID。当评测对象为定制（精调）模型时填写。

**FoundationModel** `object` | 基础模型

`ModelReference.FoundationModel`

基础模型引用。当评测对象为基础模型时填写。

**ModelVersion** `string` `必选` | 基础模型版本

`ModelReference.FoundationModel.ModelVersion`

基础模型的版本号。

**Name** `string` `必选` | 基础模型名称

`ModelReference.FoundationModel.Name`

基础模型的名称，例如 `doubao-seed-2-1-pro-260628`。

**Platform** `string` | 平台标识

调用方平台标识，用于平台侧统计与路由，通常无需手动设置。

**ProjectName** `string` `默认值 default` | 项目名称

资源所属的项目名称。若资源不在默认项目中，需填写正确的项目名称。

**Tags** `object[]` | 任务标签

模型评测任务绑定的标签列表，用于资源分类与检索。

**Key** `string` `必选` | 标签键

`Tags.Key`

**Value** `string` `必选` | 标签值

`Tags.Value`

## 响应参数

**Id** `string` | 评测任务 ID

新创建的模型评测任务的 ID。可用于后续查询、更新、终止或删除该任务。


## 代码示例

## 默认

### cURL

#### Request

```bash
curl 'https://ark.cn-beijing.volcengineapi.com/?Action=CreateEvaluationJob&Version=2024-01-01' \
  -H 'Content-Type: application/json' \
  -H 'X-Date: <X-Date>' \
  -H 'X-Content-Sha256: <X-Content-Sha256>' \
  -H 'Authorization: HMAC-SHA256 Credential=<AK>/<X-Date>/cn-beijing/ark/request, SignedHeaders=content-type;host;x-content-sha256;x-date, Signature=<Signature>' \
  -d '{
  "Name": "测试任务",
  "EndpointId": "ep-20240401114848-hzfcz",
  "EvaluationDatasets": [
    {
      "DatasetType": "AdminDataset",
      "AdminEvaluationDatasetId": "aed-20240227112053-bt425",
      "Method": "BuiltIn",
      "EvaluationAbility": "MMLU",
      "ScoringWeight": 3107
    }
  ]
}
'
```

#### Response

```
{
    "ResponseMetadata": {
        "RequestId": "202404111449574CC61570F45B511EF0",
        "Action": "CreateEvaluationJob",
        "Version": "2024-01-01",
        "Service": "ark",
        "Region": "cn-beijing"
    },
    "Result": {
        "Id": "ej-20240411144957-hxj6z"
    }
}
```
