零基础玩转大模型:ms-swift快速部署教程,10分钟上手体验

张开发
2026/4/13 21:34:02 15 分钟阅读

分享文章

零基础玩转大模型:ms-swift快速部署教程,10分钟上手体验
零基础玩转大模型ms-swift快速部署教程10分钟上手体验你是不是也对大模型微调充满好奇但一看到复杂的代码、繁琐的环境配置和动辄几十GB的显存需求就望而却步别担心今天我要带你体验一个“傻瓜式”的大模型微调工具——ms-swift。它能让一个完全不懂代码的小白在10分钟内启动一个7B大模型的微调任务而且只需要一张消费级显卡。ms-swift是魔搭社区推出的一站式大模型微调与部署框架。简单来说它把训练大模型这件事从“专业工程师的复杂工程”变成了“普通开发者也能轻松上手的操作”。你不需要理解LoRA、QLoRA这些技术名词也不需要手动配置DeepSpeed或处理多模态数据ms-swift已经帮你把所有复杂的东西打包好了。这篇文章我将带你从零开始手把手完成一次大模型的自我认知微调。你只需要跟着步骤走就能亲眼看到模型从“我是谁”到“我是你的专属助手”的转变。准备好了吗我们开始吧。1. 环境准备5分钟搞定一切在开始之前我们先看看需要准备什么。其实非常简单就三样东西一台有显卡的电脑、一个能运行命令的终端以及一个网络连接。1.1 硬件与系统要求首先确认你的电脑满足以下最低要求显卡一张NVIDIA显卡显存最好在8GB以上。我们今天的教程基于单卡RTX 309024GB但RTX 4090、A10、A100等都可以。如果你的显存只有8GB我们后面会教你用QLoRA来降低要求。操作系统Linux如Ubuntu 20.04/22.04或 macOS。Windows用户可以通过WSL2来运行。内存建议16GB以上。硬盘空间至少需要20GB的可用空间用于存放模型和数据集。1.2 快速安装ms-swift安装ms-swift比你想象的要简单得多。它提供了多种安装方式我们选择最快捷的pip安装。打开你的终端Linux/macOS的Terminal或Windows的WSL终端输入以下命令# 1. 创建并激活一个Python虚拟环境推荐避免包冲突 python -m venv swift-env source swift-env/bin/activate # Linux/macOS # 对于Windows WSL使用source swift-env/Scripts/activate # 2. 升级pip并安装ms-swift pip install -U pip pip install ms-swift -f https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.html等待几分钟所有依赖包就会自动安装完成。如果网络较慢可以尝试使用国内的镜像源pip install ms-swift -f https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.html -i https://pypi.tuna.tsinghua.edu.cn/simple安装完成后输入swift --version检查是否安装成功。如果看到版本号信息恭喜你环境准备就绪2. 核心概念3分钟理解我们在做什么在按下回车键开始训练之前我们花3分钟了解一下今天要做的“自我认知微调”到底是什么。大模型微调你可以把它想象成“给一个博学的通用AI大脑进行专项培训”。比如Qwen2.5-7B-Instruct这个模型本来什么都知道但回答风格是通用的。我们通过微调让它记住“我叫小智是您的专属助手”这个信息以后它就会用这个身份来回答。LoRA微调这是一种高效的微调方法。传统微调需要更新模型全部的参数就像重写一整本书非常耗时耗力。LoRA则像是在书页边缘贴便利贴只增加一小部分可训练的参数适配器通过训练这些“便利贴”来改变模型的行为大大节省了计算资源。我们今天的目标使用ms-swift通过LoRA方法在Qwen2.5-7B-Instruct模型上用三个小型数据集进行快速微调让模型学会“自我认知”。理解了这些我们就可以开始实战了。3. 实战演练10分钟启动你的第一次微调这是最核心的部分。我们将运行一个完整的微调命令并解释每一部分的作用。3.1 一键启动微调将下面这段命令复制到你的终端中然后按回车。这就是我们今天要运行的全部代码。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命令有点长别怕我们拆开看每一部分是干什么的。3.2 命令参数详解小白也能懂CUDA_VISIBLE_DEVICES0告诉电脑“请使用第一张显卡GPU 0来运行”。如果你有多张卡可以改成0,1来使用前两张。swift sft这是ms-swift的核心命令sft代表“监督微调”就是我们今天要做的任务类型。--model Qwen/Qwen2.5-7B-Instruct指定我们要微调的基础模型。这里用的是通义千问的7B指令微调版。ms-swift会自动从魔搭社区下载这个模型。--train_type lora指定使用LoRA这种高效的微调方法。--dataset ...指定训练数据。我们用了三个数据集每个只取500条样本为了快速演示AI-ModelScope/alpaca-gpt4-data-zh#500500条中文指令数据。AI-ModelScope/alpaca-gpt4-data-en#500500条英文指令数据。swift/self-cognition#500500条“自我认知”数据这是让模型记住自己身份的关键。--torch_dtype bfloat16使用一种能节省显存且保持精度的计算格式。--num_train_epochs 1整个数据集只训练1轮。对于演示足够了。--per_device_train_batch_size 1每次训练只用1条数据。因为我们的显卡3090显存够用如果想在更小的卡上运行这个值可能需要设为1并配合梯度累积。--gradient_accumulation_steps 16梯度累积步数为16。简单理解就是它先算16次每次1条数据的梯度然后一次性更新模型参数。这模拟了batch_size16的效果但显存占用远低于真正的batch_size16。--lora_rank 8和--lora_alpha 32这是LoRA的核心参数。rank可以理解为“便利贴”的复杂程度数字越小参数越少。alpha是缩放因子。对于初学者用这个默认值就好。--output_dir output训练好的模型会保存在当前目录下的output文件夹里。--system You are a helpful assistant.给模型一个系统提示告诉它“你是一个有用的助手”。--model_author swift和--model_name swift-robot这是专门为“自我认知”数据集设置的告诉模型你的作者叫“swift”你的名字叫“swift-robot”。当你按下回车后终端里会发生以下几件事自动下载ms-swift会先自动下载Qwen/Qwen2.5-7B-Instruct模型和三个数据集。第一次运行需要一些时间取决于网速模型大约14GB。开始训练下载完成后训练会自动开始。你会看到屏幕上滚动着很多信息包括当前的训练步数、损失值loss等。保存检查点每训练50步--save_steps 50它会保存一次进度到output目录下。整个过程你的显卡风扇可能会开始狂转这是正常的。在RTX 3090上完成这1500条数据的1轮训练大约需要10-20分钟。4. 验证成果与微调后的模型对话训练完成后我们最激动人心的时刻来了看看模型到底学会了没有。4.1 使用训练好的模型进行推理训练结束后在output目录下你会看到类似vx-xxx/checkpoint-xxx的文件夹这就是我们训练好的LoRA权重。现在我们用这个权重来和模型对话。在终端中运行以下命令CUDA_VISIBLE_DEVICES0 \ swift infer \ --adapters output/vx-xxx/checkpoint-xxx \ --stream true \ --temperature 0 \ --max_new_tokens 2048请将output/vx-xxx/checkpoint-xxx替换成你实际生成的文件夹路径。运行后你会进入一个交互式对话界面。输入who are you?或者你好请介绍一下你自己。看看发生了什么微调前模型可能会回答“我是一个AI助手由XXX开发...”这是一个通用回答。微调后模型很可能会回答“我是swift-robot由swift开发的一个AI助手...”。它成功记住了我们在数据集中教给它的身份信息这就是“自我认知微调”的效果。你可以多问几个问题比如“你的作者是谁”看看它是否都能正确回答。4.2 进阶合并LoRA权重并加速推理上面的方式是在推理时动态加载LoRA权重。我们还可以将LoRA权重合并回原模型得到一个完整的、独立的新模型文件并且使用更快的推理引擎。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这个命令做了两件事--merge_lora true将LoRA权重合并到基础模型中。--infer_backend vllm使用vLLM推理引擎它能极大提升推理速度尤其是在处理多个并发请求时。5. 举一反三你的自定义微调实战刚才我们完成了一个标准示例。现在我们来聊聊如何用它解决你自己的问题。5.1 使用你自己的数据集假设你有一份公司产品的客服问答数据想让模型学习。你需要将数据整理成ms-swift支持的格式如JSON、JSONL。最简单的是Alpaca格式[ { instruction: 用户的问题, input: 可选的上下文信息, output: 期望的模型回答 }, // ... 更多数据 ]假设你整理好的文件叫my_data.json放在/home/yourname/data/目录下。那么训练命令只需要修改--dataset参数CUDA_VISIBLE_DEVICES0 \ swift sft \ --model Qwen/Qwen2.5-7B-Instruct \ --train_type lora \ --dataset /home/yourname/data/my_data.json \ # ... 其他参数保持不变 --output_dir my_custom_output5.2 尝试不同的模型ms-swift支持超过600个模型。如果你想试试其他模型比如最新的DeepSeek-R1只需修改--model参数--model deepseek-ai/DeepSeek-R1-Distill-Qwen-7B \ # 或者 --model meta-llama/Llama-3.2-3B-Instruct \模型会自动从魔搭社区或Hugging Face下载通过--use_hf true指定。5.3 在显存更小的卡上运行QLoRA如果你的显卡只有8GB显存如RTX 4070运行7B模型的全量参数微调会很吃力。这时可以使用QLoRA它能将模型量化到4位精度大幅降低显存占用。在命令中我们只需要做两处改动将--train_type lora改为--train_type qlora。确保--torch_dtype是bfloat16或float16。CUDA_VISIBLE_DEVICES0 \ swift sft \ --model Qwen/Qwen2.5-7B-Instruct \ --train_type qlora \ # 改为 qlora --dataset swift/self-cognition#500 \ --torch_dtype bfloat16 \ # ... 其他参数 --output_dir qlora_output这样显存占用可以从22GB左右降到9GB以下让更多设备能够参与大模型微调。6. 总结与下一步通过上面的步骤你已经成功完成了环境搭建一键安装了ms-swift。概念理解明白了微调和LoRA是什么。实战操作运行命令微调了一个7B大模型并验证了效果。举一反三知道了如何更换数据和模型以及如何在低显存设备上运行。整个过程你几乎没有写一行复杂的代码只是运行了几个简单的命令。这就是ms-swift设计的初衷降低大模型技术的使用门槛。回顾一下ms-swift的核心优势开箱即用一条命令完成从训练到推理的全流程。资源友好通过QLoRA等技术让消费级显卡也能玩转大模型。生态丰富支持数百个主流模型和数据集无需到处寻找。功能全面不仅支持微调SFT还支持强化学习DPO/PPO、模型评测、量化、部署等。你的下一步可以是什么探索Web UI运行swift web-ui命令可以在浏览器中通过图形界面操作所有功能完全不用碰命令行。尝试更多任务用你自己的业务数据训练一个专属的客服机器人、代码助手或文案生成器。深入原理如果你对技术细节感兴趣可以查阅ms-swift的官方文档了解LoRA、DPO等算法背后的原理。大模型微调并没有那么遥不可及。有了像ms-swift这样的工具每个人都可以成为自己AI模型的“创造者”。希望这篇教程能成为你探索大模型世界的第一块敲门砖。动手试试吧下一个改变你工作流的AI助手或许就出自你手。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

更多文章