简介

MS-SWIFT​(Scalable lightWeight Infrastructure for Fine-Tuning)是ModelScope社区提供的官方框架,用于大语言模型和多模态大模型的微调与部署。它支持600+大语言模型和300+多模态大模型的训练(预训练、微调、人类对齐)、推理、评估、量化和部署,提供完整的解决方案。

🔗 ​GitHub地址​:

https://github.com/modelscope/ms-swift

🚀 ​核心价值​:

多模型支持 · 多模态训练 · 高效微调 · 完整生态 · 生产就绪

项目背景​:

  • 模型生态​:大模型应用生态快速发展

  • 微调需求​:模型微调需求日益增长

  • 技术复杂​:微调技术复杂度高

  • 资源限制​:计算资源限制问题

  • 统一工具​:统一微调工具需求

项目特色​:

  • 🤖 ​模型丰富​:支持900+模型

  • 🌈 ​多模态​:多模态模型支持

  • ⚡ ​高效训练​:多种高效训练方法

  • 🔧 ​配置简单​:统一配置接口

  • 🌐 ​生态完整​:完整训练部署生态

技术亮点​:

  • 最新技术​:集成最新训练技术

  • 性能优化​:训练推理性能优化

  • 扩展性强​:良好扩展架构

  • 生产验证​:生产环境验证

  • 社区活跃​:活跃开发社区


主要功能

1. ​核心功能体系

MS-SWIFT提供了一套完整的大模型训练解决方案,涵盖模型支持、训练方法、多模态处理、分布式训练、量化优化、推理部署、评估监控、配置管理、扩展支持、工具生态等多个方面。

模型支持功能​:

语言模型支持:
- Qwen系列: Qwen3, Qwen3-MoE, Qwen2.5等
- Llama系列: Llama4, Llama3等
- 国内模型: GLM4.5, InternLM3, DeepSeek-R1, TeleChat2, Baichuan2
- 国际模型: Mistral, Gemma2, Phi系列等
- 其他模型: 总计600+语言模型

多模态支持:
- 视觉语言: Qwen3-VL, Qwen3-Omni, LLaVA, MiniCPM-V-4
- 音频处理: Voxtral, 语音模型
- 视频理解: 视频多模态模型
- OCR模型: GOT-OCR2等
- 多模态总计: 300+多模态模型

模型特性:
- 最新版本: 支持最新模型版本
- 多规模: 不同参数规模
- 多许可: 多种开源许可
- 多框架: 多种模型框架
- 持续更新: 持续新增模型

技术兼容:
- HuggingFace: 完全兼容HF
- ModelScope: 原生支持
- 标准格式: 标准模型格式
- 自定义模型: 自定义支持
- 转换工具: 格式转换支持

训练方法功能​:

基础训练:
- 全参数训练: 全参数微调支持
- LoRA: 低秩适配训练
- QLoRA: 量化LoRA训练
- 多种适配器: Adapter等适配器

高级训练:
- 轻量技术: Llama-Pro, LongLoRA, GaLore, Q-GaLore, LoRA+, LISA, DoRA, FourierFt, ReFT, UnSloth, Liger
- 人类对齐: DPO, GRPO, RM, PPO, GKD, KTO, CPO, SimPO, ORPO
- 强化学习: RLHF训练支持
- 奖励建模: 奖励模型训练

分布式训练:
- 数据并行: DDP数据并行
- 模型并行: 张量并行,流水线并行
- DeepSpeed: ZeRO2/ZeRO3优化
- FSDP: 全分片数据并行
- Megatron: Megatron并行支持

量化训练:
- 训练量化: BNB, AWQ, GPTQ, AQLM, HQQ, EETQ
- 推理量化: 多种量化格式
- 混合精度: BF16/FP16混合精度
- 精度优化: 训练精度优化

多模态训练功能​:

