ms-swift框架入门:从安装到训练,完整流程手把手教学
ms-swift框架入门从安装到训练完整流程手把手教学1. 引言如果你对AI大模型感兴趣想自己动手微调一个专属的智能助手但又被复杂的代码和配置劝退那么今天这篇文章就是为你准备的。想象一下你手头有一个通用的大语言模型比如Qwen或者Llama你想让它学会你的专业知识或者按照你的风格说话甚至让它看懂图片、听懂语音。传统的方法需要你精通深度学习框架写一堆复杂的训练脚本光是环境配置就能折腾好几天。但现在有一个工具能让你在10分钟内用简单的命令行就完成大模型的微调训练。这就是ms-swift——一个由魔搭社区推出的、专门为大模型和多模态模型设计的微调部署框架。简单来说ms-swift就像是大模型训练的“瑞士军刀”。它把训练大模型需要的所有复杂步骤都封装成了简单的命令你不需要懂底层原理只需要告诉它“用什么模型”、“用什么数据”、“想怎么训练”它就能帮你搞定一切。这篇文章我将带你从零开始手把手教你如何使用ms-swift框架。无论你是AI新手还是有一定经验的开发者都能跟着这篇教程快速上手大模型微调。2. 为什么选择ms-swift在开始动手之前你可能想知道市面上大模型训练工具也不少为什么我要选择ms-swift让我用大白话给你解释几个关键优势2.1 支持的模型多到惊人ms-swift支持600多种纯文本大模型和300多种多模态大模型。这意味着无论你想训练Qwen、Llama、GLM、Mistral这些主流模型还是想训练能看懂图片的Qwen-VL、Llava或者是能处理视频的模型ms-swift都能支持。而且热门模型都是“Day 0支持”——就是模型一发布ms-swift马上就能用。你不用等社区适配第一时间就能尝鲜。2.2 训练方式灵活多样你想怎么训练你的模型ms-swift给了你多种选择轻量微调如果你的显卡不够强可以用LoRA、QLoRA这些方法用很少的显存就能训练大模型。7B的模型9GB显存就能跑起来。全参数训练如果你有足够的算力想从头开始训练也完全支持。强化学习想让模型更智能ms-swift内置了GRPO、DPO、KTO等多种强化学习算法能让模型学会“思考”和“判断”。多模态训练不仅能训练文本模型还能训练能看懂图片、视频、语音的多模态模型。2.3 硬件要求亲民你不需要有A100、H100这些昂贵的专业显卡。ms-swift支持从消费级的RTX系列显卡比如RTX 3090、4090到云服务器常用的T4、V100甚至CPU都能跑。这意味着你用自己的电脑就能开始训练。2.4 操作简单门槛低这是ms-swift最大的优势。它提供了三种使用方式命令行一条命令就能开始训练适合喜欢敲代码的开发者Web界面点点鼠标就能训练完全零代码适合所有人Python API如果你想深度定制也可以用Python代码灵活控制无论你是哪种用户都能找到适合自己的方式。3. 环境准备与快速安装好了理论说再多不如动手试试。现在我们就来一步步搭建ms-swift的环境。3.1 硬件和系统要求在开始之前先确认你的设备是否符合要求操作系统Linux推荐Ubuntu 20.04/22.04、macOS、Windows通过WSL显卡NVIDIA GPU推荐8GB以上显存支持RTX 20/30/40系列、T4、V100、A100等内存至少16GB RAM存储至少50GB可用空间用于存放模型和数据集如果你没有独立显卡也可以用CPU训练但速度会比较慢。对于入门学习建议至少有一张8GB显存的显卡。3.2 安装步骤ms-swift的安装非常简单只需要几个命令。打开你的终端Linux/macOS或者命令提示符Windows跟着我做# 1. 创建并激活Python虚拟环境推荐避免包冲突 python -m venv swift-env source swift-env/bin/activate # Linux/macOS # 或者 swift-env\Scripts\activate # Windows # 2. 安装PyTorch根据你的CUDA版本选择 # 如果你有CUDA 11.8用这个 pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 # 如果你有CUDA 12.1用这个 pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121 # 如果你没有CUDA用CPU版本 pip install torch torchvision torchaudio # 3. 安装ms-swift pip install ms-swift安装完成后验证一下是否安装成功swift --version如果看到类似“swift, version 3.x.x”的输出说明安装成功了3.3 常见安装问题解决如果你在安装过程中遇到问题别着急这里有几个常见问题的解决方法问题1安装速度慢或超时# 使用国内镜像源加速 pip install ms-swift -i https://pypi.tuna.tsinghua.edu.cn/simple问题2提示缺少依赖# 先升级pip然后重新安装 pip install --upgrade pip pip install ms-swift问题3CUDA版本不匹配# 查看你的CUDA版本 nvidia-smi # 然后根据显示的CUDA版本选择对应的PyTorch安装命令环境准备好了接下来我们进入最激动人心的部分——实际训练一个模型4. 10分钟快速上手训练你的第一个大模型现在我要带你完成一个完整的训练流程。我们将用Qwen2.5-7B-Instruct这个模型教它认识自己是谁自我认知微调。4.1 准备训练命令打开终端确保你在虚拟环境中然后输入以下命令# 单卡训练命令适合RTX 3090/4090等24GB显存显卡 CUDA_VISIBLE_DEVICES0 \ swift sft \ --model Qwen/Qwen2.5-7B-Instruct \ --train_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 \ --system You are a helpful assistant. \ --warmup_ratio 0.05 \ --dataloader_num_workers 4 \ --model_author swift \ --model_name swift-robot让我解释一下这个命令里几个关键参数是什么意思--model Qwen/Qwen2.5-7B-Instruct指定要训练的模型这里用的是Qwen2.5的7B指令版本--train_type lora使用LoRA微调方法这是一种轻量级的训练方式显存占用少--dataset指定训练数据我们用了三个数据集每个取500条数据--output_dir output训练结果会保存在output文件夹里--model_author swift --model_name swift-robot给训练好的模型起个名字4.2 开始训练输入命令后按回车键。你会看到类似这样的输出Downloading model Qwen/Qwen2.5-7B-Instruct... Downloading dataset AI-ModelScope/alpaca-gpt4-data-zh... Preprocessing data... Initializing training... Epoch 1/1: 0%| | 0/1000 [00:00?, ?it/s]训练开始了整个过程大概需要10-30分钟具体时间取决于你的显卡性能。在RTX 3090上大概15分钟就能完成。训练过程中你会看到进度条和日志信息包括当前的训练损失、学习率变化等。这些都是正常的说明训练正在顺利进行。4.3 训练完成后的文件训练完成后到output目录下看看ls output/你会看到类似这样的文件结构output/ ├── checkpoint-50/ # 第50步的检查点 ├── checkpoint-100/ # 第100步的检查点 ├── ... # 其他检查点 ├── last/ # 最后一个检查点通常是最好的 └── args.json # 训练参数配置文件每个checkpoint文件夹里都保存了训练好的模型权重。last/文件夹里是训练最后保存的权重通常效果最好。5. 测试训练好的模型模型训练好了现在我们来试试效果。用训练好的模型进行推理5.1 基础推理测试# 使用交互式命令行进行推理 CUDA_VISIBLE_DEVICES0 \ swift infer \ --adapters output/last/checkpoint-xxx \ # 替换成你的checkpoint路径 --stream true \ --temperature 0 \ --max_new_tokens 2048运行这个命令后你会进入一个交互式对话界面。试试问它一些问题用户你是谁 模型我是swift-robot一个由swift训练的AI助手。 用户你能做什么 模型我可以回答各种问题帮助你解决问题进行对话交流。看到了吗模型已经学会了我们教给它的“自我认知”——它知道自己叫swift-robot是由swift训练的。5.2 使用vLLM加速推理如果你想获得更快的推理速度可以合并LoRA权重并使用vLLM加速# merge-lora并使用vLLM进行推理加速 CUDA_VISIBLE_DEVICES0 \ swift infer \ --adapters output/last/checkpoint-xxx \ --stream true \ --merge_lora true \ --infer_backend vllm \ --vllm_max_model_len 8192 \ --temperature 0 \ --max_new_tokens 2048vLLM是一个专门为大模型推理优化的引擎能显著提升推理速度。--merge_lora true会把LoRA权重合并到基础模型里这样推理时就不需要额外加载LoRA模块了。6. 进阶功能使用自己的数据训练刚才我们用的是公开数据集但实际应用中你肯定想用自己的数据训练模型。别担心ms-swift支持自定义数据集而且格式很简单。6.1 准备自定义数据集创建一个JSONL格式的文件比如叫my_data.jsonl内容像这样{query: 什么是机器学习, response: 机器学习是人工智能的一个分支让计算机从数据中学习规律。} {query: Python有什么特点, response: Python语法简洁有丰富的库适合快速开发。} {query: 如何学习编程, response: 从基础语法开始多写代码参与实际项目。}每行是一个JSON对象包含query问题和response回答。你也可以用其他格式ms-swift支持多种数据格式。6.2 使用自定义数据训练准备好数据后训练命令只需要改一下数据集路径CUDA_VISIBLE_DEVICES0 \ swift sft \ --model Qwen/Qwen2.5-7B-Instruct \ --train_type lora \ --dataset ./my_data.jsonl \ # 使用本地文件 --torch_dtype bfloat16 \ --num_train_epochs 3 \ # 可以多训练几轮 --per_device_train_batch_size 1 \ --learning_rate 1e-4 \ --lora_rank 8 \ --lora_alpha 32 \ --gradient_accumulation_steps 16 \ --max_length 2048 \ --output_dir my_output \ --system 你是一个专业的技术顾问。这样模型就会用你的数据学习成为你的专属助手。6.3 多轮对话数据格式如果你的数据是多轮对话可以这样组织{ conversations: [ {role: user, content: 你好}, {role: assistant, content: 你好有什么可以帮助你的吗}, {role: user, content: 推荐几本编程书}, {role: assistant, content: 《Python编程从入门到实践》《算法导论》都不错。} ] }ms-swift会自动识别这种格式并进行正确处理。7. Web界面零代码训练体验如果你不想敲命令ms-swift还提供了Web界面点点鼠标就能训练模型。7.1 启动Web界面swift web-ui然后在浏览器中打开http://localhost:7860你会看到一个友好的界面7.2 界面功能一览Web界面主要分为几个区域模型选择下拉菜单选择要训练的模型训练配置设置训练参数学习率、批次大小等数据集管理上传或选择训练数据训练监控实时查看训练进度和损失曲线推理测试训练完成后直接测试模型效果7.3 通过界面训练模型操作步骤很简单在“模型选择”里选一个模型比如Qwen2.5-7B-Instruct在“数据集”里上传你的数据文件调整训练参数新手可以用默认值点击“开始训练”等待训练完成然后在“推理测试”里试试效果整个过程完全可视化不需要写任何代码。特别适合不熟悉命令行的用户或者想快速验证想法的场景。8. 更多训练场景示例ms-swift的功能远不止基础的微调。下面我介绍几个常见的进阶用法。8.1 预训练从头开始训练如果你想用大量无标注数据训练模型可以用预训练模式# 8卡A100训练示例 NPROC_PER_NODE8 \ CUDA_VISIBLE_DEVICES0,1,2,3,4,5,6,7 \ swift pt \ --model Qwen/Qwen2.5-7B \ --dataset swift/chinese-c4 \ --streaming true \ --train_type full \ --deepspeed zero2 \ --output_dir output \ --max_steps 10000这个命令会使用8张A100显卡用中文C4数据集对Qwen2.5-7B进行预训练。--streaming true表示流式读取数据适合处理超大规模数据集。8.2 强化学习训练DPO如果你想用偏好数据让模型学会“什么回答更好”可以用DPO训练CUDA_VISIBLE_DEVICES0 swift rlhf \ --rlhf_type dpo \ --model Qwen/Qwen2.5-7B-Instruct \ --dataset hjh0119/shareAI-Llama3-DPO-zh-en-emoji \ --train_type lora \ --output_dir output_dpoDPO训练需要的数据格式比较特殊包含“选择的回答”和“拒绝的回答”。这种训练能让模型学会生成更符合人类偏好的内容。8.3 多模态模型训练ms-swift也支持训练多模态模型能看懂图片的模型CUDA_VISIBLE_DEVICES0 swift sft \ --model Qwen/Qwen2.5-VL-7B-Instruct \ --dataset path/to/your/multimodal_data \ --train_type lora \ --output_dir output_vl多模态数据需要包含图片和对应的文本描述。训练完成后模型就能理解图片内容并回答相关问题了。9. 模型部署与分享训练好的模型你肯定想分享给别人用或者部署成服务。ms-swift也提供了简单的方法。9.1 推送模型到魔搭社区swift export \ --adapters output/last/checkpoint-xxx \ --push_to_hub true \ --hub_model_id your-username/your-model-name \ --hub_token your-sdk-token这样就把训练好的模型推送到魔搭社区了其他人可以直接下载使用。9.2 部署为API服务# 使用vLLM部署 CUDA_VISIBLE_DEVICES0 swift deploy \ --model Qwen/Qwen2.5-7B-Instruct \ --adapters output/last/checkpoint-xxx \ --infer_backend vllm \ --port 8000部署后你就可以通过HTTP API调用模型了curl -X POST http://localhost:8000/v1/chat/completions \ -H Content-Type: application/json \ -d { model: Qwen2.5-7B-Instruct, messages: [ {role: user, content: 你好} ] }9.3 量化模型减小体积如果模型太大可以用量化技术减小模型体积CUDA_VISIBLE_DEVICES0 swift export \ --model Qwen/Qwen2.5-7B-Instruct \ --adapters output/last/checkpoint-xxx \ --quant_bits 4 \ --quant_method awq \ --output_dir Qwen2.5-7B-Instruct-4bit这个命令会把模型量化为4位精度模型文件大小会减少到原来的1/4左右推理速度也会更快。10. 总结与下一步建议通过这篇教程你应该已经掌握了ms-swift的基本用法。我们来回顾一下重点10.1 核心收获ms-swift是什么一个简单易用的大模型微调框架支持600文本模型和300多模态模型三种使用方式命令行适合开发者、Web界面适合所有人、Python API适合深度定制完整训练流程从安装环境、准备数据、开始训练到测试效果、部署服务多种训练模式支持SFT微调、预训练、强化学习、多模态训练等硬件要求友好从消费级显卡到专业卡都支持甚至CPU也能跑10.2 给新手的建议如果你是第一次接触大模型训练我建议从简单的开始先用公开数据集比如alpaca-gpt4-data训练一个基础模型熟悉整个流程用小模型练手7B左右的模型在24G显存的显卡上就能训练成本低速度快多用Web界面特别是刚开始的时候可视化界面能帮你理解各个参数的作用保存实验记录每次训练都记录下参数设置和结果方便对比和优化10.3 进阶学习方向当你掌握了基础用法后可以尝试尝试不同的训练方法除了LoRA还可以试试全参数训练、QLoRA、DoRA等使用自己的数据收集或整理你的专业领域数据训练专属模型探索多模态试试训练能看懂图片或视频的模型优化训练效果调整学习率、批次大小等超参数找到最佳配置参与社区关注ms-swift的GitHub和文档学习其他人的经验10.4 常见问题快速参考问题可能原因解决方法显存不足模型太大或批次太大使用--train_type lora减小--per_device_train_batch_size训练速度慢显卡性能不足使用--gradient_accumulation_steps累积梯度增大有效批次模型效果不好数据质量差或训练轮数少清洗数据增加--num_train_epochs下载模型失败网络问题使用国内镜像源或手动下载模型到本地10.5 资源推荐官方文档Swift Documentation - 最全面的参考资料GitHub仓库modelscope/ms-swift - 查看源码和示例示例代码examples目录 - 各种训练场景的示例社区讨论魔搭社区论坛 - 和其他用户交流经验大模型训练听起来很高深但有了ms-swift这样的工具其实门槛已经降低了很多。现在你完全有能力训练属于自己的AI助手了。从今天开始动手试试吧获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

