新手必看!ms-swift一键训练大模型保姆级教程
本文介绍了基于星图GPU平台自动化部署ms-swift镜像的完整流程,该平台支持一键启动大模型训练与微调任务。通过集成ms-swift框架,用户可高效完成如Qwen等主流大模型的LoRA微调、推理及部署,典型应用于个性化AI助手开发,显著降低技术门槛,提升开发效率。
新手必看!ms-swift一键训练大模型保姆级教程
在当前大模型技术快速发展的背景下,越来越多的开发者希望基于预训练模型进行微调和部署,以构建个性化的智能应用。然而,从模型下载、数据准备、训练配置到推理优化,整个流程涉及大量技术细节与环境依赖,对新手极不友好。
ms-swift 作为魔搭社区推出的轻量级大模型微调与部署框架,致力于解决这一痛点。它提供了一套完整、统一且高度自动化的工具链,支持600+纯文本大模型与300+多模态大模型的训练、推理、评测、量化与部署,真正实现“一条命令完成全流程”。
本文将带你从零开始,手把手使用 ms-swift 完成一次完整的模型微调任务,涵盖环境安装、数据准备、模型训练、推理测试到最终部署,适合所有刚接触大模型训练的新手。
1. 为什么选择 ms-swift?
在深入实践之前,先了解 ms-swift 的核心优势:
- 全链路支持:覆盖预训练(PT)、监督微调(SFT)、强化学习对齐(DPO/KTO/GRPO)、推理、评测、量化与部署。
- 开箱即用:内置150+常用数据集,支持 ModelScope 和 HuggingFace 双源下载,无需手动处理格式。
- 高效微调:全面支持 LoRA、QLoRA、DoRA 等参数高效微调方法,7B 模型仅需 9GB 显存即可训练。
- 多后端加速:集成 vLLM、SGLang、LMDeploy 推理引擎,显著提升吞吐与响应速度。
- Web UI 支持:提供图形化界面,非编程用户也能轻松完成训练与部署。
- 企业级能力:支持 DeepSpeed、FSDP、Megatron 分布式训练,适用于大规模集群场景。
这些特性使得 ms-swift 成为目前最适合作为入门首选的大模型训练框架之一。
2. 环境准备与安装
2.1 前置条件
确保你的系统满足以下基本要求:
- Python >= 3.8
- PyTorch >= 2.0
- CUDA 驱动(GPU 用户)
- 至少 16GB 内存(建议 32GB)
- 显卡显存 ≥ 12GB(如 RTX 3090/A10/A100)
2.2 安装 ms-swift
推荐使用 pip 进行安装:
pip install ms-swift -U
如果你需要使用特定功能(如 Megatron 或 vLLM),可安装扩展依赖:
# 安装 Megatron 支持
pip install 'ms-swift[megatron]'
# 安装 vLLM 推理后端
pip install 'ms-swift[vllm]'
# 安装全部可选依赖(推荐开发环境)
pip install 'ms-swift[all]'
验证是否安装成功:
swift --help
你应该能看到 sft, pt, rlhf, infer, deploy 等子命令列表。
3. 快速上手:10分钟完成 Qwen2.5-7B-Instruct 微调
我们将以 Qwen2.5-7B-Instruct 模型为例,使用 LoRA 对其进行自我认知微调(self-cognition tuning),整个过程控制在10分钟内完成。
3.1 启动训练命令
CUDA_VISIBLE_DEVICES=0 \
swift sft \
--model Qwen/Qwen2.5-7B-Instruct \
--train_type lora \
--dataset 'AI-ModelScope/alpaca-gpt4-data-zh#500' \
'AI-ModelScope/alpaca-gpt4-data-en#500' \
'swift/self-cognition#500' \
--torch_dtype bfloat16 \
--num_train_epochs 1 \
--per_device_train_batch_size 1 \
--per_device_eval_batch_size 1 \
--learning_rate 1e-4 \
--lora_rank 8 \
--lora_alpha 32 \
--target_modules all-linear \
--gradient_accumulation_steps 16 \
--eval_steps 50 \
--save_steps 50 \
--save_total_limit 2 \
--logging_steps 5 \
--max_length 2048 \
--output_dir output \
--system 'You are a helpful assistant.' \
--warmup_ratio 0.05 \
--dataloader_num_workers 4 \
--model_author swift \
--model_name swift-robot
3.2 参数详解
| 参数 | 说明 |
|---|---|
--model |
指定基座模型 ID,支持 ModelScope 或 HuggingFace 路径 |
--train_type |
训练方式,lora 表示使用 LoRA 微调 |
--dataset |
数据集名称,支持多个数据集拼接,#500 表示采样前500条 |
--lora_rank / --lora_alpha |
LoRA 的秩和缩放系数,影响训练灵活性与显存占用 |
--target_modules |
注入 LoRA 的模块,all-linear 自动识别所有线性层 |
--gradient_accumulation_steps |
梯度累积步数,用于弥补小 batch size 导致的训练不稳定 |
--output_dir |
输出目录,保存 checkpoint 和日志 |
--model_author / --model_name |
仅当数据集中包含 swift/self-cognition 时生效,用于定制模型身份 |
⚠️ 小贴士:若你在国内无法访问 HuggingFace,请保持默认使用 ModelScope 下载;如需切换至 HF,添加
--use_hf true。
4. 使用自定义数据集进行训练
虽然 ms-swift 提供了丰富的内置数据集,但在实际项目中我们往往需要使用自己的数据。
4.1 数据格式要求
ms-swift 支持标准 JSONL 格式,每行一个样本,字段包括:
{"instruction": "请介绍一下你自己", "input": "", "output": "我是通义千问,由阿里云研发的语言模型。"}
或对话形式:
{
"conversations": [
{"role": "user", "content": "你会写代码吗?"},
{"role": "assistant", "content": "当然可以,我可以生成 Python、JavaScript 等多种语言代码。"}
]
}
4.2 加载本地数据集
假设你的数据保存在 /path/to/my_data.jsonl,只需修改 --dataset 参数:
swift sft \
--model Qwen/Qwen2.5-7B-Instruct \
--dataset '/path/to/my_data.jsonl' \
--train_type lora \
--output_dir output-custom \
...
✅ 注意路径要用引号包裹,避免 shell 解析错误。
4.3 数据预处理建议
- 确保文本编码为 UTF-8
- 控制单条样本长度不超过
max_length - 避免空字段或非法 JSON 结构
- 可使用
pandas或jq工具清洗数据
更多自定义数据集规范详见官方文档:Custom-dataset
5. 模型推理与交互测试
训练完成后,进入 output 目录查看生成的 checkpoint 文件夹,例如 vx-xxx/checkpoint-xxx。
5.1 命令行交互推理
CUDA_VISIBLE_DEVICES=0 \
swift infer \
--adapters output/vx-xxx/checkpoint-xxx \
--stream true \
--temperature 0 \
--max_new_tokens 2048
运行后会进入交互模式:
User: 你是谁?
Assistant: 我是 swift-robot,由 swift 团队训练的助手。
5.2 使用 vLLM 加速推理
为了获得更高吞吐,可启用 vLLM 引擎并合并 LoRA 权重:
CUDA_VISIBLE_DEVICES=0 \
swift infer \
--adapters output/vx-xxx/checkpoint-xxx \
--stream true \
--merge_lora true \
--infer_backend vllm \
--vllm_max_model_len 8192 \
--temperature 0 \
--max_new_tokens 2048
✅
--merge_lora true会将 LoRA 权重合并回原始模型,生成独立可用的模型文件。
6. 模型导出与部署上线
完成训练与测试后,下一步是将模型推送到 ModelScope 或私有仓库,供后续服务调用。
6.1 导出并推送至 ModelScope
CUDA_VISIBLE_DEVICES=0 \
swift export \
--adapters output/vx-xxx/checkpoint-xxx \
--push_to_hub true \
--hub_model_id 'your-username/my-qwen-lora' \
--hub_token 'your-sdk-token' \
--use_hf false
你需要提前获取 ModelScope 的 Access Token,并替换对应字段。
6.2 本地部署为 API 服务
使用 swift deploy 启动本地 RESTful API:
CUDA_VISIBLE_DEVICES=0 \
swift deploy \
--model Qwen/Qwen2.5-7B-Instruct \
--adapters output/vx-xxx/checkpoint-xxx \
--infer_backend vllm \
--host 0.0.0.0 \
--port 8080
服务启动后,可通过 OpenAI 兼容接口调用:
curl http://localhost:8080/v1/completions \
-H "Content-Type: application/json" \
-d '{
"prompt": "请写一首关于春天的诗",
"max_tokens": 200
}'
7. Web UI 图形化操作(零代码训练)
对于不熟悉命令行的用户,ms-swift 提供了基于 Gradio 的 Web 界面,支持全程可视化操作。
7.1 启动 Web UI
swift web-ui
启动后浏览器访问 http://localhost:7860 即可进入界面。
7.2 功能概览
- 模型选择:下拉菜单选择支持的模型
- 数据集配置:上传本地文件或选择内置数据集
- 训练参数设置:滑块调节 batch size、learning rate 等
- 实时日志监控:查看 loss、step、GPU 利用率
- 推理测试面板:直接输入 prompt 查看输出
该方式特别适合教学、演示或快速原型验证。
8. 高级功能简介
8.1 多模态训练支持
ms-swift 支持 Qwen-VL、InternVL、MiniCPM-V 等多模态模型训练:
swift sft \
--model Qwen/Qwen-VL-Chat \
--dataset AI-ModelScope/MMMU#1000 \
--vision_tower_resized_height 448 \
--vision_tower_resized_width 448 \
--lora_rank 64 \
--output_dir output-vl
8.2 强化学习训练(DPO/GRPO)
支持主流偏好学习算法:
swift rlhf \
--rlhf_type dpo \
--model Qwen/Qwen2.5-7B-Instruct \
--dataset hjh0119/shareAI-Llama3-DPO-zh-en-emoji \
--train_type lora \
--output_dir output-dpo
8.3 模型量化导出(AWQ/GPTQ)
降低部署成本:
swift export \
--model Qwen/Qwen2.5-7B-Instruct \
--quant_bits 4 \
--quant_method awq \
--output_dir Qwen2.5-7B-Instruct-AWQ
量化后模型可在 LMDeploy/vLLM 中直接加载,推理显存降至约 6GB。
9. 总结
通过本篇教程,我们完成了从环境搭建到模型部署的完整闭环,展示了 ms-swift 在大模型训练中的强大能力与易用性。
核心收获
- 极简训练流程:一条命令即可完成 LoRA 微调,无需编写复杂脚本。
- 灵活的数据支持:既可用内置数据集快速验证,也可接入自定义数据。
- 高效的资源利用:QLoRA + 4-bit 量化让消费级显卡也能参与大模型训练。
- 多样化的部署选项:支持命令行、Web UI、API 服务等多种使用方式。
- 企业级扩展能力:涵盖分布式训练、多模态、强化学习等高级功能。
下一步建议
- 尝试使用不同模型(如 Llama3、GLM4)进行对比实验
- 探索 GRPO、DPO 等对齐训练方法提升模型质量
- 将训练流程集成进 CI/CD,实现自动化迭代
- 参考 ms-swift GitHub 示例库 获取更多实战案例
ms-swift 正在成为大模型开发者的“瑞士军刀”,无论你是学生、研究员还是工程师,都能从中获得生产力的跃迁。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)