跳转至

LoRA 原理

LoRA 是当前项目里模型微调主线的基础方法之一,因此在文档站点里单独保留一页说明。

LoRA 在做什么

LoRA 的核心思路不是把整个大模型都重新训练一遍,而是在原模型权重之外,额外挂上一小组低秩参数,让模型在保留原有能力的基础上,学习新的领域表达和任务偏好。

可以把它理解为:

  1. 原始模型参数基本保持不动。
  2. 训练时只更新较小的一组附加参数。
  3. 推理时再把这组附加参数和原模型一起使用。

这样做的直接好处是:

  1. 显存压力更低。
  2. 训练成本更低。
  3. 更适合快速做多组实验。
  4. 更方便做 rank sweep、best adapter 保留和回退。

为什么这个项目用 LoRA

这个项目的重点不是从头训练一个大模型,而是把现有模型往邮政客服场景上拉近。

因此 LoRA 比全量微调更合适,原因主要是:

  1. 邮政客服属于明确的垂直场景。
  2. 需要的是表达和任务对齐,不是重建基础语言能力。
  3. 需要在有限资源下快速试不同配置。
  4. 需要保留“哪一组 adapter 更好”的实验空间。

全量微调会把训练成本、显存压力和实验周期都拉高,而且对这个任务来说没有必要。邮政客服更需要的是“回答格式、客服语气、业务意图理解、引用材料组织方式”的适配,而不是重新学习通用语言能力。LoRA 可以把实验控制在 adapter 层,方便做 rank sweep,也方便回退到表现更稳定的版本。

LoRA 在当前项目里的作用

在当前项目里,LoRA 不是孤立存在的,它和 RAG 一起构成模型能力主线。

可以简单理解为:

  1. RAG 负责补知识。
  2. LoRA 负责补风格、任务理解和领域表达。

这样模型既不会完全靠参数死记知识,也不会只有检索没有场景化表达。

rank 为什么重要

LoRA 里一个很关键的超参数就是 rank

它可以粗略理解为这组低秩参数的容量大小。rank 越小,参数量越少;rank 越大,可学习空间越大,但同时也更容易出现训练不稳定、格式漂移或能力污染。

文档里保留的统一结论是:

  1. Qwen2.5-3B 保留 rank 2
  2. Qwen2.5-7B 保留 rank 4

这组结论主要用于当前文档整理和站点说明。实验本身仍然存在一定随机性,因此这里保留的是一版统一口径。