相关新闻

Node.js环境配置:深度学习项目训练环境中的后端开发

Node.js环境配置:深度学习项目训练环境中的后端开发

Node.js环境配置:深度学习项目训练环境中的后端开发 1. 引言 在深度学习项目中,我们往往把注意力集中在模型训练和算法优化上,但一个稳定高效的后端服务同样至关重要。Node.js凭借其非阻塞I/O和高并发处理能力,成为构建AI后端服…

2026/7/5 21:54:24 阅读更多 →
隐私翻译新选择:translategemma-4b-it本地部署,数据安全有保障

隐私翻译新选择:translategemma-4b-it本地部署,数据安全有保障

隐私翻译新选择:translategemma-4b-it本地部署,数据安全有保障 你是不是经常需要翻译文档、邮件或者网页内容,但又担心把敏感信息上传到云端会有隐私风险?或者觉得在线翻译工具速度慢,还经常遇到网络问题?…

2026/5/17 10:03:06 阅读更多 →
ROS核心机制深度解析:从消息队列到节点通信的实战面试要点

ROS核心机制深度解析:从消息队列到节点通信的实战面试要点

1. 消息队列:ROS异步通信的“心脏”与实战调优 很多刚接触ROS的朋友,会觉得发布(Publisher)和订阅(Subscriber)用起来很简单,几行代码就能让数据流动起来。但一旦把系统放到真实的机器人上跑&am…

