Fine-tuning

训练框架选择

上一节课我们准备好了训练服务器,选好了镜像,也验证了基础环境。接下来就要开始装训练相关的框架和工具了。但在动手之前,我们需要先回答一个问题:用什么框架来训练? 为什么需要训练框架 为什么不直接用 PyTorch 写代码来训练? 网上…

TL;DR

上一节课我们准备好了训练服务器,选好了镜像,也验证了基础环境。接下来就要开始装训练相关的框架和工具了。但在动手之前,我们需要先回答一个问题:用什么框架来训练? 为什么需要训练框架 为什么不直接用 PyTorch 写代码来训练? 网上…

上一节课我们准备好了训练服务器,选好了镜像,也验证了基础环境。接下来就要开始装训练相关的框架和工具了。但在动手之前,我们需要先回答一个问题:用什么框架来训练?

为什么需要训练框架

为什么不直接用 PyTorch 写代码来训练? 网上很多教程给你看几行代码搞定微调的示例,但其实真正用到生产环境远没有这么轻松。 显存永远不够用。 模型加载到显存里就要十几 GB,加上梯度和优化器状态,一张 24G 的显卡都可能 OOM。需要自己处理量化加载、梯度检查点、CPU 卸载等显存优化手段。 数据处理复杂。 不同模型的 Chat Template 不一样,多轮对话需要做 label masking,不同数据集格式也不一样。这些都需要针对每个模型、每种数据格式单独写处理逻辑。 训练过程一堆坑。 loss 变 NaN、显存爆了、断点续训没保存 checkpoint、多卡训练要配 DeepSpeed 或 FSDP 配置文件等。 训练完还没结束。 LoRA 权重要合并回基座模型、要导出推理格式、量化要单独工具链、测评要写评测脚本。 所以需要训练框架,把这些繁琐的工程问题封装好,只需要指定模型、数据、参数,框架搞定剩下的。 类比到 Java 开发: - 用 PyTorch 写训练脚本 = 用 Servlet 写 Web 应用 - 用训练框架 = 用 Spring Boot

主流训练框架有哪些

目前大模型微调领域,常见的训练框架有: HuggingFace PEFT:最底层的库,只提供 LoRA 等参数高效微调的实现,不包含数据处理、训练循环、模型导出等完整流程。适合算法研究者,不适合应用开发者。 LLaMA-Factory:社区非常火的微调框架,最大亮点是提供 WebUI,可以在浏览器里通过可视化界面完成微调。支持模型种类多,文档和社区活跃度好。一站式微调工具。 ms-swift(ModelScope Swift):阿里团队开发,ModelScope 官方训练框架。在国产模型支持上有明显优势——Qwen、DeepSeek 等模型几乎第一时间适配。支持 CLI 和 WebUI 两种操作方式。 | 特性 | ms-swift | LLaMA-Factory | HuggingFace PEFT | | --- | --- | --- | --- | | 国产模型支持 | 极强(Qwen/DeepSeek 第一时间适配) | 强 | 较慢(需手动配置) | | 功能覆盖 | 预训练/微调/对齐/评估/部署 | 微调/对齐/评估 | 仅限微调 | | 推理模型优化 | 针对 GRPO 和思维链有专项支持 | 支持部分对齐算法 | 较少底层优化 | | 上手难度 | 低(CLI/GUI 并存) | 低(CLI/GUI 并存) | 高(需编写大量代码) |

为什么选择 ms-swift

选择 ms-swift 主要基于以下原因: 国产模型适配速度。 ms-swift 由阿里团队开发,对 Qwen 系列模型的支持几乎第一时间跟进。课程用的是 Qwen3-0.6B,用 ms-swift 能获得更好的兼容性。 功能覆盖更全。 覆盖了继续预训练、微调(SFT)、人类对齐、评估、部署的全流程。 业界认可度高。 微调 Qwen 系列小模型的场景中,ms-swift 基本上是业界公认的首选方案。

