持续更新 | 大模型与多模态训练部署利器:魔搭社区ms-swift框架完全指南
这篇博文主要围绕 SWIFT(Scalable lightWeight Infrastructure for Fine-Tuning)展开。它欢迎各类贡献,如 Feature PR、Bug 反馈等。博文中介绍了丰富的数据集,包括多种 VCR、MMBench 等相关数据集,还给出了数据集具体介绍的查看链接。同时,提供了中英文文档、论文链接等资源,方便用户了解。另外,还有关于许可的说明,框架使用 Ap
SWIFT (Scalable lightWeight Infrastructure for Fine-Tuning)

论文 | 中文文档 | Swift2.x中文文档 | Swift3.x中文文档
1. 框架介绍
-
ms-swift 是魔搭社区提供的大模型与多模态大模型微调部署框架,具有丰富的功能和广泛的支持,以下是其主要介绍:
模型与多模态模型支持
- 模型数量及类型:现已支持 450 + 大模型与 150 + 多模态大模型的训练(包括预训练、微调、人类对齐)、推理、评测、量化与部署。具体模型包括 Qwen2.5、InternLM3、GLM4、Llama3.3、Mistral、DeepSeek - R1、Yi1.5、TeleChat2、Baichuan2、Gemma2 等大模型,以及 Qwen2.5 - VL、Qwen2 - Audio、Llama3.2 - Vision、Llava、InternVL2.5、MiniCPM - V - 2.6、GLM4v、Xcomposer2.5、Yi - VL、DeepSeek - VL2、Phi3.5 - Vision、GOT - OCR2 等多模态大模型。
- 全流程支持:支持 All - to - All 全模态模型的训练到部署全流程。
训练技术汇集
汇集了最新的训练技术,包括 LoRA、QLoRA、Llama - Pro、LongLoRA、GaLore、Q - GaLore、LoRA + 、LISA、DoRA、FourierFt、ReFT、UnSloth、和 Liger 等。
推理、评测与部署
- 加速支持:支持使用 vLLM 和 LMDeploy 对推理、评测和部署模块进行加速。
- 量化支持:支持使用 GPTQ、AWQ、BNB 等技术对大模型和多模态大模型进行量化。
其他功能特点
-
数据集支持
- 内置数据集:内置 150 + 预训练、微调、人类对齐、多模态等各种类型的数据集。
- 自定义支持:支持自定义数据集。
-
硬件支持:支持 CPU、RTX 系列、T4/V100、A10/A100/H100、Ascend NPU 等硬件。
-
分布式训练:支持分布式数据并行(DDP)、device_map 简易模型并行、DeepSpeed ZeRO2 ZeRO3、FSDP 等分布式训练技术。
-
界面支持:提供基于 Gradio 的 Web - UI 界面。
-
插件化与拓展:支持自定义模型和数据集拓展,支持对 loss、metric、trainer、loss - scale、callback、optimizer 等组件进行自定义。
-
工具箱能力:除了对大模型和多模态大模型的训练支持外,还支持其推理、评测、量化和部署全流程。
-
推理加速:支持 PyTorch、vLLM、LmDeploy 推理加速引擎,并提供 OpenAI 接口,为推理、部署和评测模块提供加速。
-
模型评测:以 EvalScope 作为评测后端,支持 100 + 评测数据集对纯文本和多模态模型进行评测。
支持的模型和训练集
支持的模型和数据集 — swift 3.1.0.dev0 文档
| 模型类型 | 模型标识 |
|---|---|
| DeepSeek 系列 | deepseek, deepseek_coder, deepseek_vl, deepseek_janus, deepseek_v2_5, deepseek_r1, deepseek_vl2, deepseek_janus_pro |
| Emu3 系列 | emu3_gen, emu3_chat |
| Gemma 系列 | gemma, paligemma |
| ChatGLM 系列 | chatglm2 |
| GLM 系列 | glm4v, glm4, glm_edge_v |
| CodeGeeX 系列 | codegeex4 |
| LongWriter 系列 | longwriter_llama |
| CogAgent 系列 | cogagent_chat, cogagent_vqa |
| CogVLM 系列 | cogvlm, cogvlm2, cogvlm2_video |
| Llama 系列 | llama, llama3, llama3_2, llama3_2_vision, llama3_1_omni |
| Qwen 系列 | qwen, qwen2_5, qwen2_5_math, qwen2_5_math_prm, qwen_vl, qwen_audio, qwen2_audio, qwen2_vl, qwen2_5_vl |
| Qvq 系列 | qvq |
| Ovis 系列 | ovis1_6, ovis1_6_llama3 |
| Marco 系列 | marco_o1 |
| Got OCR 系列 | got_ocr2 |
| Idefics 系列 | idefics3 |
| InternLM 系列 | internlm, internlm2, internlm2_reward |
| XComposer 系列 | ixcomposer2, xcomposer2_5, xcomposer2_4khd |
| Florence 系列 | florence |
| Phi 系列 | phi3, phi4, phi3_vision |
| InternVL 系列 | internvl, internvl_phi3, internvl2, internvl2_phi3, internvl2_5 |
| Llava 系列 | llava1_5_hf, llava_next_video_hf, llava1_6_mistral_hf, llava1_6_vicuna_hf, llava1_6_yi_hf, llama3_llava_next_hf, llava_next_qwen_hf, llava_onevision_hf, llava_llama3_1_hf, llava_llama3_hf, llava1_6_mistral, llava1_6_yi, llama3_llava_next, llava_next_qwen |
| Default 系列 | default |
| ModelScope Agent 系列 | modelscope_agent |
| Baichuan 系列 | baichuan |
| Numina 系列 | numina |
| Mistral 系列 | mistral_nemo |
| Xverse 系列 | xverse |
| Yuan 系列 | yuan |
| Ziya 系列 | ziya |
| Skywork 系列 | skywork, skywork_o1 |
| Bluelm 系列 | bluelm |
| CodeFuse 系列 | codefuse_codellama, codefuse |
| Zephyr 系列 | zephyr |
| Sus 系列 | sus |
| Orion 系列 | orion |
| Telechat 系列 | telechat, telechat2 |
| Dbrx 系列 | dbrx |
| Mengzi 系列 | mengzi |
| C4AI 系列 | c4ai |
| WizardLM 系列 | wizardlm2, wizardlm2_moe |
| Atom 系列 | atom |
| Aya 系列 | aya |
| Megrez 系列 | megrez, megrez_omni |
| Minicpm 系列 | minicpm, minicpmv, minicpmv2_5, minicpmv2_6, minicpmo2_6 |
| Minimax 系列 | minimax, minimax_vl |
| Molmo 系列 | molmo |
| Mplug Owl 系列 | mplug_owl2, mplug_owl3, mplug_owl3_241101 |
| Doc Owl 系列 | doc_owl2 |
| OpenBuddy 系列 | openbuddy, openbuddy2 |
| Pixtral 系列 | pixtral |
| Valley 系列 | valley |
| Yi 系列 | yi_coder, yi_vl |
支持的训练方法
| 方法 | 全参数 | LoRA | QLoRA | Deepspeed | 多模态 |
|---|---|---|---|---|---|
| 预训练 | ✅ | ✅ | ✅ | ✅ | ✅ |
| 指令监督微调 | ✅ | ✅ | ✅ | ✅ | ✅ |
| DPO训练 | ✅ | ✅ | ✅ | ✅ | ✅ |
| 奖励模型训练 | ✅ | ✅ | ✅ | ✅ | ✅ |
| PPO训练 | ✅ | ✅ | ✅ | ✅ | ❌ |
| KTO训练 | ✅ | ✅ | ✅ | ✅ | ✅ |
| CPO训练 | ✅ | ✅ | ✅ | ✅ | ✅ |
| SimPO训练 | ✅ | ✅ | ✅ | ✅ | ✅ |
| ORPO训练 | ✅ | ✅ | ✅ | ✅ | ✅ |
| 分类模型训练 | ✅ | ✅ | ✅ | ✅ | ✅ |
2. 快速接入指南
使用pip进行安装:
pip install ms-swift -U -i https://mirrors.aliyun.com/pypi/simple/
运行环境:
| 范围 | 推荐 | 备注 | |
|---|---|---|---|
| python | >=3.8 | 3.10 | |
| cuda | cuda12 | 使用cpu、npu、mps则无需安装 | |
| torch | >=2.0 | ||
| transformers | >=4.33 | 4.48.1 | |
| modelscope | >=1.19 | ||
| peft | >=0.11.0,<0.15.0 | ||
| trl | >=0.13,<0.15 | 0.14.0 | RLHF |
| vllm | >=0.5.1 | 0.6.5 | 推理/部署/评测 |
| lmdeploy | lmdeploy>=0.5,<0.6.5 | 0.6.4 | 推理/部署/评测 |
| deepspeed | 0.14.5 | 训练 |
更多可选依赖可以参考这里。
最简示例
这里给出使用ms-swift进行训练到部署到最简示例,具体可以查看examples。
- 若想使用其他模型或者数据集(含多模态模型和数据集),你只需要修改--model指定对应模型的id或者path,修改--dataset指定对应数据集的id或者path即可。
- 默认使用ModelScope进行模型和数据集的下载。如果要使用HuggingFace,指定--use_hf true即可。
-
高速下载方法:modelscope 魔搭社区模型下载
常用链接
| 常用链接 |
|---|
| 🔥命令行参数 |
| 支持的模型和数据集 |
| 自定义模型, 🔥自定义数据集 |
| 大模型教程 |
3. 版本追踪站(核心动态区)
大更新
- 🎁 2025.01.23: SWIFT支持了sample命令, 这是一个对CoT和RFT非常重要的命令。同时, 我们支持了一个强化微调脚本。
- 🎁 2024.12.04: SWIFT3.0大版本更新。请查看发布说明和更改。
- 🎉 2024.08.12: SWIFT论文已经发布到arXiv上,可以点击这里阅读。
- 🔥 2024.08.05: 支持使用evalscope作为后端进行大模型和多模态模型的评测。
- 🔥 2024.07.29: 支持使用vllm, lmdeploy对大模型和多模态大模型进行推理加速,在infer/deploy/eval时额外指定--infer_backend vllm/lmdeploy即可。
- 🔥 2024.07.24: 支持对多模态大模型进行人类偏好对齐训练,包括DPO/ORPO/SimPO/CPO/KTO/RM/PPO。
- 🔥 2024.02.01: 支持Agent训练!训练算法源自这篇论文。
小更新
🆕 v3.1.0 亮点速览
- 新增数据采样、强化微调训练等功能。
- 支持多种新模型。
- 增添新数据集。
🆕 v3.0 亮点速览
- 发布 ms-swift3.0,支持众多大模型与多模态大模型的训练、推理等。
- 汇集最新训练技术。
- 支持多种推理、量化加速技术。
- 提供 Web-UI 界面及丰富实践。
- 推出魔搭模型评测框架 EvalScope,支持多种模型和评测场景。
📅 更新日志墙
| 版本 | 发布日期 | 关键特性 | 文档直达 |
|---|---|---|---|
| 3.1.0 | 2025.02.07 | 强化微调 | ms-swift3.1.0 发布,多项新特性与新模型数据集来袭 |
| 3.0 | 2025.02.05 | 模型训练与评测全链路支持 | SWIFT & EvalScope:魔搭社区大模型微调部署与评测的强大利器 |
4. 深度技术解析
- 🔍 LoRA-Pro混合训练原理图解
- 🎯 多模态对齐训练实战(附数据集)
- ⚡ 量化部署性能优化手册
todo: 待更
5. 最佳实践
- 🐳V100 上用 ms-swift 框架部署 DeepSeek-R1-Distill-Qwen-7B 超全攻略
- 🐳V100 上用 ms-swift 框架部署 DeepSeek-R1-Distill-Qwen-14B 超全攻略
- 🌐 多模态问答系统搭建
todo: 待更
6. 开发者生态
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)