模型微调与部署

更新时间:
复制 MD 格式

阿里云百炼 CLI 模型微调、部署与吞吐预留容量管理的命令速查。

在终端管理模型微调与部署全生命周期:创建微调任务、管理 Checkpoint、部署专属模型与吞吐预留容量。

重要任意命令追加 --help 可查看完整参数说明,例如 bl finetune list --help。本文命令明细以 bl 2.2.1 为基准核实。

模型微调

bl finetune text create

创建文本模型微调任务(sft | sft-lora | dpo | dpo-lora | cpt)。需要 API Key 鉴权。

语法

bl finetune text create
参数类型必填说明
--base-model <model>string是要微调的基础模型(例如 qwen3-8b;不是输出模型名称)
--datasets <ids|paths>string是数据集文件 ID 或本地路径,以逗号分隔(文本使用 .jsonl,音频、图片和视频使用 .zip)。本地路径会先验证并上传,再使用对应的 file-id。
--validations <ids|paths>string否验证数据集文件 ID 或本地路径,以逗号分隔(与 --datasets 一样自动上传)。
--model-name <name>string否训练完成后的输出模型名称
--suffix <text>string否平台追加的输出后缀(finetuned_output_suffix)
--job-name <value>string否训练任务显示名称(job_name)
--priority <value>string否请求的调度优先级;请核对服务端回执
--eval-steps <value>number否训练验证间隔步数
--lora-alpha <value>number否LoRA 缩放系数
--lora-dropout <value>number否LoRA 丢弃率
--lora-rank <value>number否LoRA 矩阵秩
--lr-scheduler-type <value>string否所选模型支持的学习率调度策略
--save-strategy <value>string否Checkpoint 保存策略
--save-total-limit <value>number否最多保存的 Checkpoint 数量
--save-steps <value>number否按 steps 保存时的间隔
--split <value>number否未指定验证集时训练集所占比例
--max-split-val-dataset-sample <value>number否自动切分验证集的样本数量上限
--data-augmentation <value>string否是否混入平台训练数据(true 或 false)
--training-type <t>string否训练类型:sft | sft-lora | dpo | dpo-lora | cpt(默认:sft-lora)。在接口边界转换为服务端值(例如 sft-lora -> efficient_sft、dpo -> dpo_full)。
--n-epochs <n>number否训练轮数(默认:3)
--batch-size <n>number否单设备 Batch Size(限制在 [8, 1024])。小数据集(<100KB)自动设为 8
--learning-rate <str>string否以字符串形式指定学习率以保留精度(例如 "1.6e-5")
--max-length <n>number否最大序列长度

示例:创建文本模型微调任务

bl finetune text create --base-model qwen3-8b --datasets file-xxx
  • 训练类型遵循 <method> / <method>-lora 命名约定:sft(全量)| sft-lora(LoRA)| dpo(全量)| dpo-lora(LoRA)| cpt。这些值会在接口边界映射为服务端 training_type,因此 CLI 的其他部分不会接触服务端原始字符串。
  • 提交任务前(非 dry-run),会通过 listFoundationModels 检查模型训练能力(无需登录控制台);如果训练类型不受支持,会立即失败并列出该模型实际支持的训练类型。
  • n_epochs 默认为 3。其他超参数未设置时使用平台默认值。
  • 学习率以字符串形式传递,避免 JSON 数字精度损失。
  • 提交前检查:如果训练数据集的样本数不大于 batch_size,会在上传或消耗额度前拒绝任务(否则平台会在数据处理约 10 分钟后才失败)。

bl finetune audio create

创建音频 TTS 模型微调任务(sft-lora)。需要 API Key 鉴权。

语法

bl finetune audio create
参数类型必填说明
--base-model <model>string是要微调的基础模型(例如 qwen3-8b;不是输出模型名称)
--datasets <ids|paths>string是数据集文件 ID 或本地路径,以逗号分隔(文本使用 .jsonl,音频、图片和视频使用 .zip)。本地路径会先验证并上传,再使用对应的 file-id。
--validations <ids|paths>string否验证数据集文件 ID 或本地路径,以逗号分隔(与 --datasets 一样自动上传)。
--model-name <name>string否训练完成后的输出模型名称
--suffix <text>string否平台追加的输出后缀(finetuned_output_suffix)

示例:创建音频 TTS 模型微调任务

bl finetune audio create --base-model cosyvoice-v3-flash --datasets ./audio.zip
  • 音频 TTS 训练使用 sft-lora(efficient_sft)和固定的 CosyVoice 超参数默认值;没有可设置的训练类型或超参数选项。

bl finetune image create

创建图片生成模型微调任务(sft-lora)。需要 API Key 鉴权。

语法

bl finetune image create
参数类型必填说明
--base-model <model>string是要微调的基础模型(例如 qwen3-8b;不是输出模型名称)
--datasets <ids|paths>string是数据集文件 ID 或本地路径,以逗号分隔(文本使用 .jsonl,音频、图片和视频使用 .zip)。本地路径会先验证并上传,再使用对应的 file-id。
--validations <ids|paths>string否验证数据集文件 ID 或本地路径,以逗号分隔(与 --datasets 一样自动上传)。
--model-name <name>string否训练完成后的输出模型名称
--suffix <text>string否平台追加的输出后缀(finetuned_output_suffix)
--generation-type <t2i|i2i>string否生成类型:t2i(默认)| i2i。用于设置 generation_type/max_pixels。通过 file-id 训练 I2I 或使用 --dry-run 时必填(本地数据会自动识别 input_img)。
--learning-rate <str>string否以字符串形式指定学习率以保留精度(例如 "3e-5")

