## 项目概述

ms-swift（Scalable lightWeight Infrastructure for Fine-Tuning）是 ModelScope 社区提供的大模型与多模态大模型微调和部署框架。它支持 600+ 纯文本大模型和 400+ 多模态大模型的训练（预训练、微调、人类对齐）、推理、评估、量化和部署。项目已发表于 AAAI 2025，并持续集成最新训练技术，如 Megatron 并行、GRPO 强化学习算法族等。

## 核心功能

- **模型支持**：支持 Qwen3、DeepSeek-V4、GLM-5.1、InternLM3、Llama4 等 600+ 文本模型，以及 Qwen3-VL、Qwen3-Omni、InternVL3.5、Ovis2.5 等 400+ 多模态模型。
- **训练任务**：覆盖预训练（CPT）、监督微调（SFT）、人类偏好对齐（DPO、KTO、RM、CPO、SimPO、ORPO 等）、强化学习（GRPO、DAPO、GSPO、SAPO、CISPO、CHORD、RLOO、Reinforce++ 等）。
- **轻量微调**：支持 LoRA、QLoRA、DoRA、LoRA+、LLaMAPro、LongLoRA、LoRA-GA、ReFT、RS-LoRA、Adapter、LISA 等多种方法。
- **分布式训练**：支持 DDP、DeepSpeed ZeRO2/3、FSDP/FSDP2、Megatron 并行（TP/PP/CP/EP 等）。
- **多模态训练**：支持文本、图像、视频、音频混合模态数据训练，支持多模态 packing 技术。
- **推理与部署**：支持 Transformers、vLLM、SGLang、LMDeploy 推理加速引擎，提供 OpenAI 兼容接口。
- **量化**：支持 AWQ、GPTQ、FP8、BNB 量化导出。
- **评估**：集成 EvalScope 后端，支持 100+ 评估数据集。
- **Web-UI**：提供基于 Gradio 的零门槛训练、推理、评估、量化界面。

## 适用与不适用场景

**适用场景**：
- 需要对主流开源大模型或多模态模型进行微调（SFT、LoRA、全参数等）。
- 需要实施强化学习（如 GRPO）提升模型推理能力。
- 需要训练 Embedding、Reranker、序列分类等专用模型。
- 需要在大规模集群上训练 MoE 模型，或利用 Megatron 并行加速。
- 需要完整的训练-推理-评估-量化-部署流水线。

**不适用场景**：
- 需要训练 CLIP 类型的视觉编码器模型（当前不支持）。
- 需要训练非 LLM 架构的模型（如传统 CNN）。
- 需要依赖特定闭源库或未在支持列表中的硬件平台。

## 技术架构与依赖

- **语言**：Python（>=3.10，推荐 3.12）
- **深度学习框架**：PyTorch（>=2.0）
- **核心依赖**：transformers、modelscope、datasets、peft、trl、deepspeed、vllm、sglang、evalscope、gradio 等。
- **硬件支持**：NVIDIA GPU（A10/A100/H100/RTX 等）、AMD GPU（MI300 等）、CPU、MPS、昇腾 NPU、Metax GPU。
- **架构特点**：模块化设计，支持自定义模型、数据集、模板、损失函数、优化器、回调等。

## 安装与快速开始

**pip 安装**：
```shell
pip install ms-swift -U
```

**源码安装**：
```shell
git clone https://github.com/modelscope/ms-swift.git
cd ms-swift
pip install -e .
```

**快速开始（10 分钟自我认知微调）**：
```shell
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 \
    --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 \
    --warmup_ratio 0.05 \
    --dataloader_num_workers 4 \
    --model_author swift \
    --model_name swift-robot
```

## 典型使用方法

**监督微调（SFT）**：
```shell
CUDA_VISIBLE_DEVICES=0 swift sft \
    --model Qwen/Qwen3-4B-Instruct-2507 \
    --dataset AI-ModelScope/alpaca-gpt4-data-en \
    --tuner_type lora \
    --output_dir output
```

**强化学习（GRPO）**：
```shell
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
```

**推理**：
```shell
CUDA_VISIBLE_DEVICES=0 swift infer \
    --model Qwen/Qwen3-4B-Instruct-2507 \
    --stream true \
    --infer_backend transformers \
    --max_new_tokens 2048
```

**部署**：
```shell
CUDA_VISIBLE_DEVICES=0 swift deploy \
    --model Qwen/Qwen3-4B-Instruct-2507 \
    --infer_backend vllm
```

**评估**：
```shell
CUDA_VISIBLE_DEVICES=0 swift eval \
    --model Qwen/Qwen3-4B-Instruct-2507 \
    --infer_backend sglang \
    --eval_backend OpenCompass \
    --eval_dataset ARC_c
```

**量化**：
```shell
CUDA_VISIBLE_DEVICES=0 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
```

## 配置与部署要点

- **模型与数据集下载**：默认使用 ModelScope，可通过 `--use_hf true` 切换至 HuggingFace。
- **自定义数据集**：支持多种格式（messages、alpaca、query-response 等），可通过 `--dataset <path>` 指定。
- **多模态训练**：需设置环境变量如 `MAX_PIXELS`、`VIDEO_MAX_PIXELS`、`FPS_MAX_FRAMES` 等。
- **分布式训练**：使用 `NPROC_PER_NODE`、`CUDA_VISIBLE_DEVICES` 控制进程数，支持 DeepSpeed、FSDP、Megatron。
- **部署**：支持 vLLM、SGLang、LMDeploy 后端，提供 OpenAI 兼容接口。
- **硬件适配**：支持 AMD GPU、昇腾 NPU、Metax GPU，需按文档配置相应环境。

## 限制、风险与许可证

- **许可证**：Apache License 2.0。
- **模型与数据集许可**：需遵循原始资源页面的许可。
- **已知限制**：
  - 不支持 CLIP 类型模型训练。
  - 部分功能（如 Liger-Kernel、SGLang）在 NPU 上暂不支持。
  - 量化/QLoRA 在 NPU 上未完全验证。
  - 强化学习训练可能不稳定，需调整超参数。
- **风险**：训练大模型需要较高硬件资源，需注意显存和计算成本。

## 官方链接

- GitHub 仓库：https://github.com/modelscope/ms-swift
- 论文：https://arxiv.org/abs/2408.05517
- 英文文档：https://swift.readthedocs.io/en/latest/
- 中文文档：https://swift.readthedocs.io/zh-cn/latest/
- ModelScope 社区：https://modelscope.cn/home

## 信息来源和分析时间

- 信息来源：GitHub 仓库 README、文档目录、发布信息。
- 分析时间：2026-07-21（基于最新发布 v4.4.2）。