@modelstudioai/bailian-train-deploy

@modelstudioai/bailian-train-deploy — AI coding skill

View in AI SkillSafe app
0 downloads
0 stars
0 demos
SKILL.md
namebailian-train-deploy
description用百炼 CLI (`bl`) 走完"数据→微调训练→导出→部署→调用"的完整闭环,或跳过训练直接部署基座模型。支持文本模型(SFT/DPO/CPT)、音频 TTS 模型(CosyVoice)、图像生成模型(Wan2.7)和视频生成模型(Wan i2v/kf2v)微调。涵盖数据集校验/上传、创建微调任务、等待训练、导出最佳 checkpoint、创建推理部署、等待就绪、给出调用示例。当用户提到在百炼 / DashScope / 阿里云模型工作室上"训练模型""微调""fine-tune""finetune""部署模型""模型上线""把微调模型跑起来/调用""训练一个推理模型""继续预训练""LoRA/SFT/DPO 训练""语音合成模型""TTS 微调""CosyVoice""声音克隆""图像生成微调""文生图""图生图""Wan2.7""图像模型训练""视频生成微调""图生视频""首帧生视频""首尾帧""kf2v""i2v""Wan视频""视频特效训练"等,都应激活本技能——即使用户没明说"用 bl",只要意图是百炼平台的训练或部署,就用本技能,不要自己拼凑命令。

百炼模型训练→部署闭环 (bl)

用百炼 CLI bl 把模型部署成可调用的专属推理服务——可以先微调再部署,也可以跳过训练直接部署基座。支持文本、音频 TTS、图像生成和视频生成四种模态,两处"等待"用 Monitor 异步轮询,不阻塞主流程。

链路 A(先训练后部署):
数据集 → finetune <模态> create → 等 SUCCEEDED → 导出模型(通常自动) → deploy <模态> create → 等 RUNNING → 调用

链路 B(直接部署基座,跳过训练):
选基座 → deploy <模态> create → 等 RUNNING → 调用

链路 B 适用于"只想把某个基座跑成自己的部署服务"——和直接调用 API 在推理上没本质区别,但能拿到独立部署实例、可调速率/计费方式、纳入自己的运维。仅当用户明确表示不训练 / 跳过训练 / 直接部署基座时才走这条;用户只是没提训练细节时,默认按链路 A 引导,不要擅自跳过训练。

模态分发:本技能的通用流程适用于所有模态,但数据格式、超参、推理命令因模态而异。确定用户意图后,按模态查阅对应参考文件:

本技能假设 bl(bailian-cli)已安装。命令/flag 细节以 bl <cmd> --help 为准;本技能聚焦流程编排与避坑

写操作护栏(创建前必读)

bl finetune <模态> createbl deploy <模态> create 都是真实写操作,会产生计费资源(微调训练 + 推理部署)。bl 没有 --dry-run,所以用预检命令代替预演、用计费确认把关预留资源。任何写操作前必须先过这三道闸:

  1. 预检代替 dry-run(创建前必跑,确认可行再写)。这些预检命令本身都需先通过下方前置检查的认证——未认证先 bl auth login 再预检:
    • 训练前:bl finetune capability --base-model <base> —— 确认基座支持你选的 training-type(不支持会快速失败且不耗配额;create 提交时也会再校验一次)。
    • 部署前:bl deploy models --source custom(链路 A 微调输出)或 --source base(链路 B 基座)—— 确认目标模型可部署、看清可用 plan,再决定 --plan
    • 复用检测:bl deploy list --status RUNNING —— 若已有引用同一 finetuned_output 且 RUNNING 的部署,直接复用其 deployed_model不要再建第二个计费实例
  2. 计费确认硬闸门(mu/ptu)
    • lora(默认,按 token 计费,闲置一般不计费)—— 安全默认,可直接创建。
    • mu / ptu预留/独占资源,闲置也计费——创建前必须向用户显式说明计费方式并取得确认。在 agent / CI 等非交互环境不能自动开通预留资源。命中 mu/ptu 时,把“这会产生闲置计费”连同命令交还给真人在终端确认(bl 当前不提供 --yes 跳过确认 flag,确认行为完全由真人把控)。
  3. 账号就绪检查bl auth status —— authenticated: false 即停,给 bl auth login --api-key sk-...。百炼走 API key / access token 认证,没有独立的实名闸门auth status 即账号就绪检查。