模态支持:
- 图像模态: 图像理解生成
- 视频模态: 视频内容处理
- 音频模态: 语音处理生成
- 文本模态: 文本多模态结合
- 跨模态: 跨模态理解生成

任务支持:
- 视觉问答: VQA任务训练
- 图像描述: 图像描述生成
- 视觉定位: 视觉定位任务
- 语音识别: 语音转文本训练
- 语音合成: 文本转语音训练

训练特性:
- 统一框架: 统一训练框架
- 模态适配: 多模态适配器
- 损失函数: 多模态损失函数
- 评估指标: 多模态评估指标
- 数据格式: 多模态数据格式

应用场景:
- 智能客服: 多模态客服系统
- 内容创作: 多模态内容生成
- 教育辅助: 多模态教育应用
- 医疗影像: 医疗影像分析
- 自动驾驶: 多模态感知

2. ​高级功能

分布式训练功能​:

并行策略:
- 数据并行: 数据分布式训练
- 模型并行: 模型分布式训练
- 序列并行: 序列长度并行
- 流水线并行: 流水线并行训练
- 混合并行: 多种并行组合

DeepSpeed集成:
- ZeRO优化: ZeRO阶段1/2/3
- 卸载策略: CPU内存卸载
- 通信优化: 分布式通信优化
- 内存优化: 显存使用优化
- 配置管理: DeepSpeed配置

Megatron支持:
- 张量并行: Megatron张量并行
- 流水线并行: Megatron流水线
- 序列并行: 序列并行优化
- 模型优化: Megatron模型优化
- 性能监控: 分布式性能监控

多节点训练:
- 集群训练: 多机集群训练
- 网络优化: 高速网络优化
- 资源调度: 资源调度管理
- 故障容错: 故障恢复处理
- 弹性训练: 弹性伸缩训练

硬件支持:
- NVIDIA GPU: 全系列支持
- AMD GPU: AMD显卡支持
- Ascend NPU: 昇腾芯片支持
- 云平台: 主流云平台
- 混合硬件: 混合硬件环境

推理部署功能​:

推理引擎:
- PyTorch: 原生PyTorch推理
- vLLM: vLLM推理加速
- SGLang: SGLang推理引擎
- LMDeploy: LMDeploy推理
- 自定义引擎: 自定义推理支持

加速优化:
- 量化推理: 量化模型推理
- 批处理: 请求批处理优化
- 缓存优化: KV缓存优化
- 内存优化: 内存使用优化
- 性能优化: 推理性能优化

部署模式:
- 本地部署: 本地服务器部署
- 云部署: 云平台服务部署
- 边缘部署: 边缘设备部署
- 容器化: Docker容器部署
- 服务化: API服务部署

API支持:
- OpenAI API: OpenAI兼容API
- REST API: RESTful API接口
- WebSocket: 实时流式API
- 批量API: 批量处理API
- 自定义API: 自定义API接口

监控运维:
- 健康检查: 服务健康监控
- 性能监控: 性能指标监控
- 日志管理: 日志记录分析
- 告警系统: 智能告警系统
- 自动扩缩: 自动扩容缩容

评估量化功能​:

评估支持:
- 评估框架: EvalScope评估框架
- 数据集: 100+评估数据集
- 多模态评估: 多模态模型评估
- 自定义评估: 自定义评估指标
- 自动化评估: 自动评估流水线

评估类型:
- 能力评估: 模型能力评估
- 质量评估: 输出质量评估
- 安全评估: 安全性评估
- 偏见评估: 偏见公平性评估
- 效率评估: 推理效率评估

量化方法:
- 训练量化: QAT量化感知训练
- 后训练量化: PTQ后训练量化
- 权重量化: 权重量化优化
- 激活量化: 激活值量化
- 混合量化: 混合精度量化

量化格式:
- INT4: 4-bit整数量化
- INT8: 8-bit整数量化
- FP8: 8-bit浮点量化
- 二进制: 1-bit二值量化
- 混合精度: 混合精度量化