示例:创建图片生成模型微调任务

bl finetune image create --base-model wan2.7-image-pro --datasets ./images.zip
  • 图片生成训练使用 sft-lora(efficient_sft)和固定默认值;仅 --learning-rate 可覆盖。通过 --generation-type(默认 t2i)声明 T2I 或 I2I,并设置 generation_type/max_pixels。本地数据会自动识别类型(包含 input_img 的记录训练 I2I);通过 file-id 训练 I2I 或使用 --dry-run 时,请显式传入 --generation-type。

bl finetune video create

创建视频生成模型微调任务(Wan i2v/kf2v,efficient_sft)。需要 API Key 鉴权。

语法

bl finetune video create
参数类型必填说明
--base-model <model>string是要微调的基础模型(例如 qwen3-8b;不是输出模型名称)
--datasets <ids|paths>string是数据集文件 ID 或本地路径,以逗号分隔(文本使用 .jsonl,音频、图片和视频使用 .zip)。本地路径会先验证并上传,再使用对应的 file-id。
--validations <ids|paths>string否验证数据集文件 ID 或本地路径,以逗号分隔(与 --datasets 一样自动上传)。
--model-name <name>string否训练完成后的输出模型名称
--suffix <text>string否平台追加的输出后缀(finetuned_output_suffix)
--n-epochs <n>number否训练轮数(默认:50)
--batch-size <n>number否Batch Size(默认值因模型而异:wan2.7 为 1,wan2.5/2.2 为 4)
--learning-rate <str>string否以字符串形式指定学习率以保留精度(默认:"2e-5")

示例:创建视频生成模型微调任务

bl finetune video create --base-model wan2.7-i2v --datasets file-xxx
  • 视频生成训练(Wan i2v/kf2v)使用 efficient_sft 和模型专属默认值:wan2.7(batch_size=1、max_pixels=102400),wan2.5/2.2(batch_size=4,max_pixels 因模型而异)。可通过 --batch-size/--n-epochs 覆盖。
  • 数据集为包含 data.jsonl、帧图片和视频的 .zip 归档。
  • 建议至少准备 10 个训练样本;20–100 个样本可获得更稳定的效果。

bl finetune list

列出微调任务。需要 API Key 鉴权。

语法

bl finetune list [--page <n>] [--page-size <n>] [--status <s>] [--base-model <model>]
参数类型必填说明
--page <n>number否页码(默认:1)
--page-size <n>number否每页结果数(默认:10,最多:100)
--status <s>string否按状态筛选(PENDING / RUNNING / SUCCEEDED / FAILED / CANCELED)
--base-model <model>string否按基础模型 ID 筛选(服务端筛选)

示例:列出运行中的微调任务

bl finetune list --status RUNNING

bl finetune get

获取单个微调任务的详情。需要 API Key 鉴权。

语法

bl finetune get --job-id <id>
参数类型必填说明
--job-id <id>string是微调任务 ID

示例:获取单个微调任务详情

bl finetune get --job-id ft-xxx

bl finetune watch

查询微调任务状态(默认:单次非阻塞获取)。使用 --follow 持续轮询至终态。需要 API Key 鉴权。

语法

bl finetune watch --job-id <id> [--follow] [--interval <sec>] [--poll-timeout <sec>]
参数类型必填说明
--job-id <id>string是微调任务 ID
--followswitch否阻塞并轮询至终态(旧版行为)。不使用时仅查询一次状态并立即返回。
--interval <sec>number否使用 --follow 时的轮询间隔秒数(默认:${DEFAULT_INTERVAL_SEC},最小:${MIN_INTERVAL_SEC})。未使用 --follow 时忽略。
--poll-timeout <sec>number否使用 --follow 时,在指定秒数后停止轮询(默认:无限制)。未使用 --follow 时忽略。

示例:查询微调任务状态

bl finetune watch --job-id ft-xxx                       # 单次查询,立即返回
  • 默认不使用 --follow,执行非阻塞的单次状态查询:获取一次后立即返回。该模式适用于 Agent / 脚本,由调用方控制轮询节奏,CLI 不会持续占用终端。
  • 终态 FAILED/CANCELED 会触发普通 CLI 错误(非零退出码);SUCCEEDED 或仍在运行时返回 0。使用 --follow 时,超过 --poll-timeout 会触发超时错误。
  • 需要在人工终端中阻塞跟踪时使用 --follow;自行驱动轮询(例如通过 Agent)时使用默认模式。
  • 要查看逐步骤训练输出(而非状态),请使用 finetune logs。

bl finetune logs

获取微调任务的训练日志。需要 API Key 鉴权。

语法

bl finetune logs --job-id <id> [--page <n>] [--page-size <n>] [--search <keyword>] [--tail <n>]
参数类型必填说明
--job-id <id>string是微调任务 ID
--page <n>number否页码(默认:1)
--page-size <n>number否每页行数(默认:由服务端决定)
--search <keyword>string否不区分大小写的子字符串筛选。设置后会获取全部日志页并在客户端筛选(忽略 --page)。
--tail <n>number否仅保留最后 N 条记录。设置后会获取全部日志页并保留末尾 N 条(忽略 --page)。

示例:获取微调任务训练日志

bl finetune logs --job-id ft-xxx

bl finetune checkpoints

列出微调任务生成的 Checkpoint。需要 API Key 鉴权。

语法

bl finetune checkpoints --job-id <id>
参数类型必填说明
--job-id <id>string是微调任务 ID

示例:列出微调任务生成的 Checkpoint

