创建任务运行
更新时间:2024-11-08
注意:为提升开发者使用体验,平台升级了模型调优接口。推荐使用新版模型精调接口,功能更全面、且接口更规范,详见模型调优API列表;V1版本相关接口不再升级,已于2024年9月8日将本文档迁移至历史文档;由于V1版本接口后续可能下线停止服务,为避免影响使用,建议接入新版本接口。
功能介绍
本接口用于创建训练任务运行。
HTTP调用
鉴权说明
调用本文API,使用“基于安全认证AK/SK”进行签名计算鉴权,即使用安全认证中的Access Key ID 和 Secret Access Key进行鉴权,具体鉴权认证机制参考HTTP调用鉴权说明。
请求说明
- 基本信息
请求地址: https://qianfan.baidubce.com/wenxinworkshop/finetune/createJob
请求方式: POST
- Header参数
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
Content-Type | string | 是 | 固定值:application/json |
x-bce-date | string | 否 | 当前时间,遵循ISO8601规范,格式如2016-04-06T08:23:49Z |
Authorization | string | 是 | 用于验证请求合法性的认证信息,更多内容请参考鉴权认证机制,签名工具可参考IAM签名工具 |
- Body参数
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
taskId | int | 是 | 任务ID |
description | string | 否 | 运行描述 |
jobRunType | int | 是 | 任务运行类型,可选值如下: · 0:普通训练 · 1:增量训练 |
increConfig | object | 否 | 增量训练基础任务信息,说明: (1)当jobRunType为1,此字段必填 (2)目前支持的基础任务算法: · ERNIE-Bot-turbo-0704 · ERNIE-Bot-turbo-0725 · ERNIE-Bot-turbo-0922 · Llama-2-7b · Llama-2-13b · SQLCoder-7B · ChatGLM2-6B · Baichuan2-13B · BLOOMZ-7B (3)基础任务需满足以下要求:peftType为ALL |
baseTrainType | string | 否 | 基础算法类型,说明: (1)当jobRunType为0,此字段必填 (2)可选值如下: · ERNIE-Speed · ERNIE-Bot-turbo · Llama-2 · SQLCoder · ChatGLM2 · Baichuan2 · BLOOMZ · CodeLlama |
trainType | string | 否 | 具体算法类型版本,说明: (1)当jobRunType为0,此字段必填 (2)当baseTrainType为ERNIE-Bot-turbo,trainType可选值如下: · ERNIE-Bot-turbo-0704 · ERNIE-Bot-turbo-0725 · ERNIE-Bot-turbo-0922 (3)当baseTrainType为Llama-2,trainType可选值如下: · Llama-2-7b · Llama-2-13b (4)当baseTrainType为SQLCoder,trainType为固定值SQLCoder-7B (5)当baseTrainType为ChatGLM2,trainType值为固定值ChatGLM2-6B (6)当baseTrainType为Baichuan2,trainType为固定值Baichuan2-13B (7)当baseTrainType为BLOOMZ,trainType为固定值BLOOMZ-7B (8)当baseTrainType为ERNIE-Speed,trainType为固定值ERNIE-Speed (9)当baseTrainType为CodeLlama,trainType为固定值CodeLlama-7B |
trainMode | string | 否 | 训练方法,说明: (1)当jobRunType为0,此字段必填 (2)固定值:SFT |
peftType | string | 否 | parameter efficient finetuning方式,说明: (1)当jobRunType为0时,此字段必填 (2)当trainType为ERNIE-Speed、ERNIE-Bot-turbo-0725、ERNIE-Bot-turbo-0922、SQLCoder-7B、ChatGLM2-6B、Baichuan2-13B或CodeLlama-7B,peftType可选值如下: · ALL · LoRA (4)其他,peftType可选值如下: · ALL · P-tuning · LoRA |
trainConfig | object | 是 | 训练配置 |
trainset | array | 是 | 数据集配置 |
trainsetRate | float | 是 | 数据拆分比例,取值范围:[0,50] |
increConfig说明
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
taskId | int | 是 | 基础任务ID |
jobId | int | 是 | 基础任务运行ID |
trainConfig说明
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
epoch | int | 是 | 迭代轮次,取值范围:[1, 50] |
batchSize | int | 否 | 批处理大小,说明: (1)当trainType为ERNIE-Bot-turbo-0704、ERNIE-Bot-turbo-0725、ERNIE-Bot-turbo-0922或Baichuan2-13B,该字段不需要填写 (2)其他,batchSize取值范围:[1, 4] |
learningRate | float | 是 | 学习率,说明: (1)当trainType为ERNIE-Bot-turbo-0704, · peftType为ALL,learningRate取值范围[0.00001,0.00004] · peftType为P-tuning,learningRate取值范围[0.003,0.1] · peftType为LoRA,learningRate取值范围[0.00003,0.001] (2)当trainType为ERNIE-Speed、ERNIE-Bot-turbo-0725或ERNIE-Bot-turbo-0922, · peftType为ALL,learningRate取值范围[0.00001,0.00004] · peftType为LoRA,learningRate取值范围[0.00003,0.001] (3)当trainType为Baichuan2-13B或CodeLlama-7B,learningRate取值范围[0.0000000001,0.0002] (4)其他,learningRate取值范围[0.0000002,0.0002] |
maxSeqLen | int | 否 | 序列长度,说明: (1)如果trainType为ERNIE-Speed、ERNIE-Bot-turbo-0725或ERNIE-Bot-turbo-0922时,该字段必填 (2)可选值如下: · 4096 · 8192 |
loggingSteps | int | 否 | 保存日志间隔,说明: (1)当trainType为ERNIE-Speed或ERNIE-Bot-turbo-0922,该字段必填 (2)取值范围[1, 100] |
warmupRatio | float | 否 | 预热比例,说明: (1)当trainType为ERNIE-Speed或ERNIE-Bot-turbo-0922,该字段必填 (2)取值范围[0.01, 0.5] |
weightDecay | float | 否 | 正则化系数,说明: (1)当trainType为ERNIE-Speed或ERNIE-Bot-turbo-0922,该字段必填 (2)取值范围[0.0001, 0.1] |
loraRank | int | 否 | LoRA 策略中的秩,说明: (1)当trainType为ERNIE-Speed或ERNIE-Bot-turbo-0922,且peftType为LoRA时,该字段必填 (2)可选值如下: · 2 · 4 · 8 |
loraAllLinear | string | 否 | LoRA 所有线性层,说明: (1)当trainType为ERNIE-Speed或ERNIE-Bot-turbo-0922,且peftType为LoRA时,该字段必填 (2)可选值如下: · True · False |
trainset说明
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
type | int | 是 | 数据集类型,可选值如下: 1:表示平台数据集 2:表示bos数据集 |
id | int | 否 | 数据集版本ID,当type为1时,该字段必传 |
bosPath | string | 否 | 数据集版本bos路径,当type为2时,该字段必传 |
响应说明
名称 | 类型 | 描述 |
---|---|---|
log_id | string | 请求ID |
result | object | 请求结果 |
result说明
名称 | 类型 | 描述 |
---|---|---|
id | int | 运行ID |
请求示例(普通训练)
# 替换下列示例中的Authorization值、x-bce-date值
curl --location 'https://qianfan.baidubce.com/wenxinworkshop/finetune/createJob' \
--header 'Authorization: bce-auth-v1/f0ee7a166b934f75b8703a8079702c13/2023-09-19T13:42:13Z/180000/host;x-bce-date/9a8cfb8ee58a8f44a21a52640015de61bc55ca2e6d8cc23d080016e374525543' \
--header 'x-bce-date: 2023-09-19T13:37:10Z' \
--header 'Content-Type: application/json' \
--data '{
"taskId": 362,
"description": "",
"jobRunType": 0,
"baseTraintype": "ERNIE-Bot-turbo",
"trainType": "ERNIE-Bot-turbo-0725",
"trainMode": "SFT",
"pefttype": "ALL",
"trainConfig": {
"epoch": 1,
"learningRate": 0.00003,
"maxSeqLen": 4096
},
"trainset": [
{
"type": 1,
"id": 188
}
],
"trainsetRate": 20
}'
请求示例(增量训练)
curl --location 'https://qianfan.baidubce.com/wenxinworkshop/finetune/createJob' \
--header 'Authorization: bce-auth-v1/f0ee7axxxx3/2023-09-19T13:42:13Z/180000/host;x-bce-date/9a8cfb8exxxxx525543' \
--header 'x-bce-date: 2023-09-19T13:37:10Z' \
--header 'Content-Type: application/json' \
--data '{
"taskId": 362,
"description": "",
"jobRunType": 1,
"increConfig": {
"taskId":362,
"jobId":1264
},
"trainConfig": {
"epoch": 1,
"learningRate": 0.00003,
"maxSeqLen": 4096
},
"trainset": [
{
"type": 1,
"id": 188
}
],
"trainsetRate": 20
}'
响应示例
{
"log_id":"123",
"result":{
"id":123
}
}
SDK调用
平台支持通过Python SDK、Go SDK、Java SDK 和 Node.js SDK调用本文API,SDK调用说明文档请参考创建任务运行。
错误码
若请求错误,服务器将返回的JSON文本包含以下参数:
名称 | 描述 |
---|---|
error_code | 错误码 |
error_msg | 错误描述信息,帮助理解和解决发生的错误 |
例如参数错误返回:
{
"error_code": 500001,
"error_msg": "param invalid"
}
更多其他错误码,也可以查看错误码说明。