2026/7/6 10:18:40 阅读更多 →

最新新闻

OpenRocket:如何用开源软件设计你的第一枚模型火箭?

OpenRocket:如何用开源软件设计你的第一枚模型火箭?

OpenRocket:如何用开源软件设计你的第一枚模型火箭? 【免费下载链接】openrocket Model-rocketry aerodynamics and trajectory simulation software 项目地址: https://gitcode.com/GitHub_Trending/op/openrocket OpenRocket是一款功能完整的开…

2026/7/6 22:39:29 阅读更多 →
Cline AI:轻量级CLI智能代理框架,面向任务自动化的YAML驱动方案

Cline AI:轻量级CLI智能代理框架,面向任务自动化的YAML驱动方案

1. 项目概述:这不是又一个AI玩具,而是一套可嵌入工作流的轻量级智能代理框架“Cline AI”这个名字乍一听容易被误认为是某个大厂新推的闭源SaaS产品,或是某款带UI的AI聊天App。但实际接触过它的开发者很快会意识到:它根本不是面向…

2026/7/6 22:37:28 阅读更多 →
科大讯飞学习机深度拆解:AI精准学如何重构K12学习闭环

科大讯飞学习机深度拆解:AI精准学如何重构K12学习闭环

1. 项目概述:一台学习机,为什么值得花两千多块认真拆解?“科大讯飞学习机到底怎么样?”——这问题我过去三年在家长群、教育类线下沙龙、甚至孩子学校门口的文具店闲聊时,至少被问过87次。不是“好不好”,而…