bl finetune checkpoints --job-id ft-xxx
  • SUCCEEDED Checkpoint 中显示的 model_name 可直接作为 deploy create --model-name 的输入。
  • Checkpoint 创建后约 15 天过期,expire_time 显示截止时间。请在过期前导出或部署。

bl finetune export

将 Checkpoint 发布为可部署模型。需要 API Key 鉴权。

语法

bl finetune export --job-id <id> --checkpoint <name> --model-name <name>
参数类型必填说明
--job-id <id>string是微调任务 ID
--checkpoint <name>string是来自 finetune checkpoints 的 Checkpoint 标识
--model-name <name>string是可部署模型名称

示例:将 Checkpoint 发布为可部署模型

bl finetune export --job-id ft-xxx --checkpoint ckpt-3 --model-name my-qwen-sft
  • 必须先执行此操作,deploy <modality> create 才能使用 Checkpoint。任务达到 SUCCEEDED 后,平台可能自动导出最佳 Checkpoint;对于非最佳 Checkpoint,显式导出是标准方式。

bl finetune cancel

取消正在运行的微调任务。需要 API Key 鉴权。

语法

bl finetune cancel --job-id <id>
参数类型必填说明
--job-id <id>string是微调任务 ID

示例:取消正在运行的微调任务

bl finetune cancel --job-id ft-xxx
  • 只有 PENDING / RUNNING 状态的任务可以取消。已完成、失败或已取消的任务会返回服务端错误(原样透传)。

bl finetune delete

删除微调任务记录。需要 API Key 鉴权。

语法

bl finetune delete --job-id <id>
参数类型必填说明
--job-id <id>string是微调任务 ID
--yesswitch否确认执行此高风险操作

警告该操作会永久删除指定的微调任务记录,且无法撤销。

示例:删除微调任务记录

bl finetune delete --job-id ft-xxx
  • 该操作不可撤销——任务记录将被永久删除。
  • 请先通过 finetune cancel 取消 RUNNING 任务,平台拒绝删除仍在运行的任务。

bl finetune capability

查询微调训练能力:按模型查询其支持的训练类型,或按训练类型查询支持它的模型。无需鉴权。

语法

bl finetune capability --base-model <m> | --training-type <t>
参数类型必填说明
--base-model <m>string否列出该基础模型支持的训练类型。
--training-type <t>string否列出支持该训练类型的模型:sft | sft-lora | dpo | dpo-lora | cpt。

示例:查询 qwen3-8b 模型支持的训练类型

bl finetune capability --base-model qwen3-8b
  • --base-model 和 --training-type 必须且只能指定一个。
  • 训练类型遵循 <method> / <method>-lora 命名约定:sft | sft-lora | dpo | dpo-lora | cpt。(服务端没有 cpt-lora 变体。)
  • 查询公开 API listFoundationModels,无需登录控制台。

bl finetune price

估算微调任务的训练费用(按 Token 计费)。

语法

bl finetune price --base-model <model> --datasets <ids> [--training-type <type>] [--n-epochs <n>]
参数类型必填说明
--base-model <model>string是待微调的基座模型(例如 qwen3-8b;不是输出模型名称)
--datasets <ids>string是训练数据集文件 ID,多个以逗号分隔
--training-type <type>string否训练类型:sft | dpo | cpt(默认:sft)
--n-epochs <n>number否训练轮数(默认:3)

示例:估算 qwen3-8b 使用 file-ft-xxx 数据集的微调费用

bl finetune price --base-model qwen3-8b --datasets file-ft-xxx
  • 该结果仅为估算值——服务端根据数据集计算 Token 用量,最终费用以账单为准。
  • 支持估算 sft / dpo / cpt 的 Token 计费;此命令不支持训练单元(MTU)计费估算。
  • 除 --n-epochs 外,其他超参数会使用具有代表性的固定默认值进行估算。

部署管理

bl deploy text create

创建文本模型部署。需要 API Key 鉴权。

语法

bl deploy text create
参数类型必填说明
--model-name <model_name>string是要部署的模型:微调输出模型名称或模型目录中的模型
--display-name <display_name>string否控制台显示名称(PTU 可选;其他方案必填)
--plan <plan>string否计费方案:lora(默认,按 Token 计费)| ptu(吞吐预留)| mu
--deploy-spec <id>string否部署规格(仅 plan=mu 使用;省略时自动选择)
--capacity <n>number否资源单元数(仅 plan=mu;API 必填;默认为模板的单元数)
--billing-method <m>string否计费方式(仅 plan=mu;默认且仅支持 "POST_PAY")
--input-tpm <kTPM>number否输入绝对容量,单位 kTPM(1 kTPM = 1000 Tokens/分钟)
--output-tpm <kTPM>number否输出绝对容量,单位 kTPM
--thinking-output-tpm <n>number否旧版思考输出容量参数;PTU 不支持此参数
--charge-type <type>string否PTU 付费方式(plan=ptu 必填):pre_paid 或 post_paid
--service-tier <tier>string否PTU 性能档位:ptu_fast(默认高速)或 ptu_default(标速,仅预付费)
--suffix <suffix>string否可选 PTU ModelCode 后缀;省略时由服务端生成
--duration <days>number否预付费购买或续订天数,正整数
--auto-renewal <true|false>boolean否显式开启或关闭预付费自动续费
--auto-renewal-duration <days>number否自动续费天数,开启自动续费时必填
--auto-renewal-cycle <cycle>string否可选续费周期单位,按服务支持的值传入,如 Day
--waitswitch否等待返回的容量操作完成并刷新容量
--interval <seconds>number否等待初始轮询间隔(1–3600,默认:2 秒)
--poll-timeout <seconds>number否提交后的等待总时限(默认:600 秒)
--yesswitch否确认执行此高风险操作