工具支持:
- 量化工具: 多种量化工具
- 格式转换: 格式转换工具
- 性能分析: 量化性能分析
- 质量验证: 量化质量验证
- 部署优化: 量化部署优化

安装与配置

1. ​环境准备

系统要求​:

硬件要求:
- GPU: NVIDIA GPU(推荐)或AMD GPU
- 显存: 根据模型和训练方式
- 内存: 16GB+系统内存
- 存储: 50GB+可用空间
- CPU: 多核处理器

软件要求:
- 操作系统: Linux, Windows, macOS
- Python版本: Python 3.9+
- PyTorch版本: PyTorch ≥2.0
- CUDA版本: CUDA 11.8+
- 其他依赖: 必要Python库

云平台支持:
- AWS: AWS云平台支持
- Azure: Azure云支持
- GCP: Google云平台
- 阿里云: 阿里云支持
- 其他云: 主流云平台

推荐环境​:

开发环境:
- Python 3.10/3.11: Python版本
- PyTorch 2.7.1: PyTorch版本
- CUDA 12.0+: CUDA版本
- 开发工具: VS Code等IDE

生产环境:
- Docker: 容器化部署
- Kubernetes: K8s集群
- 监控系统: 系统监控
- 日志管理: 日志系统
- 高可用: 高可用架构

网络要求:
- 模型下载: 需要下载模型
- 数据访问: 数据集访问
- 云服务: 云服务访问
- 社区资源: 社区资源访问
- 更新检查: 版本更新检查

2. ​安装步骤

基础安装​:

# 使用pip安装
pip install ms-swift -U

# 或从源码安装
git clone https://github.com/modelscope/ms-swift.git
cd ms-swift
pip install -e .

# 安装可选依赖
pip install ms-swift[flash-attn,deepspeed]

# 验证安装
swift --version

Docker安装​:

# 使用Docker
docker pull modelscope/ms-swift

# 运行容器
docker run -it --gpus all modelscope/ms-swift

# 或构建自定义镜像
docker build -t swift-custom .

云平台安装​:

# AWS SageMaker
# Google Colab
# Azure ML
# 阿里云PAI
# 其他云平台

3. ​配置说明

基础配置​:

# 基础训练配置示例
model: Qwen/Qwen2.5-7B-Instruct
dataset: AI-ModelScope/alpaca-gpt4-data-zh
train_type: lora
learning_rate: 1e-4
num_train_epochs: 3
per_device_train_batch_size: 1
gradient_accumulation_steps: 16
output_dir: ./output

# 高级配置
torch_dtype: bfloat16
lora_rank: 8
lora_alpha: 32
target_modules: all-linear
max_length: 2048

分布式配置​:

# DeepSpeed配置
deepspeed: zero2
deepspeed_config:
  train_batch_size: 32
  gradient_accumulation_steps: 1

# 或使用FSDP
fsdp: full_shard
fsdp_config:
  min_num_params: 1e8

量化配置​:

# 量化训练配置
quantization:
  quant_method: bnb
  quant_bits: 4
  use_double_quant: true

# 或AWQ量化
quantization:
  quant_method: awq
  quant_bits: 4

使用指南

1. ​基本工作流

使用MS-SWIFT的基本流程包括:环境准备 → 安装配置 → 数据准备 → 模型选择 → 配置设置 → 训练执行 → 监控调整 → 模型导出 → 推理测试 → 部署应用。

2. ​基本使用

命令行使用​:

训练命令:
# 基础微调训练
swift sft --model Qwen/Qwen2.5-7B-Instruct --dataset alpaca-gpt4-data-zh --train_type lora

# 预训练
swift pt --model Qwen/Qwen2.5-7B --dataset chinese-c4 --train_type full

# DPO训练
swift rlhf --rlhf_type dpo --model Qwen/Qwen2.5-7B-Instruct --dataset dpo-data

