大模型垂直领域微调系列(二):ms-swift 框架全景

作者:吴佳浩
撰稿时间:2026-3-9
测试版本:ms-swift v4.0.1
目录
- [1. ms-swift 是什么](#1. ms-swift 是什么)
- [2. 核心能力全景](#2. 核心能力全景)
- [3. 整体架构与模块设计](#3. 整体架构与模块设计)
- [4. 支持的模型](#4. 支持的模型)
- [5. 支持的训练方法](#5. 支持的训练方法)
- [6. 推理与部署模块](#6. 推理与部署模块)
- [7. 评测模块](#7. 评测模块)
- [8. 量化与导出模块](#8. 量化与导出模块)
- [9. Megatron-SWIFT 并行训练](#9. Megatron-SWIFT 并行训练)
- [10. Web-UI 可视化界面](#10. Web-UI 可视化界面)
- [11. 环境安装](#11. 环境安装)
- [12. 根据资源选择训练方案](#12. 根据资源选择训练方案)
1. ms-swift 是什么
ms-swift(ModelScope Scalable lightWeight Infrastructure for Fine-Tuning)是阿里云魔搭社区(ModelScope)开源的大模型与多模态大模型微调部署一体化框架。
核心定位 :让开发者用最少的代码和资源,完成大模型从训练到上线的完整链路,不需要任何深度学习代码,命令行即可完成一站式操作。
论文背书:已在 AAAI 2025 发表,arXiv:https://arxiv.org/abs/2408.05517
版本说明:
- ms-swift 4.x(main 分支):最新版本,本文基于此版本
- ms-swift 3.x(release/3.12 分支):稳定版本
- ms-swift 2.x:已停止主要更新
核心规模数字
| 指标 | 数量 |
|---|---|
| 支持纯文本大模型 | 600+ |
| 支持多模态大模型 | 400+ |
| 内置训练数据集 | 150+ |
| 支持训练方法(PEFT + 其他) | 15+ |
| 支持评测数据集 | 100+ |
| 支持推理引擎 | 4 种(Transformers/vLLM/LMDeploy/SGLang) |
| 支持硬件 | NVIDIA GPU、Ascend NPU、MPS、CPU |
2. 核心能力全景
ms-swift 的核心能力可分为五大板块:
ms-swift
训练
CPT
SFT
RLHF
GRPO
Embedding
推理
Transformers
vLLM
LMDeploy
SGLang
评测
EvalScope
Benchmark
量化
AWQ
GPTQ
BNB
FP8
部署
OpenAI API
Web UI
ModelScope
亮点特性
热门模型 Day-0 支持:主流开源模型发布当天,ms-swift 即跟进支持,是目前响应速度最快的微调框架之一。
全模态覆盖:不仅支持纯文本大模型,还全面支持图像、视频、音频多模态模型,以及 All-to-All 全模态模型(如 Qwen3-Omni)。
GRPO 算法族完整实现:内置 GRPO、DAPO、GSPO、SAPO、CISPO、CHORD、RLOO、Reinforce++ 等多种强化学习算法变体,同时支持同步和异步 vLLM 引擎加速采样。
Megatron 并行集成:集成 Megatron 并行技术,支持 TP/PP/SP/CP/EP/VPP 等多种并行策略,可将 MoE 模型训练速度提升约 10 倍。
3. 整体架构与模块设计
3.1 全链路架构
Input
Output
swift eval
swift export
swift web-ui
Inference
swift infer
swift deploy
swift app
Training
swift sft
swift pt
swift rlhf
数据集
基础模型
训练配置
3.2 两种使用方式
方式一:命令行(CLI)------ 推荐
所有功能都通过 swift 命令驱动,参数化配置,无需写任何训练代码:
bash
# 训练
swift sft --model ... --dataset ... --tuner_type lora
# 推理
swift infer --adapters ...
# 部署
swift deploy --adapters ... --infer_backend vllm
# 评测
swift eval --adapters ...
# 量化导出
swift export --adapters ... --quant_bits 4
方式二:Python API
适合需要在代码中集成训练/推理流程的场景:
python
from swift import TransformersEngine, InferRequest, RequestConfig
engine = TransformersEngine(
model_id_or_path="Qwen/Qwen3-7B-Instruct",
adapters=["output/checkpoint-xxx"]
)
infer_request = InferRequest(
messages=[{'role': 'user', 'content': '你好'}]
)
request_config = RequestConfig(max_tokens=512, temperature=0.1)
resp_list = engine.infer([infer_request], request_config)
print(resp_list[0].choices[0].message.content)
方式三:Web-UI
基于 Gradio 的可视化界面,零代码完成全链路操作,一条命令启动:
bash
swift web-ui
# 默认访问 http://localhost:7860
4. 支持的模型
4.1 纯文本大模型(600+)
ms-swift 对以下主流模型系列提供完整支持:
| 模型系列 | 代表模型 | 参数规模 | 特点 |
|---|---|---|---|
| Qwen3 / Qwen2.5 | Qwen3-4B/7B/14B/32B/72B | 0.6B~235B | 中文能力强,推荐首选 |
| DeepSeek-R1 / V3 | DeepSeek-R1-7B/14B/32B/70B | 7B~671B | 推理能力突出 |
| Llama 4 / 3.3 / 3.1 | Llama-3.1-8B/70B/405B | 1B~405B | 英文能力强,社区资源丰富 |
| InternLM3 | InternLM3-8B/20B | 8B~20B | 中英双语,学术友好 |
| GLM4.5 | GLM4.5-9B | 9B | 对话能力出色 |
| Mistral / Mixtral | Mistral-7B、Mixtral-8x7B | 7B~141B | MoE 架构代表 |
| Phi-4 | Phi-4-14B | 14B | 小参数高性能 |
| Gemma3 | Gemma3-4B/12B/27B | 1B~27B | Google 出品 |
4.2 多模态大模型(400+)
| 模型系列 | 支持模态 | 特点 |
|---|---|---|
| Qwen3-VL | 图像+文本 | 强视觉理解,文档/图表分析优秀 |
| Qwen3-Omni | 图像+音频+文本 | 全模态,端到端处理 |
| InternVL3.5 | 图像+文本 | 高分辨率图像,OCR 能力强 |
| MiniCPM-V-4 | 图像+文本 | 轻量高效,端侧友好 |
| LLaVA | 图像+文本 | 社区广泛使用 |
| DeepSeek-VL2 | 图像+文本 | MoE 架构,效率高 |
| GLM4.5-V | 图像+文本 | 中文图文理解出色 |
| Ovis2.5 | 图像+文本 | 视觉指令跟随优秀 |
4.3 模型下载说明
ms-swift 默认从 ModelScope 下载模型,如需使用 HuggingFace:
bash
# 使用 HuggingFace
swift sft --model meta-llama/Llama-3.1-8B-Instruct --use_hf true
# 离线环境使用本地模型
swift sft --model /path/to/local/model --check_model false
5. 支持的训练方法
5.1 轻量微调方法(PEFT)
轻量微调 PEFT
LoRA 系列
Adapter 系列
其他方法
LoRA
QLoRA
DoRA
LoRA+
RS-LoRA
LongLoRA
AdaLoRA
Adapter
LLaMA-Pro
LISA
ReFT
VeRA
BOFT
FourierFT
GaLore
UnSloth
各方法适用场景速查:
| 方法 | 显存需求 | 训练速度 | 效果 | 最适合场景 |
|---|---|---|---|---|
| LoRA | 中(16~24G) | 快 | 高 | 绝大多数场景首选 |
| QLoRA | 低(9~12G) | 中 | 中高 | 消费级 GPU,快速验证 |
| DoRA | 中 | 较快 | 高 | LoRA 效果不稳定时 |
| LoRA+ | 中 | 更快 | 高 | 追求更快收敛 |
| AdaLoRA | 中 | 中 | 高 | 自动调整各层 rank |
| LLaMA-Pro | 大 | 慢 | 高 | 最大程度保留原有能力 |
| LISA | 极低(<8G) | 快 | 中 | 超低资源,超大模型 |
| GaLore | 低 | 中 | 高 | 全参训练的低显存替代 |
| UnSloth | 低 | 最快 | 高 | 追求训练速度 |
5.2 全量微调(Full Fine-tuning)
bash
# 全参微调示例(需要大显存)
CUDA_VISIBLE_DEVICES=0,1,2,3 NPROC_PER_NODE=4 \
swift sft \
--model Qwen/Qwen3-7B-Instruct \
--tuner_type full \
--deepspeed zero2 \
--dataset your_data.jsonl \
--torch_dtype bfloat16 \
--num_train_epochs 2 \
--learning_rate 1e-5 \
--output_dir output
5.3 训练加速技术
ms-swift 内置多种训练加速与显存优化技术:
| 技术 | 参数 | 效果 | 说明 |
|---|---|---|---|
| Flash Attention 2/3 | --attn_impl flash_attn |
速度提升 + 显存降低 | A100/H100 强烈推荐 |
| Gradient Checkpointing | --gradient_checkpointing true |
显存降低 40% | 默认开启,略降速度 |
| Packing | --packing true |
GPU 利用率提升 | 将短序列打包到 max_length |
| Padding-free | --padding_free true |
显存降低 + 速度提升 | 需配合 flash_attn |
| Sequence Parallel | --sequence_parallel_size N |
支持超长序列 | 多卡序列并行 |
| Liger-Kernel | pip install liger-kernel |
显存降低 | 算子融合优化 |
5.4 分布式训练支持
分布式训练策略
DDP 数据并行
DeepSpeed
FSDP / FSDP2
Megatron 并行
ZeRO-1
ZeRO-2
ZeRO-3
张量并行 TP
流水线并行 PP
序列并行 SP
专家并行 EP
DeepSpeed ZeRO 策略选择:
| 策略 | 显存优化 | 通信开销 | 适用场景 |
|---|---|---|---|
| ZeRO-1 | 低 | 低 | 显存充足,求速度 |
| ZeRO-2 | 中 | 中 | 多卡 SFT 推荐 |
| ZeRO-3 | 高(可训超大模型) | 高 | 70B+ 模型,显存紧张 |
bash
# 多卡 DeepSpeed ZeRO-2 训练
NPROC_PER_NODE=4 CUDA_VISIBLE_DEVICES=0,1,2,3 \
swift sft \
--model Qwen/Qwen3-14B-Instruct \
--tuner_type lora \
--deepspeed zero2 \
--dataset your_data.jsonl \
--output_dir output
5.5 RLHF 偏好对齐训练
ms-swift 通过 swift rlhf 命令统一管理所有偏好对齐任务:
bash
# DPO 训练
CUDA_VISIBLE_DEVICES=0 \
swift rlhf \
--rlhf_type dpo \
--model Qwen/Qwen3-7B-Instruct \
--dataset hjh0119/shareAI-Llama3-DPO-zh-en-emoji \
--tuner_type lora \
--lora_rank 16 \
--learning_rate 1e-5 \
--output_dir output
DPO 数据集格式(每条样本需要 chosen 和 rejected 两个回答):
jsonc
{
"messages": [
{"role": "system", "content": "你是一名客服助手"},
{"role": "user", "content": "你们的退款政策是什么?"}
],
"chosen": "我们支持7天无理由退款,您只需在APP内申请即可,通常1~3个工作日到账。",
"rejected": "退款很麻烦,要看情况的。"
}
KTO 训练(只需好/坏标签,无需配对):
bash
CUDA_VISIBLE_DEVICES=0 \
swift rlhf \
--rlhf_type kto \
--model Qwen/Qwen3-7B-Instruct \
--dataset your_kto_data.jsonl \
--tuner_type lora \
--output_dir output
KTO 数据格式:
jsonc
{
"messages": [
{"role": "user", "content": "问题内容"}
],
"label": true
}
其中 label: true 表示这条回答是好的,label: false 表示是坏的。
5.6 GRPO 强化学习训练
GRPO 是目前最流行的强化微调方法,特别适合数学推理、代码生成等可以程序化验证正确性的任务:
bash
# GRPO 数学推理训练(4 卡)
CUDA_VISIBLE_DEVICES=0,1,2,3 NPROC_PER_NODE=4 \
swift rlhf \
--rlhf_type grpo \
--model Qwen/Qwen3-7B-Instruct \
--tuner_type lora \
--use_vllm true \
--vllm_mode colocate \
--dataset AI-MO/NuminaMath-TIR#10000 \
--reward_funcs accuracy \
--num_generations 8 \
--max_completion_length 2048 \
--learning_rate 1e-6 \
--output_dir output
GRPO 数据格式(query 列 + ground_truth 列):
jsonc
{
"messages": [
{"role": "user", "content": "计算 2x + 3 = 11,求 x"}
],
"ground_truth": "x = 4"
}
内置奖励函数 :accuracy(答案准确率)、format(格式正确率);也支持通过 --external_plugins 传入自定义奖励函数。
6. 推理与部署模块
6.1 四种推理引擎
推理引擎选择
Transformers
vLLM
LMDeploy
SGLang
开发测试
CPU 可用
高并发生产
PagedAttention
低延迟
移动端/边缘端
复杂推理链
批处理优化
| 引擎 | 启动参数 | 吞吐量 | 延迟 | 适用场景 |
|---|---|---|---|---|
| Transformers(默认) | --infer_backend transformers |
低 | 中 | 开发测试,支持 CPU |
| vLLM | --infer_backend vllm |
极高 | 低 | 高并发在线服务 |
| LMDeploy | --infer_backend lmdeploy |
高 | 极低 | 低延迟场景,边缘部署 |
| SGLang | --infer_backend sglang |
高 | 低 | 复杂推理链,长文本 |
6.2 交互式推理
bash
# 使用 Transformers 引擎(开发/调试)
CUDA_VISIBLE_DEVICES=0 \
swift infer \
--adapters output/checkpoint-xxx \
--stream true \
--temperature 0 \
--max_new_tokens 2048
# merge LoRA 后使用 vLLM 加速
CUDA_VISIBLE_DEVICES=0 \
swift infer \
--adapters output/checkpoint-xxx \
--stream true \
--merge_lora true \
--infer_backend vllm \
--vllm_max_model_len 8192 \
--temperature 0 \
--max_new_tokens 2048
注意:
--adapters指向 checkpoint 目录,ms-swift 会自动读取训练时保存的配置(包括基础模型路径、system prompt 等),无需重复指定。
6.3 部署为 OpenAI 兼容 API 服务
bash
# 使用 vLLM 后端部署
CUDA_VISIBLE_DEVICES=0 \
swift deploy \
--adapters output/checkpoint-xxx \
--infer_backend vllm \
--host 0.0.0.0 \
--port 8000 \
--vllm_max_model_len 8192
部署后自动提供 OpenAI 兼容 API,现有代码只需修改 base_url 即可接入:
python
import openai
client = openai.OpenAI(
base_url="http://your-server:8000/v1",
api_key="EMPTY"
)
response = client.chat.completions.create(
model="your-model-name",
messages=[{"role": "user", "content": "你好"}],
temperature=0.1,
max_tokens=512
)
print(response.choices[0].message.content)
6.4 Gradio 可视化应用
bash
# 启动可视化对话界面
CUDA_VISIBLE_DEVICES=0 \
swift app \
--model Qwen/Qwen3-7B-Instruct \
--adapters output/checkpoint-xxx \
--stream true \
--infer_backend transformers \
--lang zh
7. 评测模块
ms-swift 以 EvalScope 为评测后端,通过 swift eval 命令统一调用。
7.1 支持的评测数据集
| 类别 | 数据集 |
|---|---|
| 综合能力 | CEval、MMLU、AGIEval、CMMLU |
| 推理能力 | ARC_c、ARC_e、HellaSwag、WinoGrande |
| 数学能力 | GSM8K、MATH、MATH-500 |
| 代码能力 | HumanEval、MBPP |
| 中文能力 | C3、CLUEWSC2020、CHID |
| 知识问答 | TriviaQA、NaturalQuestions |
7.2 标准评测命令
bash
# 评测微调后的模型
CUDA_VISIBLE_DEVICES=0 \
swift eval \
--adapters output/checkpoint-xxx \
--infer_backend lmdeploy \
--eval_backend OpenCompass \
--eval_dataset CEval,ARC_c,GSM8K
# 评测基础模型(作为基准对比)
CUDA_VISIBLE_DEVICES=0 \
swift eval \
--model Qwen/Qwen3-7B-Instruct \
--eval_dataset CEval,ARC_c,GSM8K
7.3 评测结果解读
评测完成后会生成详细报告,关键关注点:
- 通用能力分数变化:微调后相比基础模型,CEval/ARC 等通用评测的分数下降不超过 5% 为正常范围;下降超过 10% 说明训练数据单一,需要补充通用数据
- 领域评测分数:与基础模型对比,领域任务准确率提升幅度
8. 量化与导出模块
8.1 支持的量化方法
| 方法 | 位宽 | 体积压缩 | 速度提升 | 精度损失 | 推荐场景 |
|---|---|---|---|---|---|
| AWQ | 4-bit | ~75% | 2~3x | 极小 | 首选,生产部署 |
| GPTQ | 4-bit | ~75% | 1.5~2x | 小 | 第二选择 |
| BNB | 4-bit | ~75% | 1.5x | 小 | 开发测试,易安装 |
| FP8 | 8-bit | ~50% | 1.5~2x | 极小 | H100 等新硬件 |
8.2 AWQ 量化命令(推荐)
bash
# AWQ 4-bit 量化
CUDA_VISIBLE_DEVICES=0 \
swift export \
--adapters output/checkpoint-xxx \
--merge_lora true \
--quant_bits 4 \
--quant_method awq \
--dataset your_data.jsonl \
--quant_n_samples 128 \
--output_dir output/model_awq
8.3 推送到模型社区
bash
# 推送到 ModelScope Hub
CUDA_VISIBLE_DEVICES=0 \
swift export \
--adapters output/checkpoint-xxx \
--push_to_hub true \
--hub_model_id 'your-username/your-model-name' \
--hub_token 'your-sdk-token' \
--use_hf false
# 推送到 HuggingFace Hub
CUDA_VISIBLE_DEVICES=0 \
swift export \
--adapters output/checkpoint-xxx \
--push_to_hub true \
--hub_model_id 'your-username/your-model-name' \
--hub_token 'your-hf-token' \
--use_hf true
8.4 合并 LoRA 权重
bash
# 合并 LoRA 权重到基础模型(生产部署前推荐做)
swift export \
--adapters output/checkpoint-xxx \
--merge_lora true \
--output_dir output/model_merged
9. Megatron-SWIFT 并行训练
对于超大模型(70B+)或需要极高训练吞吐量的场景,ms-swift 集成了 Megatron 并行技术。
9.1 支持的并行策略
| 并行策略 | 缩写 | 作用 |
|---|---|---|
| 张量并行 | TP | 将单层参数切分到多卡,减少单卡显存 |
| 流水线并行 | PP | 将模型层分组到不同节点,跨节点可用 |
| 序列并行 | SP | 序列维度并行,支持超长上下文 |
| 上下文并行 | CP | 长上下文并行注意力 |
| 专家并行 | EP | MoE 模型专家层分布 |
| 数据并行 | DP | 传统数据并行,速度最快 |
9.2 Megatron-SWIFT 快速入门
bash
# 安装额外依赖
pip install transformer_engine
pip install megatron_patch # 模型转换工具
# 将 HuggingFace 模型转换为 Megatron 格式
swift export \
--model Qwen/Qwen2.5-7B-Instruct \
--to_mcore true \
--torch_dtype bfloat16
# 使用 Megatron-SWIFT 训练(2 卡,张量并行)
PYTORCH_CUDA_ALLOC_CONF='expandable_segments:True' \
NPROC_PER_NODE=2 CUDA_VISIBLE_DEVICES=0,1 \
megatron sft \
--load Qwen2.5-7B-Instruct-mcore \
--dataset 'AI-ModelScope/alpaca-gpt4-data-zh#500' \
--tensor_model_parallel_size 2 \
--sequence_parallel true \
--micro_batch_size 16 \
--global_batch_size 16 \
--lr 1e-5 \
--max_epochs 1 \
--save megatron_output/Qwen2.5-7B \
--max_length 2048
推荐在 MoE 模型训练时使用 Megatron-SWIFT,通常可获得约 10 倍训练速度提升。
10. Web-UI 可视化界面
Web-UI 是 ms-swift 提供的零门槛可视化操作界面,基于 Gradio 实现,支持完整的训练-推理-评测-量化全链路。
10.1 启动 Web-UI
bash
# 本地启动
swift web-ui
# 指定端口
swift web-ui --port 7860
# 允许外网访问
swift web-ui --host 0.0.0.0 --port 7860
启动后浏览器访问 http://localhost:7860
10.2 Web-UI 功能模块
Web-UI 包含以下主要功能页面:
- 训练页(Training):选择模型、数据集、训练方法、配置超参数,一键启动训练,实时查看 Loss 曲线
- 推理页(Inference):加载训练后的模型,进行交互式对话测试
- 评测页(Evaluation):选择评测集,一键评测,查看各项指标
- 量化页(Quantization):选择量化方法,一键量化并导出
适合场景:
- 快速验证新想法,无需写命令行
- 非技术用户(如领域专家)参与数据验证和效果评估
- 演示展示
11. 环境安装
11.1 系统要求
| 组件 | 最低要求 | 推荐版本 |
|---|---|---|
| Python | 3.9 | 3.11 / 3.12 |
| PyTorch | 2.0 | 2.8.0 |
| CUDA | 11.8 | 12.4 / 12.8 |
| Transformers | 4.33 | 4.57.6+ |
| 操作系统 | Ubuntu 20.04 | Ubuntu 22.04 |
11.2 支持的硬件
| 硬件类型 | 代表型号 | 适用场景 |
|---|---|---|
| NVIDIA 企业卡 | A100/H100/H200/A800 | 大规模训练 |
| NVIDIA 消费卡 | RTX 4090/3090/4080 | 个人/小团队 |
| NVIDIA 数据中心卡 | T4/V100/A10/A30 | 云端训练 |
| 华为昇腾 NPU | Ascend 910B/910C | 国产替代 |
| Apple Silicon | M1/M2/M3/M4 | MPS 加速 |
| CPU | 任意 | 推理调试(不推荐训练) |
11.3 安装命令
基础安装(最常用):
bash
pip install ms-swift -U
国内镜像加速:
bash
pip install ms-swift -U -i https://pypi.tuna.tsinghua.edu.cn/simple
全能力安装(包含所有可选依赖):
bash
pip install "ms-swift[all]" -U
源码安装(最新开发版):
bash
git clone https://github.com/modelscope/ms-swift.git
cd ms-swift
# main 分支为 swift4.x
# 如需 swift3.x,请执行:git checkout release/3.12
pip install -e .
# 全能力
# pip install -e '.[all]'
11.4 官方 Docker 镜像
bash
# swift 3.9.3(推荐生产使用)
docker pull modelscope-registry.cn-hangzhou.cr.aliyuncs.com/modelscope-repo/modelscope:ubuntu22.04-cuda12.8.1-py311-torch2.8.0-vllm0.11.0-modelscope1.31.0-swift3.9.3
# 启动容器
docker run -it --gpus all --ipc=host \
-v /your/data:/data \
modelscope-registry.cn-hangzhou.cr.aliyuncs.com/modelscope-repo/modelscope:ubuntu22.04-cuda12.8.1-py311-torch2.8.0-vllm0.11.0-modelscope1.31.0-swift3.9.3 \
bash
11.5 按需安装可选依赖
bash
# vLLM:高并发推理加速
pip install vllm>=0.5.1
# Flash Attention:训练加速,A100/H100 强烈推荐
pip install flash-attn --no-build-isolation
# DeepSpeed:多卡分布式训练
pip install deepspeed -U
# LMDeploy:低延迟推理
pip install lmdeploy
# 量化支持
pip install bitsandbytes>=0.41.0 # BNB 量化
pip install auto_gptq # GPTQ 量化
pip install autoawq # AWQ 量化
# 训练加速
pip install liger-kernel # 算子融合
11.6 验证安装
bash
# 检查 swift 版本
swift --help
# 检查 GPU
python -c "import torch; print(f'CUDA: {torch.cuda.is_available()}, GPU: {torch.cuda.get_device_name(0) if torch.cuda.is_available() else None}')"
# 快速冒烟测试(约 5 分钟)
CUDA_VISIBLE_DEVICES=0 \
swift sft \
--model Qwen/Qwen3-4B-Instruct \
--tuner_type lora \
--dataset 'AI-ModelScope/alpaca-gpt4-data-zh#100' \
--num_train_epochs 1 \
--max_length 512 \
--output_dir output/smoke_test
12. 根据资源选择训练方案
我的显卡情况
单卡显存多少?
8~12G
16~24G
40~80G
多卡
QLoRA 方案
LoRA 单卡方案
LoRA 或 Full FT
多卡 DeepSpeed 方案
7B 以内模型
7B~14B 模型
14B~70B 模型
任意规模模型
方案一:QLoRA(8~12G 显存)
适合:RTX 3060/4060/4060Ti,云端 T4
bash
CUDA_VISIBLE_DEVICES=0 \
swift sft \
--model Qwen/Qwen3-7B-Instruct \
--tuner_type lora \
--quant_bits 4 \
--quant_method bnb \
--lora_rank 8 \
--lora_alpha 16 \
--target_modules all-linear \
--per_device_train_batch_size 1 \
--gradient_accumulation_steps 16 \
--max_length 1024 \
--dataset your_data.jsonl \
--output_dir output
方案二:LoRA 单卡(16~24G 显存)
适合:RTX 3090/4090,A10,云端 V100
bash
CUDA_VISIBLE_DEVICES=0 \
swift sft \
--model Qwen/Qwen3-7B-Instruct \
--tuner_type lora \
--lora_rank 16 \
--lora_alpha 32 \
--target_modules all-linear \
--torch_dtype bfloat16 \
--per_device_train_batch_size 2 \
--gradient_accumulation_steps 8 \
--max_length 2048 \
--dataset your_data.jsonl \
--output_dir output
方案三:多卡 DeepSpeed(多张 A100/H100)
适合:大规模生产训练,14B~70B 模型
bash
NPROC_PER_NODE=4 CUDA_VISIBLE_DEVICES=0,1,2,3 \
swift sft \
--model Qwen/Qwen3-14B-Instruct \
--tuner_type lora \
--deepspeed zero2 \
--lora_rank 16 \
--lora_alpha 32 \
--torch_dtype bfloat16 \
--per_device_train_batch_size 2 \
--gradient_accumulation_steps 4 \
--max_length 4096 \
--dataset your_data.jsonl \
--output_dir output
显存需求参考表
| 模型大小 | 训练方式 | 最低显存 | 推荐显存 |
|---|---|---|---|
| 4B | QLoRA | 6G | 8G |
| 4B | LoRA | 10G | 12G |
| 7B | QLoRA | 9G | 12G |
| 7B | LoRA | 16G | 24G |
| 7B | Full FT | 55G | 80G x2 |
| 14B | LoRA | 28G | 40G |
| 14B | Full FT | 100G+ | 80G x4 |
| 32B | LoRA | 60G | 80G x2 |
| 70B | LoRA | 120G+ | 80G x4 |
| 72B | LoRA | 120G+ | 80G x4 |
命令速查表
| 操作 | 命令 |
|---|---|
| 监督微调(SFT) | swift sft --model ... --dataset ... |
| 持续预训练(CPT) | swift pt --model ... --dataset ... |
| 偏好对齐(RLHF) | swift rlhf --rlhf_type dpo/kto/... |
| 强化学习(GRPO) | swift rlhf --rlhf_type grpo ... |
| 推理(交互式) | swift infer --adapters ... |
| 推理(批量) | swift infer --adapters ... --val_dataset ... |
| 部署 API 服务 | swift deploy --adapters ... |
| 可视化对话 | swift app --model ... |
| 模型评测 | swift eval --adapters ... |
| 量化导出 | swift export --quant_bits 4 --quant_method awq |
| 合并 LoRA | swift export --merge_lora true |
| 推送模型 Hub | swift export --push_to_hub true |
| 启动 Web-UI | swift web-ui |
下一篇预告:第三篇将进入完整实战------自定义数据集格式规范、训练参数详解、训练过程监控、评测方法、部署上线,以及完整的常见问题排查和最佳实践清单。