警告创建部署会购买或开通资源,可能产生费用。

示例:创建名称为 my-qwen-sft 的文本模型部署

bl deploy text create --model-name my-qwen-sft --display-name my-sft-test
  • 文本和图片部署默认使用 lora(按 Token 计费),音频(CosyVoice TTS)默认使用 mu(按模型单元计费)。可通过 --plan 覆盖。
  • plan=ptu 时,--charge-type、--input-tpm 和 --output-tpm 必填。容量单位为 kTPM(1 kTPM = 1000 Token/分钟),不支持单独的思考输出容量。预付费须提供 --duration 和显式 --auto-renewal true|false。
  • plan=mu 时,capacity、billing_method 和 deploy_spec 必填。billing_method 默认且仅支持 POST_PAY;省略 deploy_spec 和 capacity 时,会从 GET /deployments/models 自动选择。
  • 使用 deploy models --source base 查看可用模板。
  • PTU 创建即使指定 --quiet 也保留原始 JSON 和 operation_id。--wait 仅查询返回的操作;待生效容量不等于已生效容量。调用模型前请确认实际状态。
  • --model-name 标识源模型;返回的 deployed_model 为调用标识(ModelCode),用于推理(text chat --model <deployed_model>)和部署生命周期命令。
  • 首次创建 ModelCode 不支持 --request-id,也不承诺幂等。超时不代表失败:再次尝试前先确认部署是否已创建。本命令不会自动重新提交创建请求。
  • 使用 --dry-run 离线预览;仅在确认费用后传入 --yes 执行。

bl deploy audio create

创建音频(TTS)模型部署。需要 API Key 鉴权。

语法

bl deploy audio create
参数类型必填说明
--model-name <model_name>string是要部署的模型:微调输出模型名称或模型目录中的模型
--display-name <display_name>string否控制台显示名称(PTU 可选;其他方案必填)
--plan <plan>string否计费方案:lora(默认,按 Token 计费)| ptu(吞吐预留)| mu
--deploy-spec <id>string否部署规格(仅 plan=mu 使用;省略时自动选择)
--capacity <n>number否资源单元数(仅 plan=mu;API 必填;默认为模板的单元数)
--billing-method <m>string否计费方式(仅 plan=mu;默认且仅支持 "POST_PAY")
--input-tpm <kTPM>number否输入绝对容量,单位 kTPM(1 kTPM = 1000 Tokens/分钟)
--output-tpm <kTPM>number否输出绝对容量,单位 kTPM
--thinking-output-tpm <n>number否旧版思考输出容量参数;PTU 不支持此参数
--charge-type <type>string否PTU 付费方式(plan=ptu 必填):pre_paid 或 post_paid
--service-tier <tier>string否PTU 性能档位:ptu_fast(默认高速)或 ptu_default(标速,仅预付费)
--suffix <suffix>string否可选 PTU ModelCode 后缀;省略时由服务端生成
--duration <days>number否预付费购买或续订天数,正整数
--auto-renewal <true|false>boolean否显式开启或关闭预付费自动续费
--auto-renewal-duration <days>number否自动续费天数,开启自动续费时必填
--auto-renewal-cycle <cycle>string否可选续费周期单位,按服务支持的值传入,如 Day
--waitswitch否等待返回的容量操作完成并刷新容量
--interval <seconds>number否等待初始轮询间隔(1–3600,默认:2 秒)
--poll-timeout <seconds>number否提交后的等待总时限(默认:600 秒)
--yesswitch否确认执行此高风险操作

警告创建部署会购买或开通资源,可能产生费用。

示例:创建名称为 my-cosyvoice-ft 的音频模型部署

bl deploy audio create --model-name my-cosyvoice-ft --display-name my-tts
  • 文本和图片部署默认使用 lora(按 Token 计费),音频(CosyVoice TTS)默认使用 mu(按模型单元计费)。可通过 --plan 覆盖。
  • plan=ptu 时,--charge-type、--input-tpm 和 --output-tpm 必填。容量单位为 kTPM(1 kTPM = 1000 Token/分钟),不支持单独的思考输出容量。预付费须提供 --duration 和显式 --auto-renewal true|false。
  • plan=mu 时,capacity、billing_method 和 deploy_spec 必填。billing_method 默认且仅支持 POST_PAY;省略 deploy_spec 和 capacity 时,会从 GET /deployments/models 自动选择。
  • 使用 deploy models --source base 查看可用模板。
  • PTU 创建即使指定 --quiet 也保留原始 JSON 和 operation_id。--wait 仅查询返回的操作;待生效容量不等于已生效容量。调用模型前请确认实际状态。
  • --model-name 标识源模型;返回的 deployed_model 为调用标识(ModelCode),用于推理(text chat --model <deployed_model>)和部署生命周期命令。
  • 首次创建 ModelCode 不支持 --request-id,也不承诺幂等。超时不代表失败:再次尝试前先确认部署是否已创建。本命令不会自动重新提交创建请求。
  • 使用 --dry-run 离线预览;仅在确认费用后传入 --yes 执行。

bl deploy image create

创建图片生成模型部署。需要 API Key 鉴权。

语法