# 多模态训练
swift sft --model Qwen/Qwen3-VL --dataset multimodal-data --train_type lora

推理命令:
# 基础推理
swift infer --model Qwen/Qwen2.5-7B-Instruct --stream true

# LoRA推理
swift infer --model Qwen/Qwen2.5-7B-Instruct --adapters ./lora-checkpoint

# 批量推理
swift sample --model Llama-3.1-8B-Instruct --dataset alpaca-data --num_return_sequences 5

部署命令:
# 本地部署
swift deploy --model Qwen/Qwen2.5-7B-Instruct --infer_backend vllm

# API服务
swift app --model Qwen/Qwen2.5-7B-Instruct --infer_backend lmdeploy

评估命令:
# 模型评估
swift eval --model Qwen/Qwen2.5-7B-Instruct --eval_dataset ARC_c --eval_backend OpenCompass

量化命令:
# 模型量化
swift export --model Qwen/Qwen2.5-7B-Instruct --quant_bits 4 --quant_method awq

Python API使用​:

训练使用:
# 获取模型和分词器
model, tokenizer = get_model_tokenizer(model_id, ...)
template = get_template(model.template, tokenizer, ...)

# 准备训练模型
model = Swift.prepare_model(model, lora_config)

# 加载数据集
train_dataset = load_dataset(dataset_id, ...)
train_dataset = EncodePreprocessor(template)(train_dataset)

# 创建训练器
trainer = Seq2SeqTrainer(
    model=model,
    args=training_args,
    train_dataset=train_dataset,
    template=template
)

# 开始训练
trainer.train()

推理使用:
# 创建推理引擎
engine = PtEngine(model_id, adapters=[lora_checkpoint])

# 准备推理请求
infer_request = InferRequest(
    messages=[{'role': 'user', 'content': '你好'}]
)

# 执行推理
response = engine.infer([infer_request], request_config)

Web UI使用​:

启动命令:
# 启动Web UI
SWIFT_UI_LANG=en swift web-ui

界面功能:
- 训练配置: 可视化训练配置
- 模型选择: 图形化模型选择
- 数据管理: 数据集管理界面
- 训练监控: 实时训练监控
- 推理测试: 交互式推理测试

使用流程:
1. 选择模型: 从列表选择模型
2. 配置参数: 配置训练参数
3. 选择数据: 选择训练数据集
4. 开始训练: 启动训练任务
5. 监控进度: 监控训练进度
6. 测试推理: 测试模型推理

高级功能:
- 模板管理: 训练模板管理
- 实验管理: 实验记录管理
- 结果比较: 训练结果比较
- 模型导出: 模型导出功能
- 部署管理: 部署配置管理

3. ​高级用法

多模态训练使用​:

视觉训练:
# 视觉语言模型训练
swift sft --model Qwen/Qwen3-VL --dataset vqa-data --train_type lora

# 图像描述训练
swift sft --model LLaVA --dataset caption-data --train_type lora

# 视觉定位训练
swift sft --model MiniCPM-V --dataset grounding-data --train_type lora

音频训练:
# 语音识别训练
swift sft --model Voxtral --dataset asr-data --train_type lora

# 语音合成训练
swift sft --model TTS-model --dataset tts-data --train_type lora

多模态配置:
# 多模态数据配置
dataset:
  - path: multimodal-data
    type: vision-language
    image_size: 224
    audio_sample_rate: 16000

# 多模态训练参数
vision_tower: openai/clip-vit-large-patch14
audio_processor: openai/whisper-large

训练优化:
- 模态对齐: 多模态对齐优化
- 损失平衡: 多模态损失平衡
- 数据增强: 多模态数据增强
- 评估指标: 多模态评估指标
- 性能调优: 训练性能调优

生产部署使用​:

部署配置:
# vLLM部署配置
deploy:
  infer_backend: vllm
  vllm_max_model_len: 8192
  vllm_gpu_memory_utilization: 0.9

