创建模型精调任务
更新时间:2025-05-23
功能介绍
用于创建模型精调任务。
使用说明
本文API支持通过Python SDK、Go SDK、Java SDK 和 Node.js SDK调用,调用流程请参考SDK安装及使用流程。
权限说明
调用本文API,需符合以下权限要求,权限介绍及分配,请查看角色与权限控制列表、账号创建与权限分配。需具有以下任一权限:
- 完全控制千帆大模型平台的权限:QianfanFullControlAccessPolicy
- 完全控制千帆大模型平台模型调优的权限:QianfanModelTuningFullControlAccessPolicy
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 "/v2/finetuning",
14 # 调用本文API,该参数值为固定值,无需修改;对应API调用文档-请求参数-Query参数的Action
15 "CreateFineTuningTask",
16 # 请查看本文请求参数说明,根据实际使用选择参数;对应API调用文档-请求参数-Body参数
17 {
18 "jobId": "job-1xzycis4jm3b",
19 "parameterScale": "FullFineTuning",
20 "hyperParameterConfig": {
21 "epoch": 1,
22 "learningRate": 0.00003,
23 "maxSeqLen": 4096
24 },
25 "datasetConfig": {
26 "sourceType": "Platform",
27 "versions": [{
28 "versionId": "ds-he8srs01ym0b8fh7"
29 }],
30 "splitRatio": 20
31 }
32 }
33)
34
35print(resp.body)
1package main
2
3import (
4 "context"
5 "fmt"
6 "os"
7
8 "github.com/baidubce/bce-qianfan-sdk/go/qianfan"
9)
10
11func main() {
12 // 使用安全认证AK/SK鉴权,通过环境变量初始化;替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
13 os.Setenv("QIANFAN_ACCESS_KEY", "your_iam_ak")
14 os.Setenv("QIANFAN_SECRET_KEY", "your_iam_sk")
15
16 ca := qianfan.NewConsoleAction()
17
18 res, err := ca.Call(context.TODO(),
19 // 调用本文API,该参数值为固定值,无需修改;对应API调用文档-请求结构-请求地址的后缀
20 "/v2/finetuning",
21 // 调用本文API,该参数值为固定值,无需修改;对应API调用文档-请求参数-Query参数的Action
22 "CreateFineTuningTask",
23 // 请查看本文请求参数说明,根据实际使用选择参数;对应API调用文档-请求参数-Body参数
24 map[string]interface{}{
25 "jobId": "job-1xzycis4jm3b",
26 "parameterScale": "FullFineTuning",
27 "hyperParameterConfig": map[string]any{
28 "epoch": 1,
29 "learningRate": 0.00003,
30 "maxSeqLen": 4096,
31 },
32 "datasetConfig": map[string]any{
33 "sourceType": "Platform",
34 "versions": []map[string]any{{
35 "versionId": "ds-he8srs01ym0b8fh7",
36 }},
37 "splitRatio": 20,
38 },
39 })
40 if err != nil {
41 panic(err)
42 }
43 fmt.Println(string(res.Body))
44
45}
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("/v2/finetuning")
15 // 调用本文API,该参数值为固定值,无需修改;对应API调用文档-请求参数-Query参数的Action
16 .action("CreateFineTuningTask")
17 // 需要传入参数的场景,可以自行封装请求类,或者使用Map.of()来构建请求Body
18 // Java 8可以使用SDK提供的CollUtils.mapOf()来替代Map.of()
19 // 请查看本文请求参数说明,根据实际使用选择参数;对应API调用文档-请求参数-Body参数
20 .body(CollUtils.mapOf(
21 "jobId", "job-1xzycis4jm3b",
22 "parameterScale", "FullFineTuning",
23 "hyperParameterConfig", CollUtils.mapOf(
24 "epoch", 1,
25 "learningRate", 0.00003,
26 "maxSeqLen", 4096
27 ),
28 "datasetConfig", CollUtils.mapOf(
29 "sourceType", "Platform",
30 "versions",new Map[]{CollUtils.mapOf(
31 "versionId", "ds-he8srs01ym0b8fh7"
32 )},
33 "splitRatio", 20
34 )
35 ))
36 .execute();
37
38 System.out.println(Json.serialize(response));
39 }
40}
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 //action:调用本文API,该参数值为固定值,无需修改;对应API调用文档-请求参数-Query参数的Action
10 //data:请查看本文请求参数说明,根据实际使用选择参数;对应API调用文档-请求参数-Body参数
11 const res = await consoleAction({base_api_route: '/v2/finetuning', action: 'CreateFineTuningTask', data: {
12 "jobId": "job-1xzycis4jm3b",
13 "parameterScale": "FullFineTuning",
14 "hyperParameterConfig": {
15 "epoch": 1,
16 "learningRate": 0.00003,
17 "maxSeqLen": 4096
18 },
19 "datasetConfig": {
20 "sourceType": "Platform",
21 "versions": [{
22 "versionId": "ds-he8srs01ym0b8fh7"
23 }],
24 "splitRatio": 20
25 }
26 }
27 });
28
29 console.log(res);
30}
31main();
返回示例
1{
2 "requestId":"1bef3f87-c5b2-4419-936b-50f9884f10d4",
3 "result":{
4 "jobId":"job-n50985crhqq3",
5 "taskId":"task-nycp7bycjjn7"
6 }
7}
1{
2 "requestId":"1bef3f87-c5b2-4419-936b-50f9884f10d4",
3 "result":{
4 "jobId":"job-n50985crhqq3",
5 "taskId":"task-nycp7bycjjn7"
6 }
7}
1{
2 "requestId":"1bef3f87-c5b2-4419-936b-50f9884f10d4",
3 "result":{
4 "jobId":"job-n50985crhqq3",
5 "taskId":"task-nycp7bycjjn7"
6 }
7}
1{
2 requestId:'1bef3f87-c5b2-4419-936b-50f9884f10d4',
3 result:{
4 jobId:'job-n50985crhqq3',
5 taskId:'task-nycp7bycjjn7'
6 }
7}
请求参数
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
jobId | string | 是 | 作业ID,可以通过以下方式获取该参数值,以SFT为例说明: 在控制台-模型精调页面,查看ID,如下图所示: ![]() |
incrementTaskId | string | 否 | 基础任务ID,说明: (1)如果是增量训练,该字段必传 (2)传了该字段,默认走增量训练 (3)基础任务的模型类型要和作业一致 (4)自定义模型作业不支持增量训练 |
incrementCheckpointStep | int | 否 | 基础任务Step,说明:如果基础任务是多checkpoint任务,该字段必传 |
parameterScale | string | 否 | 调优的参数规模,该字段取值详情参考模型支持情况 |
hyperParameterConfig | object | 是 | 超参数配置,说明:该字段请查看本文hyperParameterConfig说明,也可以参考模型支持情况 |
datasetConfig | object | 是 | 数据集配置 |
corpusConfig | object | 否 | 混合语料配置 |
modelConfig | object | 否 | 模型配置,说明:只支持自定义模型作业,此时该参数必传 |
resourceConfig | object | 否 | 资源池配置 |
rewardRule | object | 否 | 奖励规则 |
rlMethod | string | 否 | 只有当创建RFT任务,此参数有效;可选值: · PPO · GRPO |
rlhfConfig | object | 否 | 强化学习类型任务配置,说明:当创建强化学习类型任务时,此参数必填 |
rlhfConfig说明
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
rewardModelConfig | object | 是 | 奖励模型的配置 |
rewardModelConfig说明
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
taskId | string | 是 | 任务ID |
corpusConfig说明
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
generalCorpusProportion | double | 否 | 通用语料混入比例 ,说明: (1)取值范围 :大于0。默认为0,不混入此语料 (2)仅支持ERNIE系列模型使用此参数 |
verticalCorpusProportion | double | 否 | 垂直语料混入比例 ,说明: (1)取值范围:大于0。默认为0,不混入此语料 (2)仅支持ERNIE系列模型使用此参数 |
defaultCorpusProportion | double | 否 | 默认语料混入比例,说明: (1)取值范围:[0-100]。默认为0,不混入此语料 (2)仅支持开源系列模型使用此参数 |
copyData | bool | 否 | 是否数据拷贝,说明: (1)如果在配置的混合比例下,需要混合的数据量超出了平台混合数据的总量。 (2)此参数作用于通用语料和垂直语料。 (3)可选值如下: · false:不重复,选择数据训练,默认为false · true:重复选择数据 |
labels | List<string> | 否 | 混入语料任务类型,说明: (1)仅支持垂直混合语料使用此参数 (2)SFT和Post-pretrain支持的任务类型不同。 (3)SFT支持以下任务类型: · 知识问答 · 文本创作 · 表格问答 · 信息抽取 · 指令理解 · 标题生成 · 问题生成 · 示例学习 · 文本属性分析 · 摘要 · 语言推理 · 阅读理解 · 文本分类 · Json转文本 · 代码生成 · 代码纠错 · 代码解释 · 理科试题 · 多轮对话 · 角色扮演(多轮) · 角色扮演(括号文学) · 风格定制(多轮) · 翻译 · 专业考试 · Agent · NL2SQL · 记忆增强 (4)Post-pretrain支持以下任务类型: · 金融 · 医疗 · 广告传媒 · 电商 · 旅游 · 教育 · 交通物流 · 地产家装 · 法律 · 党政 · 游戏 · 科技 · 化工 · 能源 · 机械 |
languages | List<string> | 否 | 混合通用/垂直语料的语言类型,说明: (1)仅支持Post-pretrain使用此参数 (2) 可选值如下: · en:英文 · cn:中文 · code:代码,仅支持通用语料 |
resourceConfig说明
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
idleResource | bool | 否 | 是否开启潮汐调度任务,说明: 目前只有SFT的任务,支持潮汐任务调度 |
datasetConfig说明
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
sourceType | string | 是 | 数据来源,可选值: · Platform · Bos |
versions | List<object> | 是 | 数据集版本列表,说明:可以通过以下方法获取该数据版本值: 在控制台-数据集管理页面,查看某数据集版本,如下图所以: ![]() |
splitRatio | double | 是 | 数据拆分比例,取值范围:[0,20] |
validationDatasetSourceType | string | 否 | 验证集数据来源,可选值如下: · Platform |
validationDatasetVersions | List<object> | 否 | 验证集数据版本列表 |
versions说明
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
versionId | string | 否 | 数据集版本ID,说明: (1) 当sourceType为Platform时,该字段必传 (2) 数据集必须是已发布的数据集 (3)可以通过以下方法获取该字段值,在控制台-数据集管理页面,查看某数据集版本ID,如下图所示: ![]() |
samplingRate | float | 否 | 数据集采样率,说明: (1)sourceType为Platform时,该字段有效 (2)取值范围:[0.01-10],默认值1 |
versionBosUri | string | 否 | 数据集版本bos地址,说明: (1)当sourceType为Bos时,该字段必传 |
validationDatasetVersions说明
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
versionId | string | 否 | 数据集版本ID,说明: (1) 当sourceType为Platform时,该字段必传 (2) 数据集必须是已发布的数据集 (3)可以通过以下方法获取该字段值,在控制台-数据集管理页面,查看某数据集版本ID,如下图所示: ![]() |
samplingRate | float | 否 | 数据集采样率,说明: (1)sourceType为Platform时,该字段有效 (2)取值范围:[0.01-10],默认值1 |
versionBosUri | string | 否 | 数据集版本bos地址,说明: (1)当sourceType为Bos时,该字段必传 |
modelConfig说明
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
modelId | string | 是 | 模型ID |
modelVersionId | string | 是 | 模型版本ID |
rewardRule说明
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
rewardFunc | string | 是 | 奖励函数,可选值如下: · check:字符串比较 · matching:字符串匹配 · similarity:字符串相似度对比 |
hyperParameterConfig说明
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
epoch | int | 否 | 迭代轮次,说明:该字段取值详情参考模型支持情况 |
learningRate | float | 否 | 学习率,说明:该字段取值详情参考模型支持情况 |
batchSize | int | 否 | 批处理大小,说明:该字段取值更多详情参考模型支持情况 |
maxSeqLen | int | 否 | 序列长度,说明:该字段取值更多详情参考模型支持情况 |
loggingSteps | int | 否 | 保存日志间隔,说明:该字段取值更多详情参考模型支持情况 |
warmupRatio | float | 否 | 预热比例,说明:该字段取值更多详情参考模型支持情况 |
weightDecay | float | 否 | 正则化系数,说明:该字段取值更多详情参考模型支持情况 |
loraRank | int | 否 | LoRA 策略中的秩,说明:该字段取值更多详情参考模型支持情况 |
loraAlpha | int | 否 | 说明:该字段取值更多详情参考模型支持情况 |
loraAllLinear | bool | 否 | LoRA 所有线性层,说明:该字段取值更多详情参考模型支持情况 |
loraTargetModules | string | 否 | 说明:该字段取值更多详情参考模型支持情况 |
loraDropout | float | 否 | 说明:该字段取值更多详情参考模型支持情况 |
schedulerName | string | 否 | 说明:该字段取值更多详情参考模型支持情况 |
Packing | string | 否 | 可选值:true、false 或 auto,默认值auto,说明:该字段取值更多详情参考模型支持情况 |
globalBatchSize | int | 否 | 说明:该字段取值更多详情参考模型支持情况 |
pseudoSamplingProb | float | 否 | 说明:该字段取值更多详情参考模型支持情况 |
checkpointCount | int | 否 | 说明:该字段取值更多详情参考模型支持情况 |
saveStep | int | 否 | 说明:该字段取值更多详情参考模型支持情况 |
dpoBeta | float | 否 | 说明:该字段取值更多详情参考模型支持情况 |
seed | int | 否 | 说明:该字段取值更多详情参考模型支持情况 |
lrSchedulerType | string | 否 | 说明:该字段取值更多详情参考模型支持情况 |
lrEnd | float | 否 | 说明:该字段取值更多详情参考模型支持情况 |
power | int | 否 | 说明:该字段取值更多详情参考模型支持情况 |
validationStep | int | 否 | 说明:该字段取值更多详情参考模型支持情况 |
earlyStopping | bool | 否 | 说明:该字段取值更多详情参考模型支持情况 |
earlyStopMetric | string | 否 | 说明:该字段取值更多详情参考模型支持情况 |
early_stopping_threshold | int | 否 | 说明:该字段取值更多详情参考模型支持情况 |
early_stopping_patience | int | 否 | 说明:该字段取值更多详情参考模型支持情况 |
tensorParallelDegree | int | 否 | 说明: 该字段取值更多详情参考模型支持情况 |
shardingParallelDegree | int | 否 | 说明: 该字段取值更多详情参考模型支持情况 |
sharding | string | 否 | 说明: 该字段取值更多详情参考模型支持情况 |
recompute | int | 否 | 说明: 该字段取值更多详情参考模型支持情况 |
critic_learning_rate | float | 否 | 说明: 该字段取值更多详情参考模型支持情况 |
clip_range_score | int | 否 | 说明: 该字段取值更多详情参考模型支持情况 |
clip_range_value | int | 否 | 说明: 该字段取值更多详情参考模型支持情况 |
clip_range_ratio | float | 否 | 说明: 该字段取值更多详情参考模型支持情况 |
top_p | float | 否 | 说明: 该字段取值更多详情参考模型支持情况 |
repetition_penalty | float | 否 | 说明: 该字段取值更多详情参考模型支持情况 |
temperature | float | 否 | 说明: 该字段取值更多详情参考模型支持情况 |
kl_coeff | float | 否 | 说明: 该字段取值更多详情参考模型支持情况 |
checkpointSaveStrategy | string | 否 | 说明: 该字段取值更多详情参考模型支持情况 |
perDeviceTrainBatchSize | int | 否 | 说明: 该字段取值更多详情参考模型支持情况 |
maxPromptLen | int | 否 | 说明: 该字段取值更多详情参考模型支持情况 |
maxSteps | int | 否 | 说明: 该字段取值更多详情参考模型支持情况 |
freezeViT | bool | 否 | 说明: 该字段取值更多详情参考模型支持情况 |
criticLearningRate | float | 否 | 说明: 该字段取值更多详情参考模型支持情况 |
actorLearningRate | float | 否 | 说明: 该字段取值更多详情参考模型支持情况 |
klCoeff | float | 否 | 说明: 该字段取值更多详情参考模型支持情况 |
rolloutBatchSize | int | 否 | 说明: 该字段取值更多详情参考模型支持情况 |
numSamplesPerPrompt | int | 否 | 说明: 该字段取值更多详情参考模型支持情况 |
maxPromptLen4k | int | 否 | 说明: 该字段取值更多详情参考模型支持情况 |
maxPromptLen8k | int | 否 | 说明: 该字段取值更多详情参考模型支持情况 |
maxPromptLen16k | int | 否 | 说明: 该字段取值更多详情参考模型支持情况 |
maxPromptLen32k | int | 否 | 说明: 该字段取值更多详情参考模型支持情况 |
maxLength4k | int | 否 | 说明: 该字段取值更多详情参考模型支持情况 |
maxLength8k | int | 否 | 说明: 该字段取值更多详情参考模型支持情况 |
maxLength16k | int | 否 | 说明: 该字段取值更多详情参考模型支持情况 |
maxLength32k | int | 否 | 说明: 该字段取值更多详情参考模型支持情况 |
返回参数
名称 | 类型 | 描述 |
---|---|---|
requestId | string | 请求ID |
result | object | 请求结果 |
result说明
名称 | 类型 | 描述 |
---|---|---|
jobId | string | 作业ID |
taskId | string | 任务ID |