bl deploy image create
参数类型必填说明
--model-name <model_name>string是要部署的模型:微调输出模型名称或模型目录中的模型
--display-name <display_name>string否控制台显示名称(PTU 可选;其他方案必填)
--plan <plan>string否计费方案:lora(默认,按 Token 计费)| ptu(吞吐预留)| mu
--deploy-spec <id>string否部署规格(仅 plan=mu 使用;省略时自动选择)
--capacity <n>number否资源单元数(仅 plan=mu;API 必填;默认为模板的单元数)
--billing-method <m>string否计费方式(仅 plan=mu;默认且仅支持 "POST_PAY")
--input-tpm <kTPM>number否输入绝对容量,单位 kTPM(1 kTPM = 1000 Tokens/分钟)
--output-tpm <kTPM>number否输出绝对容量,单位 kTPM
--thinking-output-tpm <n>number否旧版思考输出容量参数;PTU 不支持此参数
--charge-type <type>string否PTU 付费方式(plan=ptu 必填):pre_paid 或 post_paid
--service-tier <tier>string否PTU 性能档位:ptu_fast(默认高速)或 ptu_default(标速,仅预付费)
--suffix <suffix>string否可选 PTU ModelCode 后缀;省略时由服务端生成
--duration <days>number否预付费购买或续订天数,正整数
--auto-renewal <true|false>boolean否显式开启或关闭预付费自动续费
--auto-renewal-duration <days>number否自动续费天数,开启自动续费时必填
--auto-renewal-cycle <cycle>string否可选续费周期单位,按服务支持的值传入,如 Day
--waitswitch否等待返回的容量操作完成并刷新容量
--interval <seconds>number否等待初始轮询间隔(1–3600,默认:2 秒)
--poll-timeout <seconds>number否提交后的等待总时限(默认:600 秒)
--yesswitch否确认执行此高风险操作

警告创建部署会购买或开通资源,可能产生费用。

示例:创建名称为 my-wan-ft 的图片生成模型部署

bl deploy image create --model-name my-wan-ft --display-name my-wan
  • 文本和图片部署默认使用 lora(按 Token 计费),音频(CosyVoice TTS)默认使用 mu(按模型单元计费)。可通过 --plan 覆盖。
  • plan=ptu 时,--charge-type、--input-tpm 和 --output-tpm 必填。容量单位为 kTPM(1 kTPM = 1000 Token/分钟),不支持单独的思考输出容量。预付费须提供 --duration 和显式 --auto-renewal true|false。
  • plan=mu 时,capacity、billing_method 和 deploy_spec 必填。billing_method 默认且仅支持 POST_PAY;省略 deploy_spec 和 capacity 时,会从 GET /deployments/models 自动选择。
  • 使用 deploy models --source base 查看可用模板。
  • PTU 创建即使指定 --quiet 也保留原始 JSON 和 operation_id。--wait 仅查询返回的操作;待生效容量不等于已生效容量。调用模型前请确认实际状态。
  • --model-name 标识源模型;返回的 deployed_model 为调用标识(ModelCode),用于推理(text chat --model <deployed_model>)和部署生命周期命令。
  • 首次创建 ModelCode 不支持 --request-id,也不承诺幂等。超时不代表失败:再次尝试前先确认部署是否已创建。本命令不会自动重新提交创建请求。
  • 使用 --dry-run 离线预览;仅在确认费用后传入 --yes 执行。

bl deploy list

列出模型部署及吞吐预留。需要 API Key 鉴权。

语法

bl deploy list [--page <n>] [--page-size <n>] [--plan <plan>] [--status <status>]
参数类型必填说明
--page <n>number否页码(默认:1)
--page-size <n>number否每页结果数(默认:10,最多:100)
--plan <plan>string否服务端方案筛选;吞吐预留使用 ptu
--status <status>string否仅在已获取的当前页本地筛选 ModelCode 状态;total 仍为筛选前总数

示例:列出 PTU 方案的模型部署及吞吐预留

bl deploy list --plan ptu
  • 部署列表 API 支持 page_no/page_size/plan,不支持 status。--status 仅筛选所请求的当前页,不代表全账号筛选;当前页为空不代表后续页没有匹配项。total 是本地筛选前的服务端总数,local_filter 给出当前页匹配数量。PTU 容量单位为 kTPM。

bl deploy get

获取单个模型部署的详情。需要 API Key 鉴权。

语法

bl deploy get --deployed-model <id>
参数类型必填说明
--deployed-model <code>string是部署调用标识(ModelCode)

示例:获取部署标识为 qwen-plus-2025-12-01-b6d61c71 的模型详情

bl deploy get --deployed-model qwen-plus-2025-12-01-b6d61c71
  • 保留部署字段,包括 ptu_capacity(汇总生效容量,kTPM)、ptu_service_tier、overflow_strategy 及 pre_paid_info。混合付费或多实例时,通过 capacity list/get 查询各实例状态、到期时间和容量;ModelCode 状态不等于实例状态。

bl deploy update

更新部署的限流配置(rpm_limit / tpm_limit)。需要 API Key 鉴权。

语法

bl deploy update --deployed-model <id> [--rpm-limit <n>] [--tpm-limit <n>]
参数类型必填说明
--deployed-model <id>string是已部署模型标识
--rpm-limit <n>number否每分钟请求数
--tpm-limit <n>number否每分钟 Token 数

示例:更新 dep-... 部署的每分钟请求数限流配置

bl deploy update --deployed-model dep-... --rpm-limit 1000
  • --rpm-limit / --tpm-limit 至少需要提供一个。

bl deploy scale

调整部署容量。需要 API Key 鉴权。

语法

