LoRA 原理¶
LoRA 是当前项目里模型微调主线的基础方法之一,因此在文档站点里单独保留一页说明。
LoRA 在做什么¶
LoRA 的核心思路不是把整个大模型都重新训练一遍,而是在原模型权重之外,额外挂上一小组低秩参数,让模型在保留原有能力的基础上,学习新的领域表达和任务偏好。
可以把它理解为:
- 原始模型参数基本保持不动。
- 训练时只更新较小的一组附加参数。
- 推理时再把这组附加参数和原模型一起使用。
这样做的直接好处是:
- 显存压力更低。
- 训练成本更低。
- 更适合快速做多组实验。
- 更方便做 rank sweep、best adapter 保留和回退。
为什么这个项目用 LoRA¶
这个项目的重点不是从头训练一个大模型,而是把现有模型往邮政客服场景上拉近。
因此 LoRA 比全量微调更合适,原因主要是:
- 邮政客服属于明确的垂直场景。
- 需要的是表达和任务对齐,不是重建基础语言能力。
- 需要在有限资源下快速试不同配置。
- 需要保留“哪一组 adapter 更好”的实验空间。
全量微调会把训练成本、显存压力和实验周期都拉高,而且对这个任务来说没有必要。邮政客服更需要的是“回答格式、客服语气、业务意图理解、引用材料组织方式”的适配,而不是重新学习通用语言能力。LoRA 可以把实验控制在 adapter 层,方便做 rank sweep,也方便回退到表现更稳定的版本。
LoRA 在当前项目里的作用¶
在当前项目里,LoRA 不是孤立存在的,它和 RAG 一起构成模型能力主线。
可以简单理解为:
- RAG 负责补知识。
- LoRA 负责补风格、任务理解和领域表达。
这样模型既不会完全靠参数死记知识,也不会只有检索没有场景化表达。
rank 为什么重要¶
LoRA 里一个很关键的超参数就是 rank。
它可以粗略理解为这组低秩参数的容量大小。rank 越小,参数量越少;rank 越大,可学习空间越大,但同时也更容易出现训练不稳定、格式漂移或能力污染。
文档里保留的统一结论是:
Qwen2.5-3B保留rank 2Qwen2.5-7B保留rank 4
这组结论主要用于当前文档整理和站点说明。实验本身仍然存在一定随机性,因此这里保留的是一版统一口径。