ms-swift(ModelScope SWIFT,Scalable lightWeight Infrastructure for Fine-Tuning)是魔搭社区主推的 LLM 训练—推理—部署工具集,对 Qwen、GLM、InternLM 等国产权重与 ModelScope 数据集原生友好。选型见 03-00 横向对比。
段末注释:ModelScope(魔搭)是阿里云推出的开源模型与数据集社区平台;SWIFT 为其配套的高效微调框架。
系列索引:微调技术路线导读 | 实战可参考 AMD 魔搭下载权重
一、定位
| 优势 | 相对 LLaMA-Factory |
|---|---|
| ModelScope 模型/数据一键拉取 | Factory 偏 HF Hub |
| Qwen 全系 template 维护及时 | 国产模型同样强但生态中心不同 |
| 训练后可接 swift 推理/部署 | 各有导出能力 |
适合:已用魔搭下模型、Qwen 系、国内网络环境。
二、安装
1 | pip install ms-swift -U |
建议与 ModelScope 账号、modelscope SDK 配合下载私有或 gated 权重。
三、数据准备
支持 messages JSONL、Alpaca、自定义 preprocessor。示例 train.jsonl:
1 | {"messages": [{"role": "user", "content": "文本"}, {"role": "assistant", "content": "joy"}]} |
四、CLI 微调(LoRA SFT)
典型命令结构(参数名随版本演进,以官方文档为准):
1 | swift sft \ |
| 参数族 | 含义 |
|---|---|
model_type |
内置架构与 template 映射 |
sft_type |
lora / full / qlora 等 |
dataset |
已注册或本地路径 |
max_length |
等同 max_length / cutoff_len |
五、QLoRA 与多卡
- QLoRA:
--sft_type qlora+ 量化相关 flag(见当前版文档)。 - 多卡:
NPROC_PER_NODE=4 swift sft ...或 DeepSpeed 参数。
显存策略叠加 07-01;ROCm 环境参考 AMD 实战用 BF16 LoRA 避 QLoRA 坑。
六、DPO / RLHF
1 | swift rlhf --rlhf_type dpo ... |
数据需偏好对;概念见 01-03、06-01 DPOTrainer。swift 封装了流程,深度定制仍可用 TRL。
七、推理与导出
1 | swift infer --ckpt_dir output/qwen-emotion-lora |
支持 merge LoRA、导出为 Hugging Face 格式,便于 Ollama/vLLM 部署。
八、与 SFTTrainer 对照
| 项 | ms-swift | SFTTrainer |
|---|---|---|
| 模型来源 | ModelScope 优先 | Hugging Face Hub |
| 配置 | CLI 参数 / json | Python |
| 评估 | 内置 + 可扩展 | 完全自控 04 |
| 可复现 | 保存完整 CLI | 保存脚本 + SFTConfig |
九、常见踩坑
| 现象 | 对策 |
|---|---|
model_type 选错 |
与 checkpoint 架构严格对应 |
| 下载超时 | modelscope 缓存目录、镜像 |
| template 错误 | 用 qwen 系 instruct 的默认 template |
| 与 HF 路径混用 | 统一 model_id_or_path 来源 |
十、小结
ms-swift = 魔搭生态的一站式微调;Qwen/国产模型首选之一。国际化或多 TRL 定制场景可并列使用 LLaMA-Factory 或 SFTTrainer。
横向对比:03-00