bl deploy scale --deployed-model <id> (--capacity <n> | --input-tpm <n> --output-tpm <n>) [--instance-id <id>] [flags]
参数类型必填说明
--deployed-model <id>string是已部署模型标识
--capacity <n>number否MU 目标容量:非负整数,单位为方案单元;须满足 base_capacity 约束
--input-tpm <kTPM>number否输入绝对容量,单位 kTPM(1 kTPM = 1000 Tokens/分钟)
--output-tpm <kTPM>number否输出绝对容量,单位 kTPM
--instance-id <id>string否PTU 容量实例 ID;存在多个未释放实例时必填
--duration <days>number否预付费购买或续订天数,正整数
--auto-renewal <true|false>boolean否显式开启或关闭预付费自动续费
--auto-renewal-duration <days>number否自动续费天数,开启自动续费时必填
--auto-renewal-cycle <cycle>string否可选续费周期单位,按服务支持的值传入,如 Day
--request-id <uuid>string否请求标识,省略时生成;仅重试同一容量操作时保持标识和参数一致
--waitswitch否等待返回的容量操作完成并刷新容量
--interval <seconds>number否等待初始轮询间隔(1–3600,默认:2 秒)
--poll-timeout <seconds>number否提交后的等待总时限(默认:600 秒)
--order-type <UPGRADE|DOWNGRADE>string否可选变配方向,省略时由服务端判定
--yesswitch否确认执行此高风险操作

警告扩缩容会变更购买的容量,可能产生费用或降低服务容量。

示例:预览调整 dep-... 部署容量至 8 的操作

bl deploy scale --deployed-model dep-... --capacity 8 --dry-run
  • PTU 输入/输出值为选中实例的绝对目标容量,单位 kTPM(1 kTPM = 1000 Token/分钟),不是增量或部署总容量。允许同时为零,但不等于释放实例。PTU 参数不能与 --capacity 混用。
  • 省略 --instance-id 时,执行前必须确认恰好一个未释放实例并复查 can_scale。dry-run 不解析实例或验证其付费方式;仅在确认费用及目标后传入 --yes 执行。

bl deploy delete

删除模型部署(PTU 须为 STOPPED 且已释放全部容量)。需要 API Key 鉴权。

语法

bl deploy delete --deployed-model <id> [--skip-precheck]
参数类型必填说明
--deployed-model <id>string是已部署模型标识
--skip-precheckswitch否仅跳过本地检查;服务端仍验证删除前提条件
--yesswitch否确认执行此高风险操作

警告该操作会永久删除指定的模型部署,且无法撤销。

示例:预览删除 dep-... 部署的操作

bl deploy delete --deployed-model dep-... --dry-run
  • PTU 删除要求状态为 STOPPED、全部容量实例已释放,且不存在执行中或排队的容量操作。暂停或缩容到零不等于释放实例;预付费容量可能需要先退订。
  • 本地检查部署、未释放实例及返回的 operation_id。没有公开的排队操作列表接口,因此无法在本地确认所有操作均已完成,最终以服务端裁决为准。--skip-precheck 仅省略本地检查,不绕过服务端验证或资源释放要求。

bl deploy pause

暂停运行中的模型部署(mu/ptu 方案将停止计费)。

语法

bl deploy pause --deployed-model <id> [--skip-precheck]
参数类型必填说明
--deployed-model <id>string是已部署模型标识
--skip-precheckswitch否跳过本地 RUNNING/PENDING 状态预检查

示例:暂停运行中的 dep-... 模型部署

bl deploy pause --deployed-model dep-...
  • 暂停期间,mu/ptu 方案将停止计费。使用 deploy resume 恢复服务,或使用 deploy delete 删除部署。
  • 发起暂停前会预检查部署状态是否为 RUNNING/PENDING;可传入 --skip-precheck 跳过检查。

bl deploy resume

恢复已暂停的模型部署(使服务重新上线)。

语法

bl deploy resume --deployed-model <id> [--skip-precheck]
参数类型必填说明
--deployed-model <id>string是已部署模型标识
--skip-precheckswitch否跳过本地 STOPPED 状态预检查

示例:恢复已暂停的 dep-... 模型部署

bl deploy resume --deployed-model dep-...
  • 发起恢复前会预检查部署状态是否为 STOPPED;可传入 --skip-precheck 跳过检查。
  • 对于 mu/ptu 方案,服务重新上线后将恢复计费。

bl deploy models

列出可部署的模型。需要 API Key 鉴权。

语法

bl deploy models [--page <n>] [--page-size <n>] [--catalog-version <v>] [--source <custom|public>]
参数类型必填说明
--page <n>number否页码(默认:1)
--page-size <n>number否每页结果数(默认:100)
--catalog-version <v>string否模型目录版本筛选(默认:v1.0;新目录模型必填)
--source <s>string否模型来源筛选:custom(微调模型)| base(模型目录)| public

示例:筛选并列出可部署的模型

bl deploy models --source base

吞吐预留容量

bl deploy capacity list

查询吞吐预留容量实例列表。需要 API Key 鉴权。

语法

bl deploy capacity list --deployed-model <code> [--page <n>] [--page-size <n>] [--include-deleted <true|false>] [--statuses <status,...>] [--charge-types <pre_paid,post_paid>]
参数类型必填说明
--deployed-model <code>string是部署调用标识(ModelCode)
--page <n>number否页码(默认:1)
--page-size <n>number否每页条数(1–100,默认:20)
--include-deleted <true|false>boolean否包含已释放实例(默认:true)
--statuses <status,...>string否实例状态,逗号分隔(非 ModelCode 状态)
--charge-types <pre_paid,post_paid>string否付费类型:pre_paid、post_paid,逗号分隔

示例:查询指定模型的容量实例列表

bl deploy capacity list --deployed-model example-model-code
  • 保留 API 响应结构及 records/items/page/itemsPerPage/pageCount 分页字段。容量单位为 kTPM,区分生效、配置和目标容量。仅 STOPPED 不代表已释放,需检查 deleted。