反触发表(不归本 skill 的意图,附完整命令)

用户意图 路由到 完整示范命令
只想试模型效果 / 一次性对话 bailian-cli bl text chat --model qwen3-8b --message "..."
已确定模型,只要调用方式 bailian-cli bl text chat --model <model> --message "..."
不知道选哪个基座 / 模型选型 bailian-model-recommend (让该 skill 按场景推荐)
纯查模型参数 / 价格 / 上下文窗口 bailian-docs-llm-wiki (查模型数据目录)
已有部署,只想生成调用示例 bailian-cli bl text chat --model <deployed_model> --message "..."bl speech synthesize --model <deployed_model> --voice default --text "..." 或异步 API + 触发词(图像生成,见 image.md
对已有训练任务 / 部署做查删(生命周期) bl 直接 bl finetune list / bl deploy list / bl deploy delete --deployed-model <id>

本 skill 只负责"新建训练任务 + 新建部署 + 调用交付"这一条闭环。训练任务与部署的全生命周期管理(list / stop / delete 历史任务、删除部署等)不在本 skill 流程内,用 bl finetune list / bl deploy list / bl deploy delete 直接操作。

反幻觉清单

  • --base-model / --model-name / --model 分属不同命令,切勿复用
    • bl finetune <模态> create --base-model → 基座模型名(文本 qwen3-8b,音频 cosyvoice-v3-flash,图像 wan2.7-image-pro)。
    • bl deploy <模态> create --model-name → 导出模型名(链路 A:qwen3-8b-ft-... / cosyvoice-v3-flash-ft-... / wan2.7-image-pro-ft-...;链路 B:基座名)。
    • 推理命令 --model → 必须用 deploy <模态> create 响应里的 deployed_model不是你传给 deploy <模态> create 的名字。
  • --training-type 取值穷举sft / sft-lora(默认)/ dpo / dpo-lora / cpt。映射在 CLI 边界完成(sft-loraefficient_sft),永远传 CLI 值,不要传服务端字符串。cpt-lora 变体。音频 TTS 和图像生成都只用 sft-lora——finetune audio create / finetune image create 不暴露此 flag,仅 finetune text create 接受。
  • --plan 取值穷举lora(默认,token 计费)/ ptu(需 --input-tpm/--output-tpm)/ mu(需 --deploy-spec/--capacity)。链路 B 基座通常不支持 lora。音频 TTS 微调模型只支持 mu。图像生成微调模型只支持 lora
  • --deploy-spec(非 template-id):mu plan 的部署规格 flag。CLI 从 catalog 读取 template_id,在请求体中发送为 deploy_spec
  • --source 取值穷举bl deploy models):custom(微调输出)/ base(基座)/ public
  • --learning-rate 必须字符串:传 "3e-4",不要传数字 3e-4,避免 JSON 精度丢失(文本适用,音频/图像不需要传此参数)。
  • 推理命令因模态不同:文本模型用 bl text chat,音频 TTS 用 bl speech synthesize --voice default,图像生成用异步 API + 触发词(详见 references/image.md)。
  • 没有这些 flag/子命令bl--dry-run、无裸 finetune create/deploy create必须带模态段finetune text|audio|image createdeploy text|audio|image create)、无 finetune start、无 deploy stop(停用/恢复用 bl deploy pause / bl deploy resume;pause 对 mu/ptu 停止计费)。
  • 必填finetune <模态> create--base-model / --datasetsdeploy <模态> create--model-name / --display-name

前置检查(动作流起点)

  • 认证:bl auth status,确认已配置 API key(DASHSCOPE_API_KEYbl auth login --api-key sk-...)。
  • 基座选型:查询训练能力用 bl finetune capability(查 listFoundationModels,走 API key、无需 console 登录):
    • bl finetune capability --base-model <base> —— 该模型支持哪些训练类型。
    • bl finetune capability --training-type sft-lora —— 反向查:哪些模型支持该训练类型(返回 models 列表,含中文名)。
    • 选定基座后可直接进入第 2 步;bl finetune <模态> create 提交前也会再用 listFoundationModels 校验,不支持会快速失败。
    • 文本推理推荐 Qwen3 系列(qwen3-8b / qwen3-14b / qwen3.6-flash);音频 TTS 用 cosyvoice-v3-flash;图像生成用 wan2.7-image-pro / wan2.7-image

