此文档是专属服务API文档。如果需要快速部署一个专属服务,请参考快速开始。
前言
专属服务为AI开发者提供深度学习模型的独立部署,开发者通过专属服务可以:
使用独立的计算资源:公共服务会对每个用户进行调用量的限制,而专属服务可以按需部署计算资源,系统自动根据使用的算力单元数量进行保护性限流(QPS或TPM的限制);
部署预置模型或定制模型:通过领域相关数据进行微调训练之后得到的定制模型或者DashScope提供的预置模型都可以通过专属服务进行部署。
1. 列举模型
获取可以部署的模型列表。
地址
GET https://dashscope.aliyuncs.com/api/v1/deployments/models
输入参数
参数 | 类型 | 传参方式 | 必选 | 说明 |
page_no | int | query | 否 | 页码,默认值为1。 |
page_size | int | query | 否 | 页大小,默认为50,最大值为200,最小值为1。 |
输出参数
参数 | 类型 | 说明 |
models[].model_name | string | 模型名称。也可以查看模型列表文档获取当前支持部署的预置模型。 |
models[].base_capacity | string | 该模型的基础算力单元。 |
page_no | int | 查询页码 |
page_size | int | 查询页大小 |
total | long | 满足查询条件的所有模型个数 |
示例
通过下面的命令可以获得可被部署的模型列表:
curl 'https://dashscope.aliyuncs.com/api/v1/deployments/models' \
--header 'Authorization: Bearer <YOUR-DASHSCOPE-API-KEY>' \
--header 'Content-Type: application/json'
命令执行完成后,获得以下结果:
{
"request_id":"f7da015c-ea90-4d96-af89-2f8d7604026a",
"output":{
"models":[
{
"model_name":"qwen-turbo"
},
{
"model_name":"qwen-turbo-ft-20230703-cx7f",
"base_capacity":2
}
],
"page_no":1,
"page_size":50,
"total":2
}
}
2. 创建服务
使用指定的模型,创建一个专属服务。
地址
POST https://dashscope.aliyuncs.com/api/v1/deployments
输入参数
参数 | 类型 | 传参方式 | 必选 | 说明 |
model_name | string | body | 是 | 待创建服务使用的模型名。 |
capacity | int | body | 是 | 待创建服务使用的算力单元数量,需要设置为对应模型的基础算力单元的整数倍。 |
suffix | string | body | 否 | 指定部署ID的后缀。每个模型部署的第一个专属服务可以不指定suffix,若需要部署使用了同一个模型的多个专属服务,需要设置suffix进行区分。 参考输出参数output.deployed_model。 |
输出参数
参数 | 类型 | 说明 |
deployed_model | string | 本次请求缩创建的专属服务的唯一标识。在发起模型调用请求时需要在SDK参数传入。 |
model_name | string | 专属服务使用的模型名称。 |
capacity | int | 专属服务使用的算力单元数量。 |
status | string | 专属服务的当前状态,参考服务状态。 |
示例
通过下面的命令可以创建一个专属服务:
curl 'https://dashscope.aliyuncs.com/api/v1/deployments' \
--header 'Authorization: Bearer <YOUR-DASHSCOPE-API-KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model_name": "qwen-v1-ft-20230703-cx7f",
"capacity": 1,
"suffix": "sample"
}'
命令执行完成后,返回如下结果:
{
"request_id":"63f88d11-7d49-478a-928d-035ff966965c",
"output":{
"deployed_model":"qwen-v1-ft-20230703-cx7f-sample",
"model_name":"qwen-v1-ft-20230703-cx7f",
"status":"PENDING",
"capacity":2
}
}
3. 查询服务
地址
GET https://dashscope.aliyuncs.com/api/v1/deployments/{deployed_model}
输入参数
参数 | 类型 | 传参方式 | 必选 | 说明 |
deployed_model | string | path | 是 | 专属服务的唯一标识。 |
输出参数
参数 | 类型 | 说明 |
deployed_model | string | 专属服务的唯一标识。 |
model_name | string | 专属服务使用的模型名称。 |
capacity | int | 专属服务使用的算力单元数量。 |
status | string | 专属服务的当前状态,参考服务状态。 |
示例
通过以下命令可以查询指定专属服务的详细信息:
curl 'https://dashscope.aliyuncs.com/api/v1/deployments/qwen-v1-ft-202305099980-fac9-sample' \
--header 'Authorization: Bearer <YOUR-DASHSCOPE-API-KEY>' \
--header 'Content-Type: application/json'
命令执行完成后,返回如下结果:
{
"request_id":"63f88d11-7d49-478a-928d-035ff966965c",
"output":{
"deployed_model":"qwen-v1-ft-20230703-cx7f-sample",
"model_name":"qwen-v1-ft-20230703-cx7f",
"status":"PENDING",
"capacity":2
}
}
4. 列举服务
地址
GET https://dashscope.aliyuncs.com/api/v1/deployments
输入参数
参数 | 类型 | 传参方式 | 必选 | 说明 |
page_no | int | query | 否 | 页码,默认值为1。 |
page_size | int | query | 否 | 页大小,默认为50,最大值为200,最小值为1。 |
输出参数
参数 | 类型 | 说明 |
deployments[].deployed_model | string | 专属服务的唯一标识 |
deployments[].model_name | string | 专属服务使用的模型名称。 |
deployments[].capacity | int | 专属服务使用的算力单元数量。 |
deployments[].status | string | 专属服务的当前状态,参考服务状态。 |
page_no | int | 查询页码 |
page_size | int | 查询页大小 |
total | long | 满足查询条件的专属服务个数 |
示例
通过以下命令可以获取专属服务列表:
curl 'https://dashscope.aliyuncs.com/api/v1/deployments' \
--header 'Authorization: Bearer <YOUR-DASHSCOPE-API-KEY>' \
--header 'Content-Type: application/json'
命令执行完成后,返回以下结果:
{
"request_id":"63f88d11-7d49-478a-928d-035ff966965c",
"output": {
"deployments": [
{
"deployed_model": "qwen-v1-ft-20230703-cx7f",
"model_name": "qwen-v1-ft-20230703-cx7f",
"status": "PENDING"
},
{
"deployed_model": "qwen-v1-ft-20230703-cx7f-sample",
"model_name": "qwen-v1-ft-20230703-cx7f",
"status": "PENDING"
}
],
"page_no": 1,
"page_size": 10,
"total": 2
}
}
5. 更新部署
通过更新操作调整专属服务使用的算力单元数量。
地址
PUT https://dashscope.aliyuncs.com/api/v1/deployments/{deployed_model}/scale
输入参数
参数 | 类型 | 传参方式 | 必选 | 说明 |
deployed_model | string | path | 是 | 专属服务的唯一标识。 |
capacity | int | body | 是 | 更新之后,专属服务所使用的算力单元。 |
输出参数
参数 | 类型 | 说明 |
deployed_model | string | 专属服务的唯一标识。 |
model_name | string | 专属服务使用的模型名称。 |
capacity | int | 专属服务使用的算力单元数量。 |
status | string | 专属服务的当前状态,参考服务状态。 |
示例
通过以下命令可以将制定的专属服务扩容到4个算力单元:
curl --request PUT 'https://dashscope.aliyuncs.com/api/v1/deployments/qwen-v1-ft-20230703-cx7f/scale' \
--header 'Authorization: Bearer <YOUR-DASHSCOPE-API-KEY>' \
--header 'Content-Type: application/json' \
--data '{
"capacity":4
}'
命令执行完成后,返回以下结果:
{
"request_id":"63f88d11-7d49-478a-928d-035ff966965c",
"output": {
"deployed_model": "qwen-v1-ft-20230703-cx7f",
"model_name": "qwen-v1-ft-20230703-cx7f",
"status": "UPDATING"
}
}
6. 删除部署
地址
DELETE https://dashscope.aliyuncs.com/api/v1/deployments/{deployed_model}
请求参数
参数 | 类型 | 传参方式 | 必选 | 说明 |
deployed_model | string | path | 是 | 专属服务的唯一标识。 |
输出参数
参数 | 类型 | 说明 |
deployed_model | string | 专属服务的唯一标识。 |
model_name | string | 专属服务使用的模型名称。 |
capacity | int | 专属服务使用的算力单元数量。 |
status | string | 专属服务的当前状态,参考服务状态。 |
示例
通过以下命令可以删除指定的专属服务:
curl --request DELETE 'https://dashscope.aliyuncs.com/api/v1/deployments/qwen-v1-ft-20230703-cx7f' \
--header 'Authorization: Bearer <YOUR-DASHSCOPE-API-KEY>' \
--header 'Content-Type: application/json'
命令执行完成后,返回以下结果:
{
"request_id": "24a888ea-c1fa-4ff1-b632-ee9a6231c24f",
"output": {
"deployed_model": "qwen-v1-ft-20230703-cx7f"
}
}
算力单元
算力单元是专属服务使用计算资源的基本单位,模型专属服务按照算力单元的数量和使用时长进行计量计费。您可以根据实际需要的处理能力部署合适的算力单元。
模型专属服务使用的算力单元必须是模型基础算力单元的整数倍,例如qwen-turbo
模型的基础算力单元为2
,使用了qwen-turbo
模型的专属服务的算力单元必须是2
的倍数。
模型列表
以下为专属服务支持的预置模型列表:
模型名称 | 基础算力单元 | 参考处理能力 |
qwen-plus | 8 | 70 QPM |
qwen-turbo | 2 | 25 QPM |
llama2-7b-chat-v2 | 1 | 4 QPM |
llama2-13b-chat-v2 | 2 | 6 QPM |
chatglm-6b-v2 | 1 | 6 QPM |
文档更新可能存在延迟,实际支持的模型列表以API返回为准;
基础算力单元和参考处理能力在同一个模型的不同版本会有差异,表格中提供的数据基于最新版本测试获得;
参考处理能力的单位是每分钟处理请求数(QPM),是在常规数据集上测试获得,实际处理能力会因输入数据不同而有差异。
服务状态
专属服务可能处于以下状态:
状态名 | 说明 |
PENDING | 服务正在创建中。 |
UPDATING | 服务正在更新中。 |
RUNNING | 服务正在运行,此时服务可以正常处理请求。 |
STOPPED | 服务已经停止,此时的服务不会被计费。 |
DELETING | 服务正在被删除。 |
FAILED | 服务创建或更新失败。 |
错误处理
当请求出错时,可能返回以下错误:
错误码 | 错误原因 |
NotFound |
|
Conflict |
|
InvalidParameter |
|
以下是一个错误消息示例:
{
"request_id": "ca218d57-b91b-46b2-bd35-c41c6287bcf4",
"message": "Model: qwen-v1-ft-20230703-cx7f not found!",
"code": "NotFound"
}