创建模型压缩任务
更新时间:2024-11-06
功能介绍
用于创建模型压缩任务。
使用说明
本文API支持通过千帆Python SDK、Go SDK、Java SDK 和 Node.js SDK调用,调用流程请参考SDK安装及使用流程。
SDK调用
调用示例
import os
from qianfan import resources
# 使用安全认证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"
resp = resources.Model.V2.create_model_comp_task(
name="da_comp_test",
source_model_id="amv-3cykxxx379",
config={
"strategy": "Quantization",
"weight": "INT8-PTQ",
},
model_set_id="am-8jg1xxxx",
)
print(resp.body)
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/model",
// 调用本文API,该参数值为固定值,无需修改;对应本文HTTP调用-请求说明-请求参数-Query参数的Action
"CreateModelCompTask",
// 对应本文HTTP调用-请求说明-请求参数-Body参数,具体使用请查看Body参数说明,根据实际使用选择参数
map[string]interface{}{
"name":"demo",
"description": "test",
"sourceModelId": "amv-d1zx1iwdarfr",
"modelSetId": "am-adbuasyfaf",
"config":map[string]any{
"strategy": "Quantization",
"weight": "int8-ptq",
},
})
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/model")
// 调用本文API,该参数值为固定值,无需修改;对应本文HTTP调用-请求说明-请求参数-Query参数的Action
.action("CreateModelCompTask")
// 需要传入参数的场景,可以自行封装请求类,或者使用Map.of()来构建请求Body
// Java 8可以使用SDK提供的CollUtils.mapOf()来替代Map.of()
// 对应本文HTTP调用-请求说明-请求参数-Body参数,具体使用请查看Body参数说明,根据实际使用选择参数
.body(CollUtils.mapOf(
"name","demo",
"description", "test",
"sourceModelId", "amv-d1zx1iwdarfr",
"modelSetId", "am-adbuasyfaf",
"config", CollUtils.mapOf(
"strategy", "Quantization",
"weight", "int8-ptq"
)
))
.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/model', action: 'CreateModelCompTask', data: {
"name":"demo",
"description": "test",
"sourceModelId": "amv-d1zx1iwdarfr",
"modelSetId": "am-adbuasyfaf",
"config": {
"strategy": "Quantization",
"weight": "int8-ptq"
}
}
});
console.log(res);
}
main();
返回示例
{
'requestId': 'f6626bb8-ccec-4991-9b09-a2641cd098d5',
'result': 'amva-5v3zbk9wi8rp'
}
{
'requestId': 'f6626bb8-ccec-4991-9b09-a2641cd098d5',
'result': 'amva-5v3zbk9wi8rp'
}
{
"requestId": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
"result": "amva-abcxxxx15t"
}
{
requestId: '6ba7b810-9dad-11d1-80b4-00c04fd430c8',
result: 'amva-abcxxxx15t'
}
请求参数
注意:不同语言SDK的请求参数不同,请根据实际调用选择对应参数。
- Python SDK请求参数说明
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
name | string | 是 | 模型压缩任务名称 |
description | string | 否 | 模型压缩任务描述 |
source_model_id | string | 是 | 待加速模型版本ID, 模型版本ID需满足以下要求: 根据模型版本ID,调用获取模型版本详情接口,查看返回字段isSupportModelComp值,必须为True,对应的模型版本ID可以为该字段sourceModelId的值;如果为False,对应的模型版本ID不能为该字段sourceModelId的值 |
config | dict | 是 | 模型压缩策略配置信息 |
model_set_id | string | 是 | 压缩后的模型版本所属模型id,可以通过以下任一方式获取该字段值: · 方式一:通过调用获取我的模型列表接口,返回的modelSetId字段获取 · 方式二:通过调用新建我的模型接口,创建不带版本的空模型,返回的result字段获取 |
config说明
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
strategy | string | 是 | 模型压缩策略,可选值如下: · Quantization:量化压缩策略 · Sparsity:稀疏化压缩策略 |
weight | string | 否 | 量化压缩配置,说明: (1)当strategy为Quantization时,该字段必填 (2)可选值: · INT8-PTQ · W8A16C16 · W4A16C16 |
- 其它SDK请求参数说明
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
name | string | 是 | 模型压缩任务名称 |
description | string | 否 | 模型压缩任务描述 |
sourceModelId | string | 是 | 待加速模型版本ID, 模型版本ID需满足以下要求: 根据模型版本ID,调用获取模型版本详情接口,查看返回字段isSupportModelComp值,必须为true,对应的模型版本ID可以为该字段sourceModelId的值;如果为false,对应的模型版本ID不能为该字段sourceModelId的值 |
config | object | 是 | 模型压缩策略配置信息 |
modelSetId | string | 是 | 压缩后的模型版本所属模型id,可以通过以下任一方式获取该字段值: · 方式一:通过调用获取我的模型列表接口,返回的modelSetId字段获取 · 方式二:通过调用新建我的模型接口,创建不带版本的空模型,返回的result字段获取 |
config说明
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
strategy | string | 是 | 模型压缩策略,可选值如下: · Quantization:量化压缩策略 · Sparsity:稀疏化压缩策略 |
weight | string | 否 | 量化压缩配置,说明: (1)当strategy为Quantization时,该字段必填 (2)可选值: · INT8-PTQ · W8A16C16 · W4A16C16 |
返回参数
名称 | 类型 | 描述 |
---|---|---|
requestId | string | 请求ID |
result | string | 模型压缩任务id |