新手必看!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 结构
  • 可使用 pandasjq 工具清洗数据

更多自定义数据集规范详见官方文档: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 在大模型训练中的强大能力与易用性。

核心收获

  1. 极简训练流程:一条命令即可完成 LoRA 微调,无需编写复杂脚本。
  2. 灵活的数据支持:既可用内置数据集快速验证,也可接入自定义数据。
  3. 高效的资源利用:QLoRA + 4-bit 量化让消费级显卡也能参与大模型训练。
  4. 多样化的部署选项:支持命令行、Web UI、API 服务等多种使用方式。
  5. 企业级扩展能力:涵盖分布式训练、多模态、强化学习等高级功能。

下一步建议

  • 尝试使用不同模型(如 Llama3、GLM4)进行对比实验
  • 探索 GRPO、DPO 等对齐训练方法提升模型质量
  • 将训练流程集成进 CI/CD,实现自动化迭代
  • 参考 ms-swift GitHub 示例库 获取更多实战案例

ms-swift 正在成为大模型开发者的“瑞士军刀”,无论你是学生、研究员还是工程师,都能从中获得生产力的跃迁。


获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