bl deploy capacity get

查询吞吐预留容量实例详情。需要 API Key 鉴权。

语法

bl deploy capacity get --deployed-model <code> --instance-id <id>
参数类型必填说明
--deployed-model <code>string是部署调用标识(ModelCode)
--instance-id <id>string是接口返回的容量实例 ID

示例:获取指定容量实例的详细信息

bl deploy capacity get --deployed-model example-model-code --instance-id example-capacity-instance
  • 只读查询,已释放实例也可查询。保留 API 响应结构、容量字段、can_scale/can_renew/can_delete 和 deleted。容量单位为 kTPM,实例必须属于指定 ModelCode。

bl deploy capacity create

为已有 ModelCode 叠加购买容量实例。需要 API Key 鉴权。

语法

bl deploy capacity create --deployed-model <code> --billing-method <PRE_PAY|POST_PAY> --input-tpm <kTPM> --output-tpm <kTPM> [--duration <days>] [--auto-renewal <true|false>] [--wait]
参数类型必填说明
--deployed-model <code>string是部署调用标识(ModelCode)
--input-tpm <kTPM>number否输入绝对容量,单位 kTPM(1 kTPM = 1000 Tokens/分钟)
--output-tpm <kTPM>number否输出绝对容量,单位 kTPM
--duration <days>number否预付费购买或续订天数,正整数
--auto-renewal <true|false>boolean否显式开启或关闭预付费自动续费
--auto-renewal-duration <days>number否自动续费天数,开启自动续费时必填
--auto-renewal-cycle <cycle>string否可选续费周期单位,按服务支持的值传入,如 Day
--request-id <uuid>string否请求标识,省略时生成;仅重试同一容量操作时保持标识和参数一致
--waitswitch否等待返回的容量操作完成并刷新容量
--interval <seconds>number否等待初始轮询间隔(1–3600,默认:2 秒)
--poll-timeout <seconds>number否提交后的等待总时限(默认:600 秒)
--billing-method <PRE_PAY|POST_PAY>string是容量实例付费方式(区分大小写)
--yesswitch否确认执行此高风险操作

警告该操作将购买额外吞吐容量,可能开启持续续费。

示例:预览为模型叠加购买容量实例的配置

bl deploy capacity create --deployed-model example-code --billing-method POST_PAY --input-tpm 10000 --output-tpm 1000 --dry-run
  • 沿用原 ModelCode、模型和性能档位。同一 ModelCode 只允许一个未释放的后付费实例;购买资格和实例数量限制由服务端校验。

bl deploy capacity scale

调整单个预留实例的绝对容量。需要 API Key 鉴权。

语法

bl deploy capacity scale --deployed-model <code> --instance-id <id> --input-tpm <kTPM> --output-tpm <kTPM> [--order-type <UPGRADE|DOWNGRADE>] [--wait]
参数类型必填说明
--deployed-model <code>string是部署调用标识(ModelCode)
--instance-id <id>string是接口返回的容量实例 ID
--input-tpm <kTPM>number否输入绝对容量,单位 kTPM(1 kTPM = 1000 Tokens/分钟)
--output-tpm <kTPM>number否输出绝对容量,单位 kTPM
--duration <days>number否预付费购买或续订天数,正整数
--auto-renewal <true|false>boolean否显式开启或关闭预付费自动续费
--auto-renewal-duration <days>number否自动续费天数,开启自动续费时必填
--auto-renewal-cycle <cycle>string否可选续费周期单位,按服务支持的值传入,如 Day
--order-type <UPGRADE|DOWNGRADE>string否可选变配方向,省略时由服务端判定
--request-id <uuid>string否请求标识,省略时生成;仅重试同一容量操作时保持标识和参数一致
--waitswitch否等待返回的容量操作完成并刷新容量
--interval <seconds>number否等待初始轮询间隔(1–3600,默认:2 秒)
--poll-timeout <seconds>number否提交后的等待总时限(默认:600 秒)
--yesswitch否确认执行此高风险操作

警告该操作会变更购买容量、可能产生费用,也可能将服务容量降至零。

示例:预览调整容量实例的输入输出绝对容量

bl deploy capacity scale --deployed-model example-code --instance-id example-instance --input-tpm 20000 --output-tpm 2000 --dry-run
  • 写入前刷新 can_scale。未指定预付费参数时不发送该对象,由服务端复用已保存的信息。后付费实例不能携带预付费配置。

bl deploy capacity renew

续订预付费容量实例,可同时变更容量。需要 API Key 鉴权。

语法

bl deploy capacity renew --deployed-model <code> --instance-id <id> --duration <days> --auto-renewal <true|false> [--is-change <true|false>] [--input-tpm <kTPM>] [--output-tpm <kTPM>] [--wait]
参数类型必填说明
--deployed-model <code>string是部署调用标识(ModelCode)
--instance-id <id>string是接口返回的容量实例 ID
--input-tpm <kTPM>number否输入绝对容量,单位 kTPM(1 kTPM = 1000 Tokens/分钟)
--output-tpm <kTPM>number否输出绝对容量,单位 kTPM
--duration <days>number否预付费购买或续订天数,正整数
--auto-renewal <true|false>boolean否显式开启或关闭预付费自动续费
--auto-renewal-duration <days>number否自动续费天数,开启自动续费时必填
--auto-renewal-cycle <cycle>string否可选续费周期单位,按服务支持的值传入,如 Day
--request-id <uuid>string否请求标识,省略时生成;仅重试同一容量操作时保持标识和参数一致
--waitswitch否等待返回的容量操作完成并刷新容量
--interval <seconds>number否等待初始轮询间隔(1–3600,默认:2 秒)
--poll-timeout <seconds>number否提交后的等待总时限(默认:600 秒)
--is-change <true|false>boolean否续订时同时变更容量(默认:false)
--yesswitch否确认执行此高风险操作

