SWIFT(ms-swift):魔搭社区的大模型与多模态微调部署框架
SWIFT(Scalable lightWeight Infrastructure for Fine-Tuning,可扩展轻量微调基础设施)是魔搭社区(ModelScope)开源的大模型与多模态大模型训练、推理、评测、量化与部署一体化框架,GitHub Star 数约 1.6 万,采用 Apache-2.0 协议。它支持 600+ 纯文本大模型与 400+ 多模态大模型的全流程训练,热门模型 Day0 支持,是目前国内生态最完整的大模型微调工具链之一。与 LLaMA Factory 等同类工具相比,ms-swift 的差异化在于:它不仅提供 transformers 后端的轻量微调,还内置了 Megatron 并行(TP/PP/CP/EP)、丰富的 GRPO 族强化学习算法、多模态 packing、vLLM/SGLang/LMDeploy 推理加速,以及从训练到部署的完整闭环。本文基于官方中文 README 完整整理,适合希望在单卡或多卡上微调 Qwen/DeepSeek/GLM 等国产模型、或做多模态大模型对齐的研究者与工程师。阅读后你应该能判断自己的硬件能跑哪类模型、该用 LoRA 还是全参数、SFT/GRPO/DPO 各自对应什么命令,以及如何把训练完的模型部署成 OpenAI 兼容接口,再决定是从单卡 LoRA 起步还是直接上 Megatron 多卡集群跑 MoE 全参数训练。
项目背景
ms-swift 由魔搭社区团队开发,论文 SWIFT: A Scalable lightWeight Infrastructure for Fine-Tuning 已于 2025 年被 AAAI 接收。项目最初面向「轻量微调」(LoRA/QLoRA 等),随着大模型训练范式从 SFT 扩展到 RLHF、GRPO、多模态、Megatron 并行,ms-swift 演进为覆盖预训练、指令微调、人类对齐、强化学习、Embedding/Reranker、推理、评测、量化、部署的全链路框架。2026 年 3 月发布 v4.0 大版本,支持 Qwen3、Qwen3.5、InternLM3、GLM4.5、DeepSeek-R1、Llama4 等主流模型,多模态侧覆盖 Qwen3-VL、Qwen3-Omni、Kimi-K3、InternVL3.5、MiniCPM-V-4、Ovis2.5、GLM4.5-V、DeepSeek-VL2 等。项目代码托管在 GitHub,模型与数据集默认从魔搭社区下载,也可通过 --use_hf true 切到 HuggingFace。对国内用户来说,默认走魔搭的下载速度通常更稳定。
核心特性
- 模型类型:支持 600+ 纯文本大模型、400+ 多模态大模型以及 All-to-All 全模态模型训练到部署全流程,热门模型 Day0 支持。这意味着新模型发布后往往几天内就能在 ms-swift 里找到对应示例;
- 数据集类型:内置 150+ 预训练、微调、人类对齐、多模态等各种任务数据集,并支持自定义数据集,用户只需准备数据集即可一键训练;
- 硬件支持:支持 NVIDIA GPU(A100/H100/RTX 系列等,CUDA)、AMD GPU(MI300 系列等,ROCm)、国产硬件(Ascend NPU、MetaX GPU、摩尔线程 GPU(MUSA))、Apple MPS 与 CPU,覆盖面在同类框架中最广;
- 轻量训练:支持 LoRA、QLoRA、DoRA、LoRA+、LLaMAPro、LongLoRA、LoRA-GA、ReFT、RS-LoRA、Adapter、LISA 等轻量微调方式,几乎涵盖了学术界主流的参数高效微调算法;
- 量化训练:支持对 BNB、AWQ、GPTQ、AQLM、HQQ、EETQ 量化模型进行训练,7B 模型训练只需 9GB 训练资源;
- 显存优化:GaLore、Q-Galore、UnSloth、Liger-Kernel、Flash-Attention 2/3 以及 Ulysses 和 Ring-Attention 序列并行技术支持,降低长文本训练显存占用;
- 分布式训练:支持分布式数据并行(DDP)、device_map 简易模型并行、DeepSpeed ZeRO2/ZeRO3、FSDP/FSDP2 以及 Megatron 等分布式训练技术;
- 多模态训练:支持多模态 packing 技术提升训练速度 100%+,支持文本、图像、视频和语音混合模态数据训练,支持 vit/aligner/llm 单独控制;
- Agent 训练:支持 Agent template,准备一套数据集可用于不同模型的训练;
- 训练任务:支持预训练和指令微调,以及 DPO、GKD、KTO、RM、CPO、SimPO、ORPO 等训练任务,支持 Embedding/Reranker 和序列分类任务;
- Megatron 并行技术:提供 TP/PP/SP/CP/ETP/EP/VPP 并行策略,显著提升 MoE 模型训练速度。支持 300+ 纯文本大模型和 100+ 多模态大模型的全参数和 LoRA 训练方法;
- 强化学习:内置丰富 GRPO 族算法,包括 GRPO、DAPO、GSPO、SAPO、CISPO、CHORD、RLOO、Reinforce++ 等,支持同步和异步 vLLM 引擎推理加速,可使用插件拓展奖励函数、多轮推理调度器以及环境;
- 全链路能力:覆盖训练、推理、评测、量化和部署全流程,不需要在多个工具之间切换;
- 界面训练:提供使用 Web-UI 界面的方式进行训练、推理、评测、量化,对新手友好;
- 推理加速:支持 Transformers、vLLM、SGLang 和 LMDeploy 推理加速引擎,并提供 OpenAI 接口,一行命令即可起服务;
- 模型评测:以 EvalScope 作为评测后端,支持 100+ 评测数据集对纯文本和多模态模型进行评测;
- 模型量化:支持 AWQ、GPTQ、FP8 和 BNB 的量化导出,导出的模型支持使用 vLLM/SGLang/LMDeploy 推理加速。
环境要求
| 依赖 | 范围 | 推荐 |
|---|---|---|
| python | >=3.10 | 3.12 |
| cuda | cuda12.8/13.0(CPU/NPU/MPS 无需) | |
| torch | >=2.0 | 2.8.0/2.11.0 |
| transformers | >=4.33 | 4.57.6/5.12.1 |
| modelscope | >=1.23 | |
| datasets | >=3.0,<4.8.5 | 3.6.0/4.8.4 |
| peft | >=0.11,<0.21 | |
| trl | >=0.15,<1.0 | 0.29.1(RLHF) |
| deepspeed | >=0.19.3,<0.20 | 0.19.7 |
| vllm | >=0.5.1 | 0.11.0/0.23.0(推理/部署) |
| sglang | >=0.4.6 | |
| evalscope | >=1.0 | |
| gradio | 5.32.1(Web-UI) |
安装
pip 安装(推荐):
pip install ms-swift -U
# 或使用 uv
pip install uv
uv pip install ms-swift -U --torch-backend=auto
从源码安装:
git clone https://github.com/modelscope/ms-swift.git
cd ms-swift
# main 分支为 swift4.x;swift3.x 请 git checkout release/3.12
pip install -e .
用 uv 安装可以更快解决依赖:uv pip install -e . --torch-backend=auto 会自动选择合适的 PyTorch 后端。
更多可选依赖见仓库 requirements/install_all.sh。如果要做 RLHF 实验,还需安装 trl;要做大规模分布式训练,需装 deepspeed;要用 vLLM/SGLang 推理加速,需单独安装对应引擎;Web-UI 依赖 gradio。官方推荐 Python 3.12、PyTorch 2.8/2.11、CUDA 12.8/13.0 组合,新模型对 transformers 版本要求较高,建议按 README 顶部 badge 给出的版本范围安装。
快速开始:10 分钟自我认知微调
官方示例:在单卡 3090 上对 Qwen3-4B-Instruct-2507 进行自我认知微调,约需 13GB 显存。「自我认知」指让模型学会回答「你是谁」,通过混入 swift/self-cognition 数据集并指定 --model_author swift、--model_name swift-robot 来塑造模型身份。
CUDA_VISIBLE_DEVICES=0 \
swift sft \
--model Qwen/Qwen3-4B-Instruct-2507 \
--tuner_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 \
--learning_rate 1e-4 \
--lora_rank 8 \
--lora_alpha 32 \
--target_modules all-linear \
--gradient_accumulation_steps 16 \
--max_length 2048 \
--output_dir output \
--warmup_ratio 0.05 \
--model_author swift \
--model_name swift-robot
要点:--model_author 和 --model_name 仅当数据集包含 swift/self-cognition 时生效;默认从 ModelScope 下载模型与数据集,要切到 HuggingFace 加 --use_hf true;换模型只需改 --model,换数据集只需改 --dataset。这里 #500 表示每个数据集取前 500 条,是快速跑通流程的小数据量设置。
训练完成后用 LoRA 权重推理:
CUDA_VISIBLE_DEVICES=0 \
swift infer \
--adapters output/vx-xxx/checkpoint-xxx \
--stream true \
--temperature 0 \
--max_new_tokens 2048
这里 --adapters 指向训练生成的 last checkpoint 文件夹;由于 adapters 目录里包含训练时的 args.json,swift 会自动读取模型名与 system 模板,不需要再手动传 --model;要关闭这个行为加 --load_args false。
合并 LoRA 并用 vLLM 加速推理:
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
推送到 ModelScope:
CUDA_VISIBLE_DEVICES=0 \
swift export \
--adapters output/vx-xxx/checkpoint-xxx \
--push_to_hub true \
--hub_model_id '<your-model-id>' \
--hub_token '<your-sdk-token>' \
--use_hf false
零门槛 Web-UI:执行 swift web-ui 即可在浏览器中完成训练、推理、评测、量化。Python API 也支持,伪代码见官方 notebook。对不熟悉命令行的用户,Web-UI 把模型选择、数据集、超参、输出目录都做成了表单,点一下就能开始训练。
训练到部署全流程示例
预训练(8×A100):
NPROC_PER_NODE=8 CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 \
swift pt \
--model Qwen/Qwen3-4B-Base \
--dataset swift/chinese-c4 \
--streaming true \
--tuner_type full \
--deepspeed zero2 \
--output_dir output \
--max_steps 10000
预训练用 swift pt 子命令,--streaming true 表示流式加载大语料,避免一次性把数据读进内存;--deepspeed zero2 用 ZeRO2 切分优化器状态。
指令微调(LoRA):
CUDA_VISIBLE_DEVICES=0 swift sft \
--model Qwen/Qwen3-4B-Instruct-2507 \
--dataset AI-ModelScope/alpaca-gpt4-data-zh \
--tuner_type lora \
--output_dir output
这是最常见的微调入口:--tuner_type lora 启用 LoRA,全参数训练改成 full,QLoRA 改成 qlora。
RLHF(DPO):
CUDA_VISIBLE_DEVICES=0 swift rlhf \
--rlhf_type dpo \
--model Qwen/Qwen3-4B-Instruct-2507 \
--dataset hjh0119/shareAI-Llama3-DPO-zh-en-emoji \
--tuner_type lora \
--output_dir output
swift rlhf --rlhf_type 后面接 dpo/kto/cpo/simpo/orpo/rm/ppo/grpo/gkd 等,一行切换偏好对齐算法。
Megatron-SWIFT 加速:
NPROC_PER_NODE=2 CUDA_VISIBLE_DEVICES=0,1 megatron sft \
--model Qwen/Qwen3-4B-Instruct-2507 \
--save_safetensors true \
--dataset AI-ModelScope/alpaca-gpt4-data-zh \
--tuner_type lora \
--output_dir output
megatron sft 子命令走 Megatron 并行后端,相比 swift sft 在 MoE 模型上提速显著;Mcore-Bridge 让 Megatron 训练像 transformers 一样简单,不需要学习另一套配置。
GRPO 强化学习(4 卡 + vLLM 协同):
CUDA_VISIBLE_DEVICES=0,1,2,3 NPROC_PER_NODE=4 \
swift rlhf \
--rlhf_type grpo \
--model Qwen/Qwen3-4B-Instruct-2507 \
--tuner_type lora \
--use_vllm true \
--vllm_mode colocate \
--dataset AI-MO/NuminaMath-TIR#10000 \
--output_dir output
这条命令展示了 ms-swift 的 RL 能力:用 vLLM 在同一张卡上协同做 rollout,GRPO 算法直接在 4 卡上跑数学推理数据集。官方支持的 GRPO 族算法包括 GRPO、DAPO、GSPO、SAPO、CISPO、CHORD、RLOO、Reinforce++,每种都支持全参数与 LoRA、多模态、多机。
其他常用命令:
# 推理
swift infer --model Qwen/Qwen3-4B-Instruct-2507 --infer_backend transformers
# 界面推理
swift app --model Qwen/Qwen3-4B-Instruct-2507 --lang zh
# 部署为 OpenAI 兼容服务
swift deploy --model Qwen/Qwen3-4B-Instruct-2507 --infer_backend vllm
# 采样(用于数据蒸馏/RL 训练数据生成)
swift sample --model Qwen/Qwen3-4B-Instruct-2507 --num_return_sequences 5
# 评测(基于 EvalScope/OpenCompass)
swift eval --model Qwen/Qwen3-4B-Instruct-2507 --infer_backend sglang \
--eval_backend OpenCompass --eval_dataset ARC_c
# FP8 量化导出
swift export --model Qwen/Qwen3-4B-Instruct-2507 --quant_method fp8 \
--dataset AI-ModelScope/alpaca-gpt4-data-zh --output_dir Qwen3-4B-Instruct-2507-FP8
这些命令共同构成了 ms-swift 的全链路:infer 是命令行对话,app 是 Gradio 界面,deploy 起 OpenAI 兼容服务,sample 用于批量生成推理数据(常用于 RL 训练或蒸馏),eval 接 EvalScope/OpenCompass 做基准测试,export 做量化导出与推送到 ModelScope。换模型只改 --model,换数据集只改 --dataset。
支持的训练任务
ms-swift 覆盖预训练(PT)、指令监督微调(SFT)、GRPO、GKD、PPO、DPO、KTO、奖励模型(RM)、CPO、SimPO、ORPO、Embedding、Reranker、序列分类等十几种任务;每种任务均支持全参数与 LoRA、QLoRA、DeepSpeed、多机、多模态组合。Megatron-SWIFT 进一步支持 MoE 模型与 FP8,任务覆盖 PT/SFT/GRPO/DPO/KTO/RM/Embedding/Reranker/序列分类。对研究团队而言,这意味着从预训练到对齐到 RL 的完整链路可以在同一套工具里完成,不需要在 transformers、Megatron、trl 等多个框架间手工搬运权重。ms-swift 还支持 Embedding/Reranker 训练,可直接用来做检索增强的向量模型与重排模型定制;序列分类任务则可用于做意图识别、情感分类等下游应用微调。
近期更新亮点
2026 年以来的重要更新包括:支持 EntroPack 灵活码率量化(可根据显存预算精细控制模型码率,支持 Transformers 推理和 LoRA 训练);支持 EmbeddingGemma-2(740M,多模态嵌入模型,支持文本/图像/视频/音频统一向量空间,支持 infonce loss 微调);Day0 支持 NVIDIA Nemotron-3.5-Super-VL-120B;支持 Decision 决策模型(类型化决策 System-1 打分模型,通过单次前向传播输出每个问题选项集上的校准概率,内置 distill_rps、smooth_brier、ce_rps 等 proper scoring rule 损失函数);支持 Xing4.0-29B-A4B 的 transformers 后端训练与推理;支持 DeepSeek-V4.1-Flash 的 Megatron-SWIFT 全参数训练(SFT 与 GRPO)以及 vLLM 推理;支持腾讯混元 WeMM-Embedding 多模态嵌入模型;Day0 支持 Qwen3.8-Flash-Next;支持 OpenMOSS MOSS-VL 与 Muse-Glimmer-30B 多模态模型;支持 moonshotai Kimi-K3 的推理(含 XTML 对话模板、思考通道与工具调用);Megatron-Ray 支持 GRPO/GKD;2025 年 11 月起 Megatron GRPO 与 Mcore-Bridge(让 Megatron 像 transformers 一样简单易用)上线;2025 年 9 月支持 Ulysses 与 ring-attention 结合(输入序列可切分成任意数量块,不再受 num_heads 限制);2026 年 3 月发布 v4.0。整体节奏看,ms-swift 基本保持「新模型发布后几天内出 SFT 示例、新算法发布后几周内集成」的迭代速度。
FAQ
Q:我想自己准备数据集怎么办?
A:参考官方自定义数据集文档组织格式,然后 --dataset <dataset_path> 即可;内置 150+ 数据集可直接 AI-ModelScope/xxx#行数 引用。多模态数据集需要把图像/视频路径和文本按 JSON 字段对齐,ms-swift 提供了统一的预处理模板,按字段填好即可。
Q:显存不够怎么办? A:依次尝试 QLoRA、量化训练(BNB/AWQ/GPTQ,7B 仅需 9GB)、GaLore/Liger-Kernel、Flash-Attention、Ulysses/Ring-Attention 序列并行;多卡用 DeepSpeed ZeRO2/3 或 Megatron。官方宣称 QLoRA 路线下 7B 模型只要 9GB 训练资源,一张 16GB 消费级显卡即可起步。
Q:支持国产硬件吗? A:支持华为昇腾 Ascend NPU、天数智芯 MetaX GPU、摩尔线程 MUSA GPU,以及 Apple MPS 与纯 CPU。这意味着没有 NVIDIA 显卡也能跑通大部分微调流程,只是训练速度会比 CUDA 慢一些,适合做实验验证或小数据量微调。
Q:ms-swift 和 LLaMA Factory 怎么选?
A:两者都支持 LoRA/SFT/DPO 等常见任务,上手门槛都不高。ms-swift 的优势在 Megatron 并行、MoE 模型训练、GRPO 族 RL 算法、多模态 packing 和国内硬件生态;如果你主要做 Qwen/DeepSeek 系 MoE 的大规模训练或需要国产 NPU 支持,ms-swift 更合适;如果只做单卡 LoRA 实验,两者差异不大;要做多模态或国产硬件,ms-swift 更顺手。
Q:训练完怎么对外提供服务?
A:swift deploy --model <path> --infer_backend vllm 会起一个 OpenAI 兼容接口;要先导出量化模型用 swift export --quant_method fp8,再部署。导出的模型可直接用 vLLM/SGLang/LMDeploy 加速,不需要再装 ms-swift 也能跑。
相关链接
- 仓库:modelscope/ms-swift
- 中文文档:swift.readthedocs.io/zh-cn
- 论文:arXiv:2408.05517
- 模型仓库:ModelScope
- 命令行参数:swift.readthedocs.io 命令行参数
- 支持的模型与数据集:官方列表
ms-swift 的文档体系非常完整,除了命令行参数与模型列表,还提供 Megatron-SWIFT、GRPO 进阶(DAPO/GSPO/SAPO/CISPO/CHORD 等)、自定义模型/数据集、Web-UI、Ray 训练等专题文档,遇到具体问题可以直接查对应章节。仓库 examples 目录按模型和任务组织,每个新模型都有对应 shell 脚本可复制,遇到问题先看 examples 比从头写命令更快。
引用
@misc{zhao2024swiftascalablelightweightinfrastructure,
title={SWIFT: A Scalable lightWeight Infrastructure for Fine-Tuning},
author={Yuze Zhao and others},
year={2024},
eprint={2408.05517},
archivePrefix={arXiv},
primaryClass={cs.CL}
}
总体来看,ms-swift 把「从模型下载到训练、对齐、量化、部署」串成了一条命令行链路:swift sft 做微调,swift rlhf --rlhf_type grpo 做强化学习,swift export 做量化与推送,swift deploy 起服务,swift eval 做评测。对国内研究者和企业用户来说,它既支持消费级显卡上的 LoRA 实验,也能扩到多机 Megatron 集群跑 MoE 大模型,是目前大模型定制化最完整的开源工具之一。如果你的目标是在 Qwen3、DeepSeek、GLM 等国产开源模型上做业务定制,ms-swift 是最值得先试的起点;它同时被魔搭社区作为官方教程与课程(LLM-tutorial)的配套工具,中文文档与示例覆盖度在同类框架中最高,遇到问题通常能在官方文档或 examples 目录找到现成脚本。