拓冰建站拓冰建站
首页 / 资讯中心 / 正文

ms-swift:大模型与多模态大模型微调、对齐训练与部署的全链路技术指南

ms-swift大模型与多模态大模型微调、对齐训练与部署的全链路技术指南【免费下载链接】swiftUse PEFT or Full-parameter to CPT/SFT/DPO/GRPO 600 LLMs (Qwen3.6, DeepSeek-V4, GLM-5.1, InternLM3, Llama4, ...) and 300 MLLMs (Qwen3-VL, Qwen3-Omni, InternVL3.5, Ovis2.5, GLM4.5v, Gemma4, Llava, Phi4, ...) (AAAI 2025).项目地址: https://gitcode.com/GitHub_Trending/swift1/swift本文基于 SWIFTms-swiftScalable lightWeight Infrastructure for Fine-Tuning仓库的主 READMEREADME_CN.md系统梳理这一魔搭社区微调框架的安装配置、命令行体系、SFT 快速上手、RLHF/GRPO 强化学习、Megatron 并行加速以及推理/评测/量化/部署全链路用法并结合仓库源码印证各命令背后的真实实现帮助读者从一条swift sft命令开始完成训练→推理→量化→部署的完整闭环。一、项目定位ms-swift 是什么ms-swift是魔搭社区提供的大模型与多模态大模型微调部署框架现已支持600 纯文本大模型与400 多模态大模型的训练预训练、微调、人类对齐、推理、评测、量化与部署。其中大模型包括Qwen3、Qwen3.5、InternLM3、GLM4.5、Mistral、DeepSeek-R1、Llama4 等多模态大模型包括Qwen3-VL、Qwen3-Omni、Kimi-K3、Llava、InternVL3.5、MiniCPM-V-4、Ovis2.5、GLM4.5-V、DeepSeek-VL2 等。 框架汇集了最新的训练技术集成Megatron 并行技术TP、PP、CP、EP 等为大规模训练提供加速内置丰富的GRPO 算法族强化学习算法GRPO、DAPO、GSPO、SAPO、CISPO、RLOO、Reinforce 等支持广泛的偏好学习算法DPO、KTO、RM、CPO、SimPO、ORPO以及 Embedding、Reranker、序列分类任务使用vLLM、SGLang、LMDeploy加速推理/评测/部署使用GPTQ、AWQ、BNB、FP8进行量化。为什么选择 ms-swift继承自 README 的能力清单模型类型支持 600 纯文本大模型、400 多模态大模型以及 All-to-All 全模态模型训练到部署全流程热门模型 Day0 支持数据集类型内置 150 预训练、微调、人类对齐、多模态等各种任务数据集并支持自定义数据集准备数据集即可一键训练格式规范见 自定义数据集文档硬件支持A10/A100/H100、RTX 系列、T4/V100、CPU、MPS 以及国产硬件 Ascend NPU参考 NPU 支持文档轻量训练LoRA、QLoRA、DoRA、LoRA、LLaMAPro、LongLoRA、LoRA-GA、ReFT、RS-LoRA、Adapter、LISA实现位于 swift/tuners量化训练支持对 BNB、AWQ、GPTQ、AQLM、HQQ、EETQ 量化模型进行训练7B 模型训练只需 9GB 训练资源显存优化GaLore、Q-GaLore、UnSloth、Liger-Kernel、Flash-Attention 2/3以及Ulysses 和 Ring-Attention 序列并行实现位于 swift/sequence_parallel分布式训练DDP、device_map、DeepSpeed ZeRO2/ZeRO3、FSDP/FSDP2 与 Megatron多模态训练多模态 packing 技术提升训练速度 100%支持文本、图像、视频、语音混合模态数据支持 vit/aligner/llm 单独控制Agent 训练支持 Agent template一套数据集可用于不同模型训练模板实现位于 swift/agent_templateMegatron 并行提供 TP/PP/SP/CP/ETP/EP/VPP 并行策略显著提升 MoE 模型训练速度支持 300 纯文本与 100 多模态大模型的全参数/LoRA 训练覆盖 CPT/SFT/GRPO/DPO/KTO/RM 任务推理加速Transformers、vLLM、SGLang、LmDeploy 四种引擎并提供 OpenAI 接口模型评测以 EvalScope 作为评测后端支持 100 评测数据集模型量化AWQ、GPTQ、FP8、BNB 量化导出导出模型可直接用 vLLM/SGLang/LmDeploy 推理加速界面训练提供 Web-UI 界面完成训练、推理、评测、量化的全链路。当前仓库版本号为 4.6.0.dev0见 swift/version.py属于 swift 4.x 系列v4.0 于 2026-03 正式发布。二、安装与运行环境2.1 三种安装方式方式一pip 安装pip install ms-swift -U # 使用 uv pip install uv uv pip install ms-swift -U --torch-backendauto方式二从源代码安装git clone https://gitcode.com/GitHub_Trending/swift1/swift cd swift # main 分支为 swift4.x。若安装 swift3.x可切换到对应的 release 分支后再安装 pip install -e . # 使用 uv uv pip install -e . --torch-backendauto方式三可执行入口。setup.py 通过entry_points注册了两个控制台命令swift→ swift/cli/main.py 的cli_main覆盖训练/推理/部署等全链路子命令megatron→ swift/cli/_megatron/main.py 的cli_main专门提供 Megatron 并行训练的pt/sft/rlhf/export子命令。2.2 运行环境依赖README 给出的推荐环境表组件范围推荐版本备注python3.103.12cudacuda12.8/13.0使用 cpu、npu、mps 则无需安装torch2.02.8.0/2.11.0transformers4.334.57.6/5.12.1modelscope1.23datasets3.0,4.8.53.6.0/4.8.4peft0.11,0.21flash_attn2.8.3/4.0.0b15trl0.15,1.00.29.1RLHFdeepspeed0.140.18.9训练vllm0.5.10.11.0/0.23.0推理/部署sglang0.4.6推理/部署evalscope1.0评测gradio5.32.1Web-UI/App核心依赖的实际约束可以在 requirements/framework.txt 中核对例如transformers4.33,5.17.0、modelscope1.23、peft0.11,0.21、trl0.15,1.0、datasets3.0,4.8.5与上表一致。可选依赖评测、Megatron、NPU、Ray 等分别在 requirements 目录下的eval.txt、megatron.txt、npu.txt、ray.txt中定义并可通过 requirements/install_all.sh 一键安装。三、命令行体系一条swift命令背后的路由与分布式逻辑从源码 swift/cli/main.py 中的ROUTE_MAPPING可以确认swift入口支持以下 12 个子命令每个子命令对应一个独立的 CLI 模块子命令对应模块用途ptswift/cli/pt.py预训练sftswift/cli/sft.py指令监督微调rlhfswift/cli/rlhf.py人类对齐/强化学习DPO/GRPO/GKD 等inferswift/cli/infer.py命令行推理appswift/cli/app.py交互式聊天界面推理deployswift/cli/deploy.pyOpenAI 接口部署evalswift/cli/eval.py模型评测sampleswift/cli/sample.py采样/蒸馏exportswift/cli/export.py量化/合并 LoRA/推送模型merge-loraswift/cli/merge_lora.py单独合并 LoRA 权重rolloutswift/cli/rollout.pyRL 采样服务web-uiswift/cli/web_ui.pyGradio 全链路界面该入口还有两个值得注意的实现细节均可在 swift/cli/main.py 中验证自动 torchrun 封装use_torchrun()检测环境变量NPROC_PER_NODE/NNODES一旦设置pt/sft/rlhf/infer子命令会经torch.distributed.run启动因此 README 中的多卡示例只需额外写NPROC_PER_NODE8前缀即可YAML/JSON 配置文件支持parse_yaml_args()允许把参数写成.yaml/.json文件作为第一个参数传入配置中的ENV段会被写入环境变量其余键值对展开为--key value形式的 argv适合将完整训练配置版本化管理示例见 examples/train/multi-node 下的 yaml 配置。四、快速开始10 分钟单卡 LoRA 自我认知微调README 给出的10 分钟在单卡 3090 上对 Qwen3-4B-Instruct-2507 进行自我认知微调完整命令如下约 13GB 显存# 13GB CUDA_VISIBLE_DEVICES0 \ 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关键参数解读--tuner_type lora指定轻量微调方式--lora_rank 8、--lora_alpha 32、--target_modules all-linear定义 LoRA 注入范围对所有线性层注入--dataset支持多数据集并列传入#500表示每个数据集只取 500 条swift/self-cognition是内置的自我认知数据集--model_author swift --model_name swift-robot会改写自我认知数据中的模型身份描述仅在数据集包含swift/self-cognition时生效完整参数说明可查阅 命令行参数文档。小贴士继承自 README使用自定义数据集训练时按 自定义数据集文档 组织格式后指定--dataset dataset_path即可训练其他模型只需修改--model model_id/model_path默认从ModelScope下载模型和数据集如需使用 HuggingFace 指定--use_hf true。仓库中的 examples/train/lora_sft.sh 是该流程的可执行参考版本Qwen2.5-7B-Instruct约 22GB 显存参数与上文一一对应。训练后推理自动加载训练参数训练完成后直接对产物 checkpoint 进行推理# 使用交互式命令行进行推理 CUDA_VISIBLE_DEVICES0 \ swift infer \ --adapters output/vx-xxx/checkpoint-xxx \ --stream true \ --temperature 0 \ --max_new_tokens 2048 # merge-lora 并使用 vLLM 进行推理加速 CUDA_VISIBLE_DEVICES0 \ swift infer \ --adapters output/vx-xxx/checkpoint-xxx \ --stream true \ --merge_lora true \ --infer_backend vllm \ --vllm_max_model_len 8192 \ --temperature 0 \ --max_new_tokens 2048注意--adapters需替换为训练生成的 last checkpoint 文件夹。由于 adapters 文件夹中包含训练参数文件args.json无需额外指定--model、--systemswift 会自动读取这些参数若要关闭该行为可设置--load_args false。最后将模型推送到 ModelScopeCUDA_VISIBLE_DEVICES0 \ swift export \ --adapters output/vx-xxx/checkpoint-xxx \ --push_to_hub true \ --hub_model_id your-model-id \ --hub_token your-sdk-token \ --use_hf falseWeb-UIWeb-UI 是基于 Gradio 的零门槛训练、部署界面详见 Web-UI 文档swift web-ui对应实现位于 swift/ui 目录按llm_train/llm_infer/llm_rlhf/llm_grpo/llm_export/llm_eval等模块组织了完整的图形化操作面板。五、Python API以代码方式训练与推理ms-swift 同时支持 Python 编程式调用。README 给出的训练伪代码from peft import LoraConfig, get_peft_model from swift import get_model_processor, get_template, load_dataset, EncodePreprocessor from swift.trainers import Seq2SeqTrainer, Seq2SeqTrainingArguments # 获取模型和 template并加入可训练的 LoRA 模块 model, tokenizer get_model_processor(model_id_or_path, ...) template get_template(tokenizer, ...) lora_config LoraConfig(...) model get_peft_model(model, lora_config) # 下载并载入数据集并将文本 encode 成 tokens train_dataset, val_dataset load_dataset(dataset_id_or_path, ...) train_dataset EncodePreprocessor(templatetemplate)(train_dataset, num_procnum_proc) val_dataset EncodePreprocessor(templatetemplate)(val_dataset, num_procnum_proc) # 进行训练 training_args Seq2SeqTrainingArguments(...) trainer Seq2SeqTrainer( modelmodel, argstraining_args, templatetemplate, train_datasettrain_dataset, eval_datasetval_dataset, ) trainer.train()推理代码from swift import TransformersEngine, InferRequest, RequestConfig # 使用原生 transformers 引擎进行推理 engine TransformersEngine(model_id_or_path, adapters[lora_checkpoint]) infer_request InferRequest(messages[{role: user, content: who are you?}]) request_config RequestConfig(max_tokensmax_new_tokens, temperaturetemperature) resp_list engine.infer([infer_request], request_config) print(fresponse: {resp_list[0].choices[0].message.content})其中TransformersEngine、InferRequest、RequestConfig均可在 swift/infer_engine/init.py 的导出结构中得到确认同一模块还导出了VllmEngine、SglangEngine、LmdeployEngine、InferEngine、InferClient等与命令行--infer_backend的多种后端一一对应。六、训练任务与微调方式矩阵README 支持矩阵方法 × 全参数/LoRA/QLoRA/DeepSpeed/多机/多模态对应示例链接已转换为仓库内路径方法全参数LoRAQLoRADeepspeed多机多模态预训练✅✅✅✅✅✅指令监督微调✅✅✅qlora✅multi-gpu✅multi-node✅multimodalGRPO✅✅✅✅✅✅GKD✅✅✅✅✅✅PPO✅✅✅✅✅❌DPO✅✅✅✅✅✅KTO✅✅✅✅✅✅奖励模型 RM✅✅✅✅✅✅CPO✅✅✅✅✅✅SimPO✅✅✅✅✅✅ORPO✅✅✅✅✅✅Embedding✅✅✅✅✅✅Reranker✅✅✅✅✅✅序列分类✅✅✅✅✅✅从 swift/arguments/rlhf_args.py 可确认rlhf_type的合法取值为dpo/orpo/simpo/kto/cpo/rm/ppo/grpo/gkd默认dpo各算法的 Trainer 实现分别位于 swift/rlhf_trainers 下的dpo_trainer.py、grpo_trainer.py、gkd_trainer.py、ppo_trainer.py、kto_trainer.py、orpo_trainer.py、cpo_trainer.py、reward_trainer.py等文件。6.1 预训练# 8*A100 NPROC_PER_NODE8 \ CUDA_VISIBLE_DEVICES0,1,2,3,4,5,6,7 \ swift pt \ --model Qwen/Qwen3-4B-Base \ --dataset swift/chinese-c4 \ --streaming true \ --tuner_type full \ --deepspeed zero2 \ --output_dir output \ --max_steps 10000 \ ...6.2 微调CUDA_VISIBLE_DEVICES0 swift sft \ --model Qwen/Qwen3-4B-Instruct-2507 \ --dataset AI-ModelScope/alpaca-gpt4-data-zh \ --tuner_type lora \ --output_dir output \ ...6.3 RLHF 偏好对齐CUDA_VISIBLE_DEVICES0 swift rlhf \ --rlhf_type dpo \ --model Qwen/Qwen3-4B-Instruct-2507 \ --dataset hjh0119/shareAI-Llama3-DPO-zh-en-emoji \ --tuner_type lora \ --output_dir output \ ...七、Megatron-SWIFT面向大集群与 MoE 的并行训练ms-swift 支持使用 Megatron 并行技术加速训练包括大规模集群训练和 MoE 模型训练。支持矩阵如下方法全参数LoRAMoE多模态FP8预训练✅✅✅✅✅指令监督微调✅✅✅✅✅GRPO✅✅✅✅✅GKD✅✅✅✅✅DPO✅✅✅✅✅KTO✅✅✅✅✅RM✅✅✅✅✅Embedding✅✅✅✅✅Reranker✅✅✅✅✅序列分类✅✅✅✅✅基本用法注意入口是megatron而非swiftNPROC_PER_NODE2 CUDA_VISIBLE_DEVICES0,1 megatron sft \ --model Qwen/Qwen3-4B-Instruct-2507 \ --save_safetensors true \ --dataset AI-ModelScope/alpaca-gpt4-data-zh \ --tuner_type lora \ --output_dir output \ ...相关实现集中在 swift/megatron 目录参数、回调、模型、训练器、工具五个子包文档入口为 Megatron-SWIFT 快速开始其中 Mcore-Bridge 让 Megatron 训练像 transformers 一样简单易用MoE 场景可参考 examples/megatron/moeFP8 训练参考 examples/megatron/fp8。2026.06 起 Megatron-Ray 已支持 GRPO 和 GKD 训练Ray 文档示例见 examples/ray。八、GRPO 族强化学习ms-swift 支持丰富的 GRPO 族算法均兼容全参数/LoRA/多模态/多机算法文档GRPOdocs/source/Instruction/GRPODAPO同上目录 AdvancedResearchGSPO同上目录 AdvancedResearchSAPO同上目录 AdvancedResearchCISPO同上目录 AdvancedResearchCHORD同上目录 AdvancedResearchRLOO同上目录 AdvancedResearchReinforce同上目录 AdvancedResearch最小可运行示例CUDA_VISIBLE_DEVICES0,1,2,3 NPROC_PER_NODE4 \ swift rlhf \ --rlhf_type grpo \ --model Qwen/Qwen3-4B-Instruct-2507 \ --tunner_type lora \ --tuner_type lora \ --use_vllm true \ --vllm_mode colocate \ --dataset AI-MO/NuminaMath-TIR#10000 \ --output_dir output \ ...实际使用时保留--tuner_type lora一个参数即可。从源码结构看GRPO 训练的推理加速由 swift/infer_engine/grpo_vllm_engine.py 中的GRPOVllmEngine承担配合--vllm_mode colocate等模式实现 vLLM 与训练进程的显存协同训练器主体在 swift/rlhf_trainers/grpo_trainer.py。更多变体多轮 GRPO、奖励模型自定义、hybrid 模式、72B 模型 4×80G 卡训练等可参考 examples/train/grpo 下的 39 个 shell 脚本Megatron 版 GRPO 参考 examples/megatron/grpo。九、推理、部署、采样、评测与量化9.1 命令行推理CUDA_VISIBLE_DEVICES0 swift infer \ --model Qwen/Qwen3-4B-Instruct-2507 \ --stream true \ --infer_backend transformers \ --max_new_tokens 2048--infer_backend可选transformers/vllm/sglang/lmdeploy对应 swift/infer_engine 中的四种引擎实现vLLM/SGLang/LMDeploy 后端示例分别见 examples/infer/vllm、examples/infer/sglang、examples/infer/lmdeploy。9.2 界面推理AppCUDA_VISIBLE_DEVICES0 swift app \ --model Qwen/Qwen3-4B-Instruct-2507 \ --stream true \ --infer_backend transformers \ --max_new_tokens 2048 \ --lang zh9.3 部署OpenAI 接口CUDA_VISIBLE_DEVICES0 swift deploy \ --model Qwen/Qwen3-4B-Instruct-2507 \ --infer_backend vllm部署客户端示例见 examples/deploy含 LLM/MLLM 客户端、LoRA 热加载、reranker、embedding、reward model 等场景。9.4 采样与蒸馏CUDA_VISIBLE_DEVICES0 swift sample \ --model Qwen/Qwen3-4B-Instruct-2507 \ --sampler_engine transformers \ --num_return_sequences 5 \ --dataset AI-ModelScope/alpaca-gpt4-data-zh#5swift sample用于强化微调RFT与基于大模型 API 的蒸馏采样示例见 examples/sampler文档见 强化微调。9.5 评测CUDA_VISIBLE_DEVICES0 swift eval \ --model Qwen/Qwen3-4B-Instruct-2507 \ --infer_backend sglang \ --eval_backend OpenCompass \ --eval_dataset ARC_c评测以 EvalScope 为后端详见 评测文档。9.6 量化导出CUDA_VISIBLE_DEVICES0 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从 swift/arguments/export_args.py 可确认导出阶段--quant_method的合法取值为awq/gptq/bnb/fp8/gptq_v2而训练阶段的量化输入swift/arguments/base_args/quant_args.py支持bnb/hqq/eetq/quanto/fp8。各量化方案的批量脚本见 examples/export/quantize。9.7 推送模型swift export \ --model model-path \ --push_to_hub true \ --hub_model_id model-id \ --hub_token sdk-token十、版本演进与近期动态2026-03ms-swift v4.0大版本正式发布2025.11Megatron GRPO 支持文档、示例2025.11Mcore-Bridge 使 Megatron 训练像 transformers 一样简单易用文档2025.09支持 CHORD 训练算法、Ulysses 与 ring-attention 结合--sequence_parallel_size N不再受 num_heads 限制2025.08SFT 训练支持 Dynamic Fine-Tuning--enable_dft_loss true2025.07Megatron-SWIFT 支持 LoRA 训练MoE 模型提速显著examples/megatron/lora2025.06支持 Reranker 训练、纯文本与多模态 GKD 训练文档 之外的 GKD 文档2025.02支持 GRPO 训练算法与swift sample命令2026.08Day-0 支持 Qwen3.8-Flash-NextSFT 示例2026.09 支持腾讯混元多模态嵌入模型 WeMM-Embeddingembedding 示例。完整的模型/数据集支持清单见 支持的模型和数据集文档模型注册实现位于 swift/model/models。十一、License 与引用本框架使用 Apache License (Version 2.0) 许可LICENSE。模型和数据集请查看原资源页面并遵守对应 License。引用时可使用仓库 README 中的 BibTeXmisc{zhao2024swiftascalablelightweightinfrastructure, title{SWIFT: A Scalable lightWeight Infrastructure for Fine-Tuning}, author{Yuze Zhao and Jintao Huang and Jinghan Hu and Xingjun Wang and Yunlin Mao and Daoze Zhang and Zeyinzi Jiang and Zhikai Wu and Baole Ai and Ang Wang and Wenmeng Zhou and Yingda Chen}, year{2024}, eprint{2408.05517}, archivePrefix{arXiv}, primaryClass{cs.CL}, }小结ms-swift 的技术主线可以用一条链概括以swift/megatron双 CLI 入口组织 pt→sft→rlhf 训练通过统一的 dataset/model 抽象屏蔽 600 LLM 与 400 MLLM 的差异再以 infer/app/deploy/eval/sample/export 六个子命令覆盖推理、部署、评测、采样与量化。对开发者而言最实际的切入点是本文第四节的单卡 LoRA 微调命令与 examples 目录下按场景组织的真实脚本对大规模训练场景则应继续阅读 Megatron-SWIFT 与 GRPO 文档 两条深入线。【免费下载链接】swiftUse PEFT or Full-parameter to CPT/SFT/DPO/GRPO 600 LLMs (Qwen3.6, DeepSeek-V4, GLM-5.1, InternLM3, Llama4, ...) and 300 MLLMs (Qwen3-VL, Qwen3-Omni, InternVL3.5, Ovis2.5, GLM4.5v, Gemma4, Llava, Phi4, ...) (AAAI 2025).项目地址: https://gitcode.com/GitHub_Trending/swift1/swift创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门