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. 最佳实践

todo: 待更

6. 开发者生态

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