ms-swift × Qwen1.5-7B-chat

使用 ms-swift 框架微调
Qwen1.5-7B-chat 模型

完整的模型微调、量化与部署实践指南。从 LoRA 训练到 Ollama 部署, 在低资源设备上实现高效的本地推理。

ollama run samge/qwen1half-7b-chat-ruozhiba:int4

核心特性

完整的端到端解决方案,从模型训练到生产部署

高效微调

使用 ms-swift 框架进行 LoRA 微调,支持多卡训练,大幅降低资源需求

智能量化

支持 int4 量化,模型大小从 15.8G 压缩至 4.2G,推理速度提升

本地部署

通过 Ollama 实现一键部署,支持跨平台运行,数据完全本地化

格式转换

使用 llama.cpp 将模型转换为 GGUF 格式,兼容性更强

灵活配置

支持自定义数据集、调整训练参数,满足不同应用场景需求

云端发布

支持推送到 Ollama 模型库,方便分享和协作

实践流程

六大步骤完成从模型训练到部署的全流程

1

下载基础模型

下载 Qwen1.5-7B-chat 基座模型,为微调做准备。

git lfs clone https://www.modelscope.cn/qwen/qwen1.5-7b-chat.git
2

LoRA 微调

使用 ms-swift 框架进行 LoRA 微调,支持自定义数据集。

swift sft --model_type qwen1half-7b-chat \
--dataset AI-ModelScope/ruozhiba \
--sft_type lora --num_train_epochs 3
3

合并 LoRA 权重

将训练好的 LoRA 权重合并到基础模型中。

swift export --ckpt_dir output/checkpoint-16461 --merge_lora true
4

转换为 GGUF 格式

使用 llama.cpp 将模型转换为 GGUF 格式并量化。

python convert_hf_to_gguf.py checkpoint-16461-merged --outtype f16
./llama-quantize input.gguf output.gguf q4_0
5

构建 Ollama 模型

创建 Modelfile 并使用 Ollama 构建模型。

echo "FROM model.gguf" > Modelfile
ollama create samge/qwen1half-7b-chat-ruozhiba:int4 -f Modelfile
6

运行与发布

本地测试模型,然后推送到 Ollama 模型库。

ollama run samge/qwen1half-7b-chat-ruozhiba:int4
ollama push samge/qwen1half-7b-chat-ruozhiba:int4

常见问题

关于模型微调和部署的常见疑问解答

LoRA (Low-Rank Adaptation) 微调只训练少量额外参数,大大降低了显存需求和训练时间。对于 7B 参数的模型,LoRA 微调只需要几张 GPU 就可以完成,而全量微调需要数十张 GPU。同时,LoRA 在很多任务上能达到与全量微调相当的效果。

int4 量化通常会有 1-3% 的精度损失,但对于大多数实际应用场景影响很小。通过使用 Q4_0 量化方法,可以在模型大小和性能之间取得很好的平衡。如果对精度要求很高,可以考虑使用 int8 或 f16 量化。

ms-swift 支持 JSONL 和 CSV 格式的自定义数据集。数据集需要包含 instruction、input、output 等字段。具体格式要求可以参考 ms-swift 官方文档中关于自定义数据集的说明。

Ollama 支持 Windows、macOS 和 Linux 平台。量化后的模型在普通家用电脑上即可运行,不需要专门的 GPU。对于 int4 量化的 7B 模型,通常需要 8-16GB 内存即可流畅运行。