创建模型精调作业
更新时间:2024-11-14
功能介绍
用于创建模型精调作业。
例如,新增作业名称为test_crea,基础模型版本为ERNIE-Speed-8K,调优的训练模式类型为SFT,作业描述为eb_speed_tasks,调用本接口成功后,在控制台-模型调优-模型精调-SFT页面,作业列表新增一条作业,如下图所示。
使用说明
本文API支持通过Python SDK、Go SDK、Java SDK 和 Node.js SDK调用,调用流程请参考SDK安装及使用流程。
SDK调用
调用示例
import os
import qianfan
# 使用安全认证AK/SK鉴权,通过环境变量方式初始化;替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
os.environ["QIANFAN_ACCESS_KEY"] = "your_iam_ak"
os.environ["QIANFAN_SECRET_KEY"] = "your_iam_sk"
from qianfan import resources
create_job_resp = resources.FineTune.V2.create_job(
name="test_crea",
model="ERNIE-Speed-8K",
train_mode='SFT',
description='eb_speed_tasks',
)
print(create_job_resp)
package main
import (
"context"
"fmt"
"os"
"github.com/baidubce/bce-qianfan-sdk/go/qianfan"
)
func main() {
// 使用安全认证AK/SK鉴权,通过环境变量初始化;替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
os.Setenv("QIANFAN_ACCESS_KEY", "your_iam_ak")
os.Setenv("QIANFAN_SECRET_KEY", "your_iam_sk")
ca := qianfan.NewConsoleAction()
res, err := ca.Call(context.TODO(),
// 调用本文API,该参数值为固定值,无需修改;对应本文HTTP调用-请求说明-请求地址的后缀
"/v2/finetuning",
// 调用本文API,该参数值为固定值,无需修改;对应本文HTTP调用-请求说明-请求参数-Query参数的Action
"CreateFineTuningJob",
// 对应本文HTTP调用-请求说明-请求参数-Body参数,具体使用请查看Body参数说明,根据实际使用选择参数
map[string]interface{}{
"name":"test_name",
"description":"test_description",
"model":"ERNIE-Speed-8K",
"trainMode":"SFT" ,
})
if err != nil {
panic(err)
}
fmt.Println(string(res.Body))
}
import com.baidubce.qianfan.Qianfan;
import com.baidubce.qianfan.model.console.ConsoleResponse;
import com.baidubce.qianfan.util.CollUtils;
import com.baidubce.qianfan.util.Json;
import java.util.Map;
public class Dome {
public static void main(String args[]){
// 使用安全认证AK/SK鉴权,替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
Qianfan qianfan = new Qianfan("your_iam_ak", "your_iam_sk");
ConsoleResponse<Map<String, Object>> response = qianfan.console()
// 调用本文API,该参数值为固定值,无需修改;对应本文HTTP调用-请求说明-请求地址的后缀
.route("/v2/finetuning")
// 调用本文API,该参数值为固定值,无需修改;对应本文HTTP调用-请求说明-请求参数-Query参数的Action
.action("CreateFineTuningJob")
// 需要传入参数的场景,可以自行封装请求类,或者使用Map.of()来构建请求Body
// Java 8可以使用SDK提供的CollUtils.mapOf()来替代Map.of()
// 对应本文HTTP调用-请求说明-请求参数-Body参数,具体使用请查看Body参数说明,根据实际使用选择参数
.body(CollUtils.mapOf(
"name","test_name",
"description","test_description",
"model","ERNIE-Speed-8K",
"trainMode","SFT"
))
.execute();
System.out.println(Json.serialize(response));
}
}
import {consoleAction, setEnvVariable} from "@baiducloud/qianfan";
// 使用安全认证AK/SK鉴权,通过环境变量初始化;替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
setEnvVariable('QIANFAN_ACCESS_KEY','your_iam_ak');
setEnvVariable('QIANFAN_SECRET_KEY','your_iam_sk');
async function main() {
//base_api_route:调用本文API,该参数值为固定值,无需修改;对应本文HTTP调用-请求说明-请求地址的后缀
//action:调用本文API,该参数值为固定值,无需修改;对应本文HTTP调用-请求说明-请求参数-Query参数的Action
//data:对应本文HTTP调用-请求说明-请求参数-Body参数,具体使用请查看Body参数说明,根据实际使用选择参数
const res = await consoleAction({base_api_route: '/v2/finetuning', action: 'CreateFineTuningJob', data: {
"name":"test_name",
"description":"test_description",
"model":"ERNIE-Speed-8K",
"trainMode":"SFT"
}
});
console.log(res);
}
main();
返回示例
QfResponse(
code=200,
headers={...},
body={
"requestId": "db9f0333-f72c-487e-b682-f1c8b6c8bdd6",
"result": {"jobId": "job-6ucxxxxx8q0"},
},
)
{
"requestId":"1bef3f87-c5b2-4419-936b-50f9884f10d4",
"result":{
"jobId":"job-ftp4icwebtnc"
}
}
{
"requestId":"1bef3f87-c5b2-4419-936b-50f9884f10d4",
"result":{
"jobId":"job-ftp4icwebtnc"
}
}
{
requestId:'1bef3f87-c5b2-4419-936b-50f5dfgf10d4',
result:{
jobId:'job-ftpxxxxtnc'
}
}
请求参数
注意:不同语言SDK的请求参数不同,请根据实际调用选择对应参数。
- Python SDK请求参数说明
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
name | string | 是 | 作业名称,取值范围:字符串长度为 [2, 20] |
description | string | 否 | 作业描述,说明: (1)取值范围:字符串长度为 [0, 500] (2)不支持空格 |
model | string | 是 | 基础模型版本,支持对话续写类、图像生成类模型版本,具体值请查看模型支持情况-model值 |
train_mode | string | 是 | 调优的训练模式类型,说明:该字段取值,请参考模型支持情况 |
params_scale | string | 否 | 调优的参数规模,说明:该字段取值,请参考模型支持情况 |
hyper_params | Dict[str, Any] | 否 | 超参数配置,说明:该字段请查看本文hyper_params说明,也可以参考模型支持情况 |
hyper_params说明
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
epoch | int | 否 | 迭代轮次,说明:该字段取值详情参考模型支持情况 |
learningRate | float | 否 | 学习率,说明:该字段取值详情参考模型支持情况 |
batchSize | int | 否 | 批处理大小,说明:该字段取值更多详情参考模型支持情况 |
maxSeqLen | int | 否 | 序列长度,说明:该字段取值更多详情参考模型支持情况 |
loggingSteps | int | 否 | 保存日志间隔,说明:该字段取值更多详情参考模型支持情况 |
warmupRatio | float | 否 | 预热比例,说明:该字段取值更多详情参考模型支持情况 |
weightDecay | float | 否 | 正则化系数,说明:该字段取值更多详情参考模型支持情况 |
loraRank | int | 否 | LoRA 策略中的秩,说明:该字段取值更多详情参考模型支持情况 |
loraAlpha | int | 否 | 说明:该字段取值更多详情参考模型支持情况 |
loraAllLinear | true | 否 | 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 | 否 | 说明:该字段取值更多详情参考模型支持情况 |
earlyStoppingThreshold | int | 否 | 说明:该字段取值更多详情参考模型支持情况 |
earlyStoppingPatience | int | 否 | 说明:该字段取值更多详情参考模型支持情况 |
tensorParallelDegree | int | 否 | 说明: 该字段取值更多详情参考模型支持情况 |
shardingParallelDegree | int | 否 | 说明: 该字段取值更多详情参考模型支持情况 |
sharding | string | 否 | 说明: 该字段取值更多详情参考模型支持情况 |
recompute | int | 否 | 说明: 该字段取值更多详情参考模型支持情况 |
- 其它SDK请求参数说明
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
name | string | 是 | 作业名称,取值范围:字符串长度为 [2, 20] |
description | string | 否 | 作业描述,取值范围:字符串长度为 [0, 500] |
model | string | 是 | 基础模型版本,支持对话续写类、图像类模型版本,具体值请查看模型支持情况-model值 |
trainMode | string | 是 | 调优的训练模式类型,说明:该字段取值,请参考模型支持情况 |
parameterScale | string | 否 | 调优的参数规模,说明:该字段取值,请参考模型支持情况 |
hyperParameterConfig | object | 否 | 超参数配置,说明:该字段请查看本文hyperParameterConfig说明,也可以参考模型支持情况 |
hyperParameterConfig说明
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
epoch | int | 否 | 迭代轮次,说明:该字段取值详情参考模型支持情况 |
learningRate | float | 否 | 学习率,说明:该字段取值详情参考模型支持情况 |
batchSize | int | 否 | 批处理大小,说明:该字段取值更多详情参考模型支持情况 |
maxSeqLen | int | 否 | 序列长度,说明:该字段取值更多详情参考模型支持情况 |
loggingSteps | int | 否 | 保存日志间隔,说明:该字段取值更多详情参考模型支持情况 |
warmupRatio | float | 否 | 预热比例,说明:该字段取值更多详情参考模型支持情况 |
weightDecay | float | 否 | 正则化系数,说明:该字段取值更多详情参考模型支持情况 |
loraRank | int | 否 | LoRA 策略中的秩,说明:该字段取值更多详情参考模型支持情况 |
loraAlpha | int | 否 | 说明:该字段取值更多详情参考模型支持情况 |
loraAllLinear | true | 否 | 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 | 否 | 说明:该字段取值更多详情参考模型支持情况 |
earlyStoppingThreshold | int | 否 | 说明:该字段取值更多详情参考模型支持情况 |
earlyStoppingPatience | 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 | 否 | 说明: 该字段取值更多详情参考模型支持情况 |
返回参数
名称 | 类型 | 描述 |
---|---|---|
requestId | string | 请求ID |
result | object | 请求结果 |
result说明
名称 | 类型 | 描述 |
---|---|---|
jobId | string | 作业ID |