警告该操作将付费续订容量实例,可能开启自动持续续费。

示例:预览续订容量实例并变更容量的配置

bl deploy capacity renew --deployed-model example-code --instance-id example-instance --duration 30 --auto-renewal false --dry-run
  • 仅支持预付费,写入前刷新 can_renew。变更容量必须指定 --is-change true;相同配置容量可随 false 发送。本接口不接受 order_type。

bl deploy capacity delete

释放容量实例,保留所属 ModelCode。需要 API Key 鉴权。

语法

bl deploy capacity delete --deployed-model <code> --instance-id <id> [--reason <text>] [--wait]
参数类型必填说明
--deployed-model <code>string是部署调用标识(ModelCode)
--instance-id <id>string是接口返回的容量实例 ID
--request-id <uuid>string否请求标识,省略时生成;仅重试同一容量操作时保持标识和参数一致
--waitswitch否等待返回的容量操作完成并刷新容量
--interval <seconds>number否等待初始轮询间隔(1–3600,默认:2 秒)
--poll-timeout <seconds>number否提交后的等待总时限(默认:600 秒)
--reason <text>string否可选释放原因,以查询参数发送
--yesswitch否确认执行此高风险操作

警告该操作将释放服务容量,可能中断请求,不能通过本命令撤销。这不是预付费退订或退款操作。

示例:预览释放容量实例的配置

bl deploy capacity delete --deployed-model example-code --instance-id example-instance --dry-run
  • 已生效预付费实例须通过 deploy capacity unsubscribe 获取费用中心退订链接完成退订,即使 can_delete=true 也不能直接删除。失败的预付费实例可能尚未关联订单,能否直接释放由服务端裁决。释放是异步操作,须确认 deleted=true,不能只看 STOPPED 或零容量。

bl deploy capacity unsubscribe

生成预付费容量实例在阿里云费用中心的退订链接。无需鉴权。

语法

bl deploy capacity unsubscribe --instance-id <id>
参数类型必填说明
--instance-id <id>string是接口返回的容量实例 ID

示例:生成容量实例的退订链接

bl deploy capacity unsubscribe --instance-id example-instance
  • 本命令不调用任何接口,也不会执行退订,只生成费用中心退订页面链接。请用下单账号打开链接,在费用中心完成退订流程。
  • 仅预付费实例通过此方式退订;后付费实例请使用 deploy capacity delete 释放。此处为容量实例 ID(见 deploy capacity list / get),不是 ModelCode。退订可能中断服务且不可撤销,退款规则以费用中心为准。

bl deploy overflow

设置吞吐预留 ModelCode 的溢出策略。需要 API Key 鉴权。

语法

bl deploy overflow --deployed-model <code> --strategy <enable|disable>
参数类型必填说明
--deployed-model <code>string是部署调用标识(ModelCode)
--strategy <enable|disable>string是允许按量溢出或将请求限制在预留容量内
--yesswitch否确认执行此高风险操作

警告开启溢出后,预留容量外的流量将产生按量费用;关闭后,超额请求会被限流。

示例:预览设置模型溢出策略的配置

bl deploy overflow --deployed-model example-code --strategy enable --dry-run
  • 配置作用于整个 ModelCode,而非单个容量实例。提交一次更新后 GET 回读确认策略。不自动重试更新;回读失败不代表配置未生效。

bl deploy operation get

单次查询吞吐预留容量操作。需要 API Key 鉴权。

语法

bl deploy operation get --deployed-model <code> --operation-id <id>
参数类型必填说明
--deployed-model <code>string是部署调用标识(ModelCode)
--operation-id <id>string是写请求返回的容量操作 ID

示例:查询指定容量操作的详情

bl deploy operation get --deployed-model example-model-code --operation-id 100001
  • 保留 API 响应结构,包括 FAILED 状态及错误字段;GET 请求成功即返回退出码 0,不以操作状态判断。需要等待成功或失败时非零退出,请使用 operation wait。操作 ID 必须使用实际返回值,不要自行构造。

bl deploy operation wait

等待容量操作完成并刷新已确认容量。需要 API Key 鉴权。

语法

bl deploy operation wait --deployed-model <code> --operation-id <id> [--interval <seconds>] [--poll-timeout <seconds>]
参数类型必填说明
--deployed-model <code>string是部署调用标识(ModelCode)
--operation-id <id>string是写请求返回的容量操作 ID
--interval <seconds>number否初始轮询间隔(1–3600 秒,默认:2);逐次翻倍至 max(初始值, 30)
--poll-timeout <seconds>number否总等待时限,包含请求及刷新(默认:600 秒)

示例:等待容量操作完成并刷新确认容量

bl deploy operation wait --deployed-model example-model-code --operation-id 100001
  • 只读 GET 轮询:PROCESSING 继续等待,FAILED 透传服务端错误并退出 1,SUCCEEDED 刷新实例(返回 ID 时)及部署。输出保留操作响应结构,追加 instance/deployment 响应结构。缺失或未知状态报错,不推定成功。
  • --timeout 限制单次 HTTP 请求,--poll-timeout 限制整个等待过程(超时退出 5)。Ctrl-C 只停止本地等待,不取消远端操作。不重试任何写请求;超时或中断后仍使用原操作 ID 查询。