# LMDeploy部署配置
deploy:
  infer_backend: lmdeploy
  lmdeploy_tp_size: 1
  lmdeploy_max_batch_size: 32

API服务:
# 启动API服务
swift deploy --model Qwen2.5-7B-Instruct --infer_backend vllm --api_port 8000

# API调用示例
curl -X POST "http://localhost:8000/v1/completions" \
  -H "Content-Type: application/json" \
  -d '{"prompt": "你好", "max_tokens": 100}'

监控运维:
# 健康检查接口
curl "http://localhost:8000/health"

# 性能监控接口
curl "http://localhost:8000/metrics"

# 日志查看
curl "http://localhost:8000/logs"

高可用部署:
- 负载均衡: 多实例负载均衡
- 服务发现: 服务发现注册
- 故障转移: 自动故障转移
- 弹性扩缩: 自动扩容缩容
- 备份恢复: 数据备份恢复

大规模训练使用​:

分布式训练:
# 多卡训练
CUDA_VISIBLE_DEVICES=0,1,2,3 swift sft --model Qwen2.5-7B --train_type full --deepspeed zero2

# 多机训练
NPROC_PER_NODE=8 swift sft --model Qwen2.5-7B --train_type full --deepspeed zero3

# Megatron并行
swift sft --model Qwen2.5-7B --train_type full --megatron_config megatron_config.json

性能优化:
# 混合精度训练
torch_dtype: bfloat16
mixed_precision: true

# Flash Attention
use_flash_attn: true

# 梯度检查点
gradient_checkpointing: true

# 优化器配置
optimizer: adamw_bnb_8bit
learning_rate: 1e-4

资源管理:
# 内存优化
memory_efficient: true
offload_strategy: cpu

# 显存优化
gradient_accumulation_steps: 16
per_device_batch_size: 1

# 数据加载优化
dataloader_num_workers: 4
prefetch_factor: 2

应用场景实例

案例1:企业知识助手开发

场景​:企业内部知识管理助手

解决方案​:使用MS-SWIFT微调企业专用助手。

实施方法​:

  1. 数据收集​:收集企业文档和知识库

  2. 数据清洗​:清洗和格式化数据

  3. 模型选择​:选择合适基础模型

  4. 微调配置​:配置微调参数

  5. 训练执行​:执行模型微调

  6. 效果评估​:评估模型效果

  7. 部署集成​:集成到企业系统

企业价值​:

  • 知识利用​:企业知识高效利用

  • 效率提升​:员工工作效率提升

  • 成本节约​:开发成本显著降低

  • 定制化​:高度定制化解决方案

  • 竞争优势​:技术竞争优势建立

案例2:多语言客服系统

场景​:全球化企业客服系统

解决方案​:使用MS-SWIFT开发多语言客服。

实施方法​:

  1. 语言分析​:分析目标语言需求

  2. 数据准备​:准备多语言客服数据

  3. 模型适配​:适配多语言模型

  4. 训练优化​:优化多语言训练

  5. 质量评估​:多语言质量评估

  6. 系统集成​:集成到客服系统

多语言价值​:

  • 全球支持​:全球客户服务支持

  • 语言质量​:多语言服务质量

  • 文化适应​:文化背景适应

  • 扩展性强​:易于扩展新语言

  • 一致体验​:一致用户体验

案例3:智能教育助手

场景​:在线教育智能助手

解决方案​:使用MS-SWIFT开发教育助手。

实施方法​:

  1. 教育数据分析​:分析教育需求

  2. 内容整理​:整理教育内容

  3. 模型训练​:训练教育模型

  4. 效果验证​:验证教育效果

  5. 平台集成​:集成教育平台

  6. 持续优化​:基于反馈优化

教育价值​:

  • 个性化学习​:个性化学习体验

  • 教学效率​:教学效率提升

  • 资源优化​:教育资源优化

  • 可访问性​:教育可访问性

  • 效果提升​:学习效果提升