2026/7/6 22:37:28 阅读更多 →
基于LV30扫描头与PIC18的嵌入式条码识别方案

基于LV30扫描头与PIC18的嵌入式条码识别方案

1. 项目背景与核心需求在工业自动化、零售仓储和物流管理领域,条码识别技术作为数据采集的关键入口,其可靠性和适应性直接决定了整个系统的运行效率。传统固定式扫描设备往往存在部署不灵活、成本高昂等问题,而基于LV30扫描头和PIC18LF45K42微…

2026/7/6 22:35:27 阅读更多 →
KNet-ColoSeg 模型实战:4种架构对比,结直肠息肉分割 mIoU 达 84.59%

KNet-ColoSeg 模型实战:4种架构对比,结直肠息肉分割 mIoU 达 84.59%

KNet-ColoSeg 模型实战:4种架构对比与结直肠息肉分割技术解析在医疗影像分析领域,结直肠息肉分割技术正经历着从传统算法到深度学习的革命性转变。随着计算机视觉技术的进步,基于深度学习的息肉分割方法在精度和效率上不断突破,为…

2026/7/6 22:33:26 阅读更多 →
Python OpenCV 图像识别:QQ三国华容道5阶拼图自动化脚本开发指南

Python OpenCV 图像识别:QQ三国华容道5阶拼图自动化脚本开发指南

Python OpenCV 图像识别:QQ三国华容道5阶拼图自动化脚本开发指南1. 游戏窗口定位与图像采集开发自动化脚本的第一步是准确捕获游戏窗口内容。这里我们使用PyWin32库实现窗口定位,配合OpenCV进行图像采集:import win32gui import numpy as np …

2026/7/6 22:31:22 阅读更多 →

日新闻

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2与MySQL单元测试兼容性:5个关键SQL语句差异与规避方案1. 单元测试中的数据库兼容性挑战在Java开发领域,单元测试是保证代码质量的重要环节。当应用涉及数据库操作时,测试环境的搭建往往成为开发者的痛点。H2数据库因其轻量级、内存模式和快…

2026/7/6 0:01:17 阅读更多 →
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray 你是否厌倦了Windows任务栏上密密麻麻的图标&…

2026/7/6 0:01:17 阅读更多 →
Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C 运行时库一键安装终极指南:告别DLL缺失烦恼 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况:下载了…

2026/7/6 0:05:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/6 8:11:50 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/6 8:11:52 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/6 6:52:56 阅读更多 →

月新闻