阿里云百炼 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 |
--follow | switch | 否 | 阻塞并轮询至终态(旧版行为)。不使用时仅查询一次状态并立即返回。 |
--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 |
--yes | switch | 否 | 确认执行此高风险操作 |
警告该操作会永久删除指定的微调任务记录,且无法撤销。
示例:删除微调任务记录
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 |
--wait | switch | 否 | 等待返回的容量操作完成并刷新容量 |
--interval <seconds> | number | 否 | 等待初始轮询间隔(1–3600,默认:2 秒) |
--poll-timeout <seconds> | number | 否 | 提交后的等待总时限(默认:600 秒) |
--yes | switch | 否 | 确认执行此高风险操作 |
警告创建部署会购买或开通资源,可能产生费用。
示例:创建名称为 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 |
--wait | switch | 否 | 等待返回的容量操作完成并刷新容量 |
--interval <seconds> | number | 否 | 等待初始轮询间隔(1–3600,默认:2 秒) |
--poll-timeout <seconds> | number | 否 | 提交后的等待总时限(默认:600 秒) |
--yes | switch | 否 | 确认执行此高风险操作 |
警告创建部署会购买或开通资源,可能产生费用。
示例:创建名称为 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 |
--wait | switch | 否 | 等待返回的容量操作完成并刷新容量 |
--interval <seconds> | number | 否 | 等待初始轮询间隔(1–3600,默认:2 秒) |
--poll-timeout <seconds> | number | 否 | 提交后的等待总时限(默认:600 秒) |
--yes | switch | 否 | 确认执行此高风险操作 |
警告创建部署会购买或开通资源,可能产生费用。
示例:创建名称为 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 | 否 | 请求标识,省略时生成;仅重试同一容量操作时保持标识和参数一致 |
--wait | switch | 否 | 等待返回的容量操作完成并刷新容量 |
--interval <seconds> | number | 否 | 等待初始轮询间隔(1–3600,默认:2 秒) |
--poll-timeout <seconds> | number | 否 | 提交后的等待总时限(默认:600 秒) |
--order-type <UPGRADE|DOWNGRADE> | string | 否 | 可选变配方向,省略时由服务端判定 |
--yes | switch | 否 | 确认执行此高风险操作 |
警告扩缩容会变更购买的容量,可能产生费用或降低服务容量。
示例:预览调整 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-precheck | switch | 否 | 仅跳过本地检查;服务端仍验证删除前提条件 |
--yes | switch | 否 | 确认执行此高风险操作 |
警告该操作会永久删除指定的模型部署,且无法撤销。
示例:预览删除 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-precheck | switch | 否 | 跳过本地 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-precheck | switch | 否 | 跳过本地 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 | 否 | 请求标识,省略时生成;仅重试同一容量操作时保持标识和参数一致 |
--wait | switch | 否 | 等待返回的容量操作完成并刷新容量 |
--interval <seconds> | number | 否 | 等待初始轮询间隔(1–3600,默认:2 秒) |
--poll-timeout <seconds> | number | 否 | 提交后的等待总时限(默认:600 秒) |
--billing-method <PRE_PAY|POST_PAY> | string | 是 | 容量实例付费方式(区分大小写) |
--yes | switch | 否 | 确认执行此高风险操作 |
警告该操作将购买额外吞吐容量,可能开启持续续费。
示例:预览为模型叠加购买容量实例的配置
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 | 否 | 请求标识,省略时生成;仅重试同一容量操作时保持标识和参数一致 |
--wait | switch | 否 | 等待返回的容量操作完成并刷新容量 |
--interval <seconds> | number | 否 | 等待初始轮询间隔(1–3600,默认:2 秒) |
--poll-timeout <seconds> | number | 否 | 提交后的等待总时限(默认:600 秒) |
--yes | switch | 否 | 确认执行此高风险操作 |
警告该操作会变更购买容量、可能产生费用,也可能将服务容量降至零。
示例:预览调整容量实例的输入输出绝对容量
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 | 否 | 请求标识,省略时生成;仅重试同一容量操作时保持标识和参数一致 |
--wait | switch | 否 | 等待返回的容量操作完成并刷新容量 |
--interval <seconds> | number | 否 | 等待初始轮询间隔(1–3600,默认:2 秒) |
--poll-timeout <seconds> | number | 否 | 提交后的等待总时限(默认:600 秒) |
--is-change <true|false> | boolean | 否 | 续订时同时变更容量(默认:false) |
--yes | switch | 否 | 确认执行此高风险操作 |
警告该操作将付费续订容量实例,可能开启自动持续续费。
示例:预览续订容量实例并变更容量的配置
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 | 否 | 请求标识,省略时生成;仅重试同一容量操作时保持标识和参数一致 |
--wait | switch | 否 | 等待返回的容量操作完成并刷新容量 |
--interval <seconds> | number | 否 | 等待初始轮询间隔(1–3600,默认:2 秒) |
--poll-timeout <seconds> | number | 否 | 提交后的等待总时限(默认:600 秒) |
--reason <text> | string | 否 | 可选释放原因,以查询参数发送 |
--yes | switch | 否 | 确认执行此高风险操作 |
警告该操作将释放服务容量,可能中断请求,不能通过本命令撤销。这不是预付费退订或退款操作。
示例:预览释放容量实例的配置
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 | 是 | 允许按量溢出或将请求限制在预留容量内 |
--yes | switch | 否 | 确认执行此高风险操作 |
警告开启溢出后,预留容量外的流量将产生按量费用;关闭后,超额请求会被限流。
示例:预览设置模型溢出策略的配置
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 查询。