创建模型评估任务
更新时间:2025-05-16
功能介绍
用于创建并启动模型评估任务。
使用说明
本文API支持通过Python SDK、Go SDK、Java SDK 和 Node.js SDK调用,调用流程请参考SDK安装及使用流程。
SDK调用
调用示例
1import os
2from qianfan import resources
3
4# 通过环境变量初始化认证信息
5# 使用安全认证AK/SK调用,替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk,如何获取请查看https://cloud.baidu.com/doc/Reference/s/9jwvz2egb
6os.environ["QIANFAN_ACCESS_KEY"] = "your_iam_ak"
7os.environ["QIANFAN_SECRET_KEY"] = "your_iam_sk"
8
9
10
11resp = resources.console.utils.call_action(
12 # 调用本文API,该参数值为固定值,无需修改;对应API调用文档-请求结构-请求地址的后缀
13 "/wenxinworkshop/modelrepo/eval/model/list", "",
14 # 请查看本文请求参数说明,根据实际使用选择参数;对应API调用文档-请求参数-Body参数
15 {
16 "name": "test_save1",
17 "datasetId": 259,
18 "versionEvalInfo": [
19 {
20 "modelVersionId": 857,
21 "params": {
22 "temperature": 0.95,
23 "top_p": 0.7,
24 "penalty_score": 1
25 },
26 "prompt": {
27 "enable": true,
28 "content": "请回答以下问题:{input}"
29 },
30 "inferDatasetStorageType": "usrBos",
31 "inferDatasetStorageId": "testmc",
32 "inferDatasetRawPath": "data/"
33 }
34 ],
35 "evalStandardConf": {
36 "evalMode": "manual",
37 "evaluationDimension": [
38 {
39 "dimension": "满意度",
40 "key": 0,
41 "formChecked": "22"
42 }
43 ]
44 }
45 }
46
47)
48
49print(resp.body)
1package main
2import (
3 "context"
4 "fmt"
5 "os"
6 "github.com/baidubce/bce-qianfan-sdk/go/qianfan"
7)
8func main() {
9 // 使用安全认证AK/SK鉴权,通过环境变量初始化;替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
10 os.Setenv("QIANFAN_ACCESS_KEY", "your_iam_ak")
11 os.Setenv("QIANFAN_SECRET_KEY", "your_iam_sk")
12
13 ca := qianfan.NewConsoleAction()
14
15 res, err := ca.Call(context.TODO(),
16 // 调用本文API,该参数值为固定值,无需修改;对应API调用文档-请求结构-请求地址的后缀
17 "/wenxinworkshop/modelrepo/eval/create", "",
18 // 请查看本文请求参数说明,根据实际使用选择参数;对应API调用文档-请求参数-Body参数
19 map[string]interface{}{
20 "name": "test_save1",
21 "datasetId": 259,
22 "versionEvalInfo": []map[string]any{
23 {
24 "modelVersionId": 857,
25 "params": map[string]any{
26 "temperature": 0.95,
27 "top_p": 0.7,
28 "penalty_score": 1,
29 },
30 "prompt": map[string]any{
31 "enable": true,
32 "content": "请回答以下问题:{input}",
33 },
34 "inferDatasetStorageType": "usrBos",
35 "inferDatasetStorageId": "testmc",
36 "inferDatasetRawPath": "data/",
37 },
38 },
39 "evalStandardConf": map[string]any{
40 "evalMode": "manual",
41 "evaluationDimension": []map[string]any{
42 {
43 "dimension": "满意度",
44 "key": 0,
45 "formChecked": "22",
46 },
47 },
48 },
49 })
50
51 if err != nil {
52 panic(err)
53 }
54 fmt.Println(string(res.Body))
55
56}
1import com.baidubce.qianfan.Qianfan;
2import com.baidubce.qianfan.model.console.ConsoleResponse;
3import com.baidubce.qianfan.util.CollUtils;
4import com.baidubce.qianfan.util.Json;
5import java.util.Map;
6
7public class Dome {
8 public static void main(String args[]){
9 // 使用安全认证AK/SK鉴权,替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
10 Qianfan qianfan = new Qianfan("your_iam_ak", "your_iam_sk");
11
12 ConsoleResponse<Map<String, Object>> response = qianfan.console()
13 // 调用本文API,该参数值为固定值,无需修改;对应API调用文档-请求结构-请求地址的后缀
14 .route("/wenxinworkshop/modelrepo/eval/create")
15 // 需要传入参数的场景,可以自行封装请求类,或者使用Map.of()来构建请求Body
16 // Java 8可以使用SDK提供的CollUtils.mapOf()来替代Map.of()
17 // 请查看本文请求参数说明,根据实际使用选择参数;对应API调用文档-请求参数-Body参数
18 .body(CollUtils.mapOf(
19 "name", "test_save1",
20 "datasetId", 259,
21 "versionEvalInfo", new Map[]{
22 CollUtils.mapOf(
23 "modelVersionId", 857,
24 "params", CollUtils.mapOf(
25 "temperature", 0.95,
26 "top_p", 0.7,
27 "penalty_score",1
28 ),
29 "prompt", CollUtils.mapOf(
30 "enable", true,
31 "content", "请回答以下问题:{input}"
32 ),
33 "inferDatasetStorageType", "usrBos",
34 "inferDatasetStorageId", "testmc",
35 "inferDatasetRawPath", "data/"
36 )
37 },
38 "evalStandardConf", CollUtils.mapOf(
39 "evalMode", "manual",
40 "evaluationDimension", new Map[]{
41 CollUtils.mapOf(
42 "dimension", "满意度",
43 "key", 0,
44 "formChecked", "22"
45 )
46 }
47 )
48 ))
49 .execute();
50
51 System.out.println(Json.serialize(response));
52 }
53}
1import {consoleAction, setEnvVariable} from "@baiducloud/qianfan";
2
3// 使用安全认证AK/SK鉴权,通过环境变量初始化;替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
4setEnvVariable('QIANFAN_ACCESS_KEY','your_iam_ak');
5setEnvVariable('QIANFAN_SECRET_KEY','your_iam_sk');
6
7async function main() {
8 //base_api_route:调用本文API,该参数值为固定值,无需修改;对应API调用文档-请求结构-请求地址的后缀
9 //data:请查看本文请求参数说明,根据实际使用选择参数;对应API调用文档-请求参数-Body参数
10 const res = await consoleAction({base_api_route: '/wenxinworkshop/modelrepo/eval/create', data: {
11 "name": "test_save1",
12 "datasetId": 259,
13 "versionEvalInfo": [
14 {
15 "modelVersionId": 857,
16 "params": {
17 "temperature": 0.95,
18 "top_p": 0.7,
19 "penalty_score": 1
20 },
21 "prompt": {
22 "enable": true,
23 "content": "请回答以下问题:{input}"
24 },
25 "inferDatasetStorageType": "usrBos",
26 "inferDatasetStorageId": "testmc",
27 "inferDatasetRawPath": "data/"
28 }
29 ],
30 "evalStandardConf": {
31 "evalMode": "manual",
32 "evaluationDimension": [
33 {
34 "dimension": "满意度",
35 "key": 0,
36 "formChecked": "22"
37 }
38 ]
39 }
40 }
41 });
42
43 console.log(res);
44}
45
46main();
返回示例
1{
2 "log_id": "3789040540",
3 "result": {
4 "evalId": 330,
5 "evalIdStr": "ame-wjmszjt71gfg"
6 }
7}
1{
2 "log_id": "3789040540",
3 "result": {
4 "evalId": 330,
5 "evalIdStr": "ame-wjmszjt71gfg"
6 }
7}
1{
2 "log_id": "3789040540",
3 "result": {
4 "evalId": 330,
5 "evalIdStr": "ame-wjmszjt71gfg"
6 }
7}
1{
2 log_id: '3789040540',
3 result: {
4 evalId: 330,
5 evalIdStr: 'ame-wjmszjt71gfg'
6 }
7}
请求参数
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
id | string | 否 | 评估任务id,示例:ame-vwgs2ybhyhfv,说明: (1)此参数仅支持已存在的编辑中的评估任务id;如果是直接新建任务,不需要填写此参数 (2)在控制台-模型评估页面,点击某评估任务名称打开详情页,在任务详情的基本信息中查看,如下图所示 ![]() (3) 该字段新增支持string类型,如果之前使用的是int类型,建议变更为string类型,后续可能将逐步废弃int类型 |
name | string | 是 | 任务名称 |
description | string | 否 | 任务描述 |
versionEvalInfo | List<object> | 是 | 待评估模型版本信息列表 |
datasetId | string | 是 | 评估数据集版本的ID,示例:17786,说明: (1)可以通过以下任一方式获取该字段值: · 方式一,通过调用创建数据集接口,返回的datasetId字段获取 · 方式二,在控制台-数据集管理列表页面查看,如下图所示: ![]() (2)推理结果集评估场景可不填 |
evalStandardConf | object | 是 | 评估模式配置 |
computeResourceConf | object | 是 | 运行环境配置,固定值为{"vmType":1,"vmNumber":8} |
versionEvalInfo说明
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
modelVersionId | string | 否 | 模型版本ID,示例值:amv-g73j3faikzpz,说明: (1)如果是发起模型的评估任务,该字段必填 (2)在控制台-我的模型,点击某模型详情,在版本列表中查看,如下图所示 ![]() (3)该字段新增支持string类型,如果之前使用的是integer类型,建议变更为string类型,后续可能将逐步废弃integer类型 |
inferDatasetId | string | 否 | 推理结果集id,说明: (1)发起推理结果集的评估任务,该字段必填 (2)通过以下方法获取该字段值,在控制台-数据管理-数据集-推理结果集页面,点击某个推理结果集详情,点击推理结果集信息页面查看,如下图所示: ![]() |
inferDatasetStorageType | string | 否 | 推理结果集存储类型,说明: (1)选择模型评估时,才需要填该字段,用于存储评估过程中产生的推理结果集 (2)可选值如下: · usrBos:用户存储 · sysBos:系统存储 |
inferDatasetStorageId | string | 否 | bucket,说明:当inferDatasetStorageType值为usrBos,该字段值必填 |
inferDatasetRawPath | string | 否 | 存储路径,说明:当inferDatasetStorageType值为usrBos,该字段值必填,不包含bucket的子路径 |
prompt | object | 否 | prompt模板信息 |
params | object | 否 | 模型推理超参 |
prompt说明
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
enable | bool | 否 | 是否启用Prompt模板 |
content | string | 否 | Prompt模板内容,说明: (1)需要包含{input}标签,作为输入数据集中prompt的占位符 (2)示例,例如此字段为:"请你回答以下问题:{input}"在实际推理时,假设输入数据集中一条数据prompt为:"请给出一个人工智能的标题"最终模型推理时,会传入以下prompt:"请你回答以下问题:请给出一个人工智能的标题" |
params说明
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
temperature | float | 否 | 温度,说明: (1)较高的数值会使输出更加随机,而较低的数值会使其更加集中和确定 (2)两位小数,范围 (0, 1.0],不能为0 |
top_p | float | 否 | 多样性,说明: (1)影响输出文本的多样性,取值越大,生成文本的多样性越强 (2)取值范围 [0, 1.0] |
penalty_score | float | 否 | 通过对已生成的token增加惩罚,减少重复生成的现象。说明: (1)值越大表示惩罚越大 (2)取值范围:[1.0, 2.0] |
disable_search | bool | 否 | 是否强制关闭实时搜索功能,默认false,表示不关闭 |
enable_citation | bool | 否 | 搜索溯源,开启后有概率触发搜索溯源信息 |
top_k | int | 否 | Top-K 采样参数,在每轮token生成时,保留k个概率最高的token作为候选。说明: (1)影响输出文本的多样性,取值越大,生成文本的多样性越强 (2)取值范围:正整数 |
evalStandardConf说明
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
evalMode | string | 是 | 评估模式,说明: (1)可选值如下 : · rule:基于规则 · model:裁判员模型 · manual:人工评估 (2)多个模式使用,拼接,示例“model,manual,rule” |
stopWordsPath | string | 否 | 基于规则的停用词表路径,说明:当evalMode参数中包含rule,即存在规则评估模式时,此字段有效,非必填 |
appId | number | 是 | 裁判员模型的应用APPID,说明: · 当evalMode参数中包含model,即存在裁判员评估模式时,此字段必填 · 在控制台-应用接入列表查看该字段值,如下图所示: ![]() |
prompt | object | 是 | 裁判员评估打分模板配置,说明: · 当evalMode参数中包含model,即存在裁判员评估模式时,此字段必填 |
evaluationDimension | List<object> | 是 | 人工评估评价维度,说明: · 默认维度为满意度,不可删除 · 用户可自行添加其他维度,最多添加4个维度 · 当evalMode参数中包含manual,即存在人工评估模式时,此字段必填 |
resultDatasetStorageType | string | 否 | bos类型,说明: (1)可选值如下: · sysBos:系统bos · usrBos:用户bos (2)不填默认是系统bos |
resultDatasetStorageId | string | 否 | 用户bos的bucket |
resultDatasetRawPath | string | 否 | 用户bos用于存放数据集的路径,不包含bucket的子路径 |
prompt说明
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
templateContent | string | 是 | 模板内容 |
metric | string | 是 | 指标内容,替换{metric}占位符 |
steps | string | 是 | 评分步骤,用于替换{steps}占位符 |
maxScore | number | 是 | 最高分,用于替换{max_score}占位符 |
evaluationDimension说明
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
dimension | string | 是 | 评价维度 |
description | string | 否 | 维度的描述 |
computeResourceConf说明
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
vmType | integer | 是 | 计算资源规格ID,固定值为1 |
vmNumber | number | 是 | 计算资源数量,固定值为8 |
返回参数
名称 | 类型 | 描述 |
---|---|---|
log_id | string | 请求ID |
result | object | 请求结果 |
result说明
名称 | 类型 | 描述 |
---|---|---|
evalId | int | 评估任务id,注意:该字段后续将废弃,如需使用评估任务id,请使用evalIdStr |
evalIdStr | string | 评估任务id |