第 1 步:准备数据集

支持三种数据来源,由你(Agent)根据用户意图灵活选用,不必写死交互流程——你本身具备主动提问能力,知道有哪些选项后自然向用户确认即可:

  1. 本地数据集 —— 用户提供本地文件路径,直接使用。
  2. 已上传数据集 —— 从百炼上已有的数据集中选取(bl dataset list)。
  3. 生成示例数据 —— 征得用户同意后,由你生成一份小规模示例数据,仅用于跑通流程(效果有限,需如实告知用户)。

数据格式因模态不同,详见对应参考文件:

提交训练前用 bl dataset validate --file <path> 校验通过再继续(CLI 自动探测 schema,也可 --schema tts / --schema image / --schema chatml 显式指定)。

第 2 步:创建微调任务

bl finetune <模态> create \
  --base-model <base-model> \
  --datasets <path-or-file-id> \
  --output json

training-type 取值与映射详见 references/finetune.md模态特异性超参见对应参考文件:

  • 文本模型(finetune text create):接受 --training-type / --n-epochs / --learning-rate 等,详见 references/text.md
  • 音频 TTS(finetune audio create):不暴露 --training-type(内部固定 sft-lora),超参由 CLI 自动注入,详见 references/audio.md
  • 图像生成(finetune image create):不暴露 --training-type(内部固定 sft-lora),超参由 CLI 自动注入,详见 references/image.md

从响应记下:output.job_idoutput.finetuned_output(输出模型名,形如 <base>-ft-<ts>-<id>)。

第 3 步:等待训练完成(异步)

用 Monitor 工具运行本技能自带的等待脚本——它会在状态变化时通知,到终态退出:

Monitor command: bash <本技能目录>/scripts/wait.sh finetune <JOB_ID>

<本技能目录> 即本技能的 base 目录(技能加载时会给出,含 scripts/wait.sh),用实际路径替换。脚本每 30s 轮询,终态为 SUCCEEDED/FAILED/CANCELED/PARTIALLY_SUCCEEDED

⚠️ 避坑:不要在 zsh 里手写 status=... 轮询循环。 status 是 zsh 的只读内置变量,赋值会报 read-only variable 并让脚本 exit 1。用本技能的 bash 脚本(#!/usr/bin/env bash)规避,或自写时改用 st 等变量名。

第 4 步:导出最佳模型(通常可跳过)

任务 SUCCEEDED 后,平台会自动导出 best checkpoint 为可部署模型——直接进第 5 步即可,无需手动导出。

只有要部署非 best 的某个 checkpoint 时才显式导出:

bl finetune checkpoints --job-id <JOB_ID>          # 列出可用 checkpoint
bl finetune export --job-id <JOB_ID> --checkpoint <name> --model-name <自定义名>

第 5 步:创建部署

创建前先过写操作护栏bl deploy list --status RUNNING 查是否已有同模型部署可复用;bl deploy models --source custom|base 确认可用 plan;mu/ptu 必须先取得用户计费确认。

⚠️ 关键避坑:微调后的模型不能直接用微调输出名调用,会 404 Model not exist。必须先创建部署。(链路 B 部署基座同理——直接调用走的是公共推理,不经过你的部署实例。)

bl deploy <模态> create \
  --model-name <finetuned-output> \   # 微调输出名(链路A) 或基座名(链路B)
  --display-name <display-name> \
  --plan <lora|ptu|mu> \              # 见下方说明
  --output json
  • 模态段text / audio / image)须与部署模型模态匹配;三个模态子命令 flag 完全相同。
  • --model-name:链路 A 传第 2 步的 finetuned_output;链路 B 直接传基座模型名。
  • --plan
    • 文本微调模型默认 lora(token 计费),也可用 mu
    • 音频 TTS 微调模型只支持 mu(不支持 lora / ptu),需 --deploy-spec + --capacity
    • 图像生成微调模型只支持 lora(不支持 mu / ptu)。
    • 链路 B 基座通常只支持 ptu/mu不支持 lora
    • 各 plan 必填参数与计费细则见 references/deploy.md
  • --deploy-spec:mu plan 的部署规格(如 dps-20260521172224-1vabse),省略时自动从 catalog 匹配。
  • 不确定支持哪些 plan:链路 A 用 bl deploy models --source custom,链路 B 用 bl deploy models --source base,按返回的 plans 选。

