modelscope / ms-swift

modelscope/ms-swift

open_in_new前往仓库

使用PEFT或全参数对600+大语言模型(Qwen3.6、DeepSeek-V4、GLM-5.1、InternLM3、Llama4等)和300+多模态模型(Qwen3-VL、Qwen3-Omni、InternVL3.5、Ovis2.5、GLM4.5v、Gemma4、Llava、Phi4等)进行CPT/SFT/DPO/GRPO训练(AAAI 2025)。

项目概览

项目概述

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 安装:

pip install ms-swift -U

源码安装:

git clone https://github.com/modelscope/ms-swift.git
cd ms-swift
pip install -e .

快速开始(10 分钟自我认知微调):

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):

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):

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

推理:

CUDA_VISIBLE_DEVICES=0 swift infer \
    --model Qwen/Qwen3-4B-Instruct-2507 \
    --stream true \
    --infer_backend transformers \
    --max_new_tokens 2048

部署:

CUDA_VISIBLE_DEVICES=0 swift deploy \
    --model Qwen/Qwen3-4B-Instruct-2507 \
    --infer_backend vllm

评估:

CUDA_VISIBLE_DEVICES=0 swift eval \
    --model Qwen/Qwen3-4B-Instruct-2507 \
    --infer_backend sglang \
    --eval_backend OpenCompass \
    --eval_dataset ARC_c

量化:

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 仓库 README、文档目录、发布信息。
  • 分析时间:2026-07-21(基于最新发布 v4.4.2)。