Docker 镜像参考(自有服务器)

如果是自己的服务器搭建环境,推荐直接使用官方 Docker 镜像。如果是使用 AutoDL 等云平台,直接跳过这一节。 注意:CUDA 版本需要与 NVIDIA 驱动兼容。高版本驱动可以兼容较低版本 CUDA,但反过来不行。用 nvidia-smi 查看驱动支持的 CUDA 版本。 swift docker 镜像版本对照表:

## swift4.2.0
modelscope-registry.cn-hangzhou.cr.aliyuncs.com/modelscope-repo/modelscope:ubuntu22.04-cuda13.0.3-py312-torch2.11.0-vllm0.20.1-modelscope1.36.3-swift4.2.0
modelscope-registry.cn-beijing.cr.aliyuncs.com/modelscope-repo/modelscope:ubuntu22.04-cuda13.0.3-py312-torch2.11.0-vllm0.20.1-modelscope1.36.3-swift4.2.0
modelscope-registry.us-west-1.cr.aliyuncs.com/modelscope-repo/modelscope:ubuntu22.04-cuda13.0.3-py312-torch2.11.0-vllm0.20.1-modelscope1.36.3-swift4.2.0

## swift4.1.3
modelscope-registry.cn-hangzhou.cr.aliyuncs.com/modelscope-repo/modelscope:ubuntu22.04-cuda12.9.1-py312-torch2.10.0-vllm0.19.1-modelscope1.35.4-swift4.1.3
modelscope-registry.cn-beijing.cr.aliyuncs.com/modelscope-repo/modelscope:ubuntu22.04-cuda12.9.1-py312-torch2.10.0-vllm0.19.1-modelscope1.35.4-swift4.1.3
modelscope-registry.us-west-1.cr.aliyuncs.com/modelscope-repo/modelscope:ubuntu22.04-cuda12.9.1-py312-torch2.10.0-vllm0.19.1-modelscope1.35.4-swift4.1.3

## swift4.0.3
modelscope-registry.cn-hangzhou.cr.aliyuncs.com/modelscope-repo/modelscope:ubuntu22.04-cuda12.8.1-py311-torch2.10.0-vllm0.17.1-modelscope1.34.0-swift4.0.3
modelscope-registry.cn-beijing.cr.aliyuncs.com/modelscope-repo/modelscope:ubuntu22.04-cuda12.8.1-py311-torch2.10.0-vllm0.17.1-modelscope1.34.0-swift4.0.3
modelscope-registry.us-west-1.cr.aliyuncs.com/modelscope-repo/modelscope:ubuntu22.04-cuda12.8.1-py311-torch2.10.0-vllm0.17.1-modelscope1.34.0-swift4.0.3

## swift3.12.5
modelscope-registry.cn-hangzhou.cr.aliyuncs.com/modelscope-repo/modelscope:ubuntu22.04-cuda12.8.1-py311-torch2.9.0-vllm0.13.0-modelscope1.33.0-swift3.12.5
modelscope-registry.cn-beijing.cr.aliyuncs.com/modelscope-repo/modelscope:ubuntu22.04-cuda12.8.1-py311-torch2.9.0-vllm0.13.0-modelscope1.33.0-swift3.12.5
modelscope-registry.us-west-1.cr.aliyuncs.com/modelscope-repo/modelscope:ubuntu22.04-cuda12.8.1-py311-torch2.9.0-vllm0.13.0-modelscope1.33.0-swift3.12.5

选好了训练框架,下一节我们就来动手搭建完整的训练环境。

版本提示

模型、框架与接口会持续变化。涉及版本号、参数与生产配置时,请在实践前对照对应官方文档。

LLMentor系统化学习大模型应用工程

内容来自个人课程知识库备份,并经过结构化整理。技术版本持续演进,生产使用前请结合官方文档验证。