⚠️ 避坑(最高频错误):--model-name 与推理命令的 --model 含义不同——deploy <模态> create --model-name 传导出模型名,响应返回的 output.deployed_model 才是部署实例 id,推理命令 --model 必须用 deployed_model不要复用。详见 references/deploy.md

从响应记下:output.deployed_model

第 6 步:等待部署就绪(异步)

Monitor command: bash <本技能目录>/scripts/wait.sh deploy <DEPLOYED_MODEL>

<本技能目录> 同第 3 步。每 15s 轮询,RUNNING 即就绪(FAILED/STOPPED 终止)。

⚠️ 避坑:状态传播延迟。 部署刚到 RUNNING 时立即调用,可能短暂返回 404 Model not exist——这是服务端状态传播延迟,不是用错模型名。bl deploy get 也可能还显示 PENDING。约 1 分钟内会稳定,遇 404 等十几秒重试即可;若持续 404,先核对用的是 deployed_model 而非微调输出名。

第 7 步:调用与交付

推理命令因模态不同

文本模型:

bl text chat --model <DEPLOYED_MODEL> --message "你的问题"

音频 TTS 模型:

bl speech synthesize --model <DEPLOYED_MODEL> --voice default --text "你要合成的文本" --out result.mp3

图像生成模型(异步 API,需触发词):

# 详见 references/image.md —— 需 X-DashScope-Async 头 + prompt 含触发词

--model 必须用 deploy <模态> create 响应中的 deployed_model不是微调输出名。音频 TTS 的 --voice 固定为 default。图像生成需异步调用且 prompt 包含触发词。详见对应模态参考文件。

向用户交付时给出:

  • 部署实例 iddeployed_model)——调用用它,不是微调输出名
  • 一条可直接运行的推理示例命令
  • 常用运维命令:bl deploy get --deployed-model <id> 查状态;bl deploy delete --deployed-model <id> 删除部署;bl finetune list 查历史任务。

收尾提示

  • 闲置计费与删除lora 闲置一般不计费;mu/ptu 闲置也计费,不用要清理;bl deploy delete 只能删 STOPPED/FAILED 的部署,RUNNING 的 mu/ptu 可先 bl deploy pause(停止计费)再删。细则见 references/deploy.md
  • 复用数据集:多次训练同一数据时,先 bl dataset upload 拿 file-id,再用 --datasets <file-id> 避免重复上传。
  • 效果不好:优先加数据(量与质量),其次调 n-epochs/learning-rate,最后才考虑全参 sft。小数据集(<100 条)效果上限有限,要管理预期。

Embed badges

Add these to your README to show the skill's verification status.

SkillSafe verified badge
Verified badge
[![SkillSafe verified badge](https://api.skillsafe.ai/v1/badge/@modelstudioai/bailian-train-deploy/verified)](https://skillsafe.ai/skill/@modelstudioai/bailian-train-deploy/)
Installs badge
Installs badge
[![Installs badge](https://api.skillsafe.ai/v1/badge/@modelstudioai/bailian-train-deploy/installs)](https://skillsafe.ai/skill/@modelstudioai/bailian-train-deploy/)
Scan badge
Scan badge
[![Scan badge](https://api.skillsafe.ai/v1/badge/@modelstudioai/bailian-train-deploy/scan)](https://skillsafe.ai/skill/@modelstudioai/bailian-train-deploy/)
Eval pass rate badge
Eval pass rate
[![Eval pass rate badge](https://api.skillsafe.ai/v1/badge/@modelstudioai/bailian-train-deploy/eval)](https://skillsafe.ai/skill/@modelstudioai/bailian-train-deploy/)