案例4:医疗问答系统

场景​:医疗健康问答系统

解决方案​:使用MS-SWIFT开发医疗问答系统。

实施方法​:

  1. 医疗数据收集​:收集医疗领域数据

  2. 数据合规处理​:合规化处理数据

  3. 领域模型训练​:医疗领域模型训练

  4. 安全审核​:设置安全审核机制

  5. 系统开发​:开发问答系统

  6. 医生审核​:医生团队内容审核

医疗价值​:

  • 信息获取​:便捷医疗信息获取

  • 初步咨询​:提供初步咨询建议

  • 资源优化​:优化医疗资源利用

  • 健康教育​:普及健康知识

  • 服务提升​:医疗服务水平提升

案例5:内容创作平台

场景​:新媒体内容创作平台

解决方案​:使用MS-SWIFT辅助内容创作。

实施方法​:

  1. 内容分析​:分析内容创作需求

  2. 风格学习​:学习内容风格特点

  3. 模型训练​:训练创作模型

  4. 质量保证​:内容质量保证

  5. 平台集成​:集成内容平台

  6. 用户反馈​:收集用户反馈优化

创作价值​:

  • 效率提升​:创作效率显著提升

  • 质量保证​:内容质量保证

  • 创意激发​:创作创意激发

  • 多样性​:内容多样性丰富

  • 成本优化​:创作成本优化


总结

MS-SWIFT作为一个功能强大的大模型微调框架,通过其丰富的模型支持、先进的训练技术和完整的工具生态,为各种大模型应用提供了全面的解决方案。

核心优势​:

  • 🤖 ​模型丰富​:支持900+模型

  • 🌈 ​多模态​:多模态模型支持

  • ⚡ ​高效训练​:多种高效训练方法

  • 🔧 ​易用性好​:简单易用的接口

  • 🌐 ​生态完整​:完整训练部署生态

适用场景​:

  • 企业知识助手开发

  • 多语言客服系统

  • 智能教育助手

  • 医疗问答系统

  • 内容创作平台

立即开始使用​:

# 快速安装
pip install ms-swift -U

# 示例训练
swift sft --model Qwen/Qwen2.5-7B-Instruct --dataset alpaca-gpt4-data-zh --train_type lora

资源链接​:

  • 🌐 ​项目地址​:GitHub仓库

  • 📖 ​文档​:完整文档

  • 💡 ​示例​:丰富示例

  • 💬 ​社区​:技术交流群

  • 🎥 ​演示​:视频演示

通过MS-SWIFT,您可以​:

  • 效率提升​:开发效率显著提升

  • 成本降低​:开发成本大幅降低

  • 质量保证​:模型质量有保证

  • 灵活定制​:高度灵活定制

  • 生态支持​:完整生态支持

特别提示​:

  • 💻 ​硬件准备​:准备合适硬件环境

  • 📊 ​数据质量​:确保数据质量

  • ⚙️ ​配置优化​:合理配置参数

  • 📋 ​流程遵循​:遵循最佳实践

  • 👥 ​社区参与​:积极参与社区

通过MS-SWIFT,体验高效模型训练的威力!​

未来发展​:

  • 🚀 ​更强能力​:更强大训练能力

  • 🌐 ​更多模型​:支持更多模型架构

  • 🤖 ​更智能​:更智能训练优化

  • 🔧 ​更易用​:更友好用户体验

  • 📊 ​更深入​:更深入功能支持

加入社区​:

参与方式:
- GitHub: 提交问题和PR
- 文档贡献: 贡献文档改进
- 示例分享: 分享使用示例
- 问题反馈: 提供使用反馈
- 功能建议: 提出功能建议

社区价值:
- 技术支持帮助
- 问题解答支持
- 经验分享交流
- 功能需求反馈
- 项目发展推动

通过MS-SWIFT,共同推动大模型技术的发展!​

许可证​:Apache 2.0开源许可证

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