阿里云 DSW / PAI 部署
ms-swift 是阿里魔搭出品,在阿里云 PAI(Platform for AI)和 DSW(Data Science Workshop)上有原生集成。本章把这条路过一遍。
12.1阿里云 DSW 简介
DSW = 在线 JupyterLab + GPU 实例,按小时计费:
| 规格 | GPU | 典型用途 |
|---|---|---|
| ecs.gn7i | A10 × 1 | 验证 7B LoRA |
| ecs.gn7e | A100-80GB × 1 | 训 13B |
| ecs.ebmgn7ix | A800 × 8 | 训 70B |
| ecs.ebmgn8v | H800 × 8 | 训 100B+ |
12.2预装镜像
DSW 提供预装 ms-swift 的镜像:
选择镜像 → 模型训练 → modelscope:1.20.0-pytorch2.4.0-gpu-py310-cu124-ubuntu22.04
启动后已经装好 ms-swift + transformers + peft + DeepSpeed + flash-attn,swift 命令直接可用。
12.3典型流程
- 创建 DSW 实例,挂 OSS 数据盘;
- 从魔搭下载模型(DSW 内访问免费);
- 跑
swift sft,结果写到 OSS; - 用
swift export合并 LoRA + 量化; - 推到 PAI-EAS 部署。
12.4OSS 挂载 + 数据持久化
# DSW 控制台 → 创建实例时配 OSS bucket
# 在 DSW 终端
ls /mnt/oss # 看到挂载的 bucket
# 数据集放 OSS
swift sft --dataset /mnt/oss/datasets/my_data.jsonl ...
# 输出也写 OSS
swift sft --output_dir /mnt/oss/outputs/run_001 ...
关键:DSW 实例本地盘按计费结束就清空,OSS 才永久保留。所有大数据 / 模型 ckpt 都该挂 OSS。
12.5PAI-DLC:多机训练
DSW 是单机,要训 70B+ 上多机用 PAI-DLC(Deep Learning Container):
# DLC 作业 YAML(提交到 PAI)
apiVersion: training.kubeflow.org/v1
kind: PyTorchJob
metadata:
name: swift-train-llama-70b
spec:
pytorchReplicaSpecs:
Master:
replicas: 1
template:
spec:
containers:
- name: pytorch
image: registry-vpc.cn-shanghai.aliyuncs.com/pai-dlc/swift:latest
command: ["torchrun", "--nproc_per_node=8", ...
"swift", "sft", "--model", "Qwen/Qwen2.5-72B", ...]
resources:
limits:
nvidia.com/gpu: 8
Worker:
replicas: 3
template:
spec:
containers: [...] # 同 Master
实战中 PAI 控制台有"提交 DLC 训练任务"的可视化界面,自动生成 YAML。
12.6PAI-EAS:推理部署
PAI-EAS = Elastic Algorithm Service,把模型部署成 HTTP 服务:
# 1) 上传模型到 OSS
ossutil cp -r ./merged_model oss://my-bucket/models/
# 2) 在 PAI 控制台 → EAS → 部署服务
- 模型路径:oss://my-bucket/models/merged_model
- 镜像:eas/inference/qwen-vllm
- GPU:A100-80GB × 1
- 服务名:my-qwen-prod
- 自动伸缩:QPS 阈值 / 实例数
部署完拿到 HTTP endpoint,可以用 OpenAI 兼容 client 调用。
12.7魔搭 Notebook 一键训
魔搭社区里"打开 Notebook"按钮可以直接跳到 DSW,模型卡片预先填好,最简一键体验:
魔搭 → 模型库 → Qwen2.5-7B-Instruct → "在 ModelScope NoteBook 中打开"
这种方式适合验证,不适合长期生产任务。
12.8成本对照
训 Qwen2.5-7B SFT LoRA 1 epoch 50k 样本(实际数):
| 方式 | GPU 小时 | 大概费用 |
|---|---|---|
| DSW A100-80GB × 1 | ~6 h | ~¥240 |
| DLC A800 × 8(同步训) | ~1 h | ~¥320 |
| 抢占式实例(spot) | — | 3-7 折 |
12.9Web UI:7 个 tab 完整功能
本章前面只提了"DSW 上跑训练"。其实 ms-swift 自带 Gradio Web UI,本地或 DSW 都能开:swift web-ui 默认 0.0.0.0:7860。看 swift/ui/app.py 的 7 个 tab:
| tab | 位置 | 能做什么 |
|---|---|---|
| LLMTrain | swift/ui/llm_train/ | 全参 / LoRA SFT 表单 + 训练监控 |
| LLMRLHF | swift/ui/llm_rlhf/ | DPO / KTO / RM / CPO / SimPO / ORPO / PPO 一表搞定 |
| LLMGRPO | swift/ui/llm_grpo/ | GRPO 一族算法(DAPO / GSPO / SAPO / CISPO / RLOO / REINFORCE++) |
| LLMInfer | swift/ui/llm_infer/ | 5 个 infer engine 切换 + chat 界面 |
| LLMExport | swift/ui/llm_export/ | 4 种量化导出 + Ollama |
| LLMEval | swift/ui/llm_eval/ | EvalScope 100+ benchmark |
| LLMSample | swift/ui/llm_sample/ | 数据采样 / API 蒸馏 |
关键设计点:
- 中英双语:
SWIFT_UI_LANG=en/zh切; - 级联下拉:选模型自动填 template / dataset / 默认超参;
- "Preview command":拼好 UI 表单后能反查生成的
swift sftCLI 命令,复制贴到脚本即可(LLaMA-Factory WebUI 同款思路); - 训练实时监控:内置 WandB 集成 + JSONL log tail。
12.10Agent 训练:20+ 模型族模板
ms-swift 把"训练工具调用 LLM"做成一等公民。swift/agent_template/ 下 20+ 个模板覆盖:
| 文件 | 对应模型族 | tool 格式关键词 |
|---|---|---|
qwen.py | Qwen2 / Qwen3 / Qwen3.5(中英版) | ✿FUNCTION✿ / ✿ARGS✿ / ✿RESULT✿ |
glm4.py | GLM-4 / GLM-4.5 | JSON function call |
deepseek_v3_1.py / deepseek_v4.py | DeepSeek V3.1 / V4 | 结构化 tool |
mistral.py | Mistral 系 | tool-use 扩展 |
llama.py | Llama 3+ / Llama 4 | native tool calling |
kimi_k25.py | Kimi K1.5+ | — |
minimax_m2.py | MiniMax M2 | — |
hermes.py | Nous-Hermes | — |
qwen3_coder.py | Qwen3-Coder 专用 | — |
react.py | ReAct 通用 | Thought: / Action: / Observation: |
基类 BaseAgentTemplate + mixin ReactCompatMixin 提供工具描述解析、多轮 Action→Observation 循环、多任务训练、reward shaping。
训练入口:
swift sft \
--model Qwen/Qwen3-32B \
--dataset agent_data \
--agent_template qwen_en # 选 ReAct + Qwen 风格
12.11云上多机 Ray YAML(生产首选)
DLC 上手动写 torchrun 多节点配置容易出错。v4 之后推荐用 Ray YAML(examples/yaml/megatron_ray/):
# grpo_ray.yaml
rlhf_type: grpo
model: Qwen/Qwen2.5-7B-Instruct
dataset: dapo_math
algorithm: dapo
ray:
train:
num_workers: 8 # Megatron TP/PP/EP worker
resources: {GPU: 1, CPU: 8}
rollout:
num_replicas: 4 # vLLM rollout 副本
engine: vllm
resources: {GPU: 2, CPU: 8}
启动:swift rlhf grpo_ray.yaml。train / rollout 各占一片卡,互不抢资源,比传统 DeepSpeed 多机训练易管理。
12.12这章你需要带走的
- ms-swift 在 DSW / PAI 上预装好,零环境配置;
- 数据和 ckpt 必须挂 OSS,本地盘按时计费消失;
- 单机用 DSW、多机用 DLC、推理部署用 EAS;
- 魔搭 Notebook 是"一键体验"的最快路径。