全参数微调一个大模型,等于把模型里所有权重重新训练一遍:参数量以十亿计的底座,显存、算力、存储开销都很高,多数团队负担不起。LoRA(Low-Rank Adaptation,低秩适配)是目前最常用的低成本替代方案:冻结原模型的全部参数,只在旁边训练一小块新参数,用远低于全参微调的开销得到接近的效果。市面上大量“行业版”“风格版”模型,背后就是这类方法在起作用。
机制:不动底座,加一条低秩旁路
拆开看它的训练过程。原模型的权重矩阵被冻结,不参与任何梯度更新;在它旁边加两个小矩阵,习惯上记作 A 和 B:输入同时流过原路径和旁路,两路输出相加作为最终结果。A 先把维度降到一个很小的秩 r,B 再升回原维度,所以叫低秩分解——旁路学的其实是原权重需要补上的修正量。整个训练只更新 A 和 B,这两个矩阵的参数量比原矩阵小几个数量级。
用三句话概括数据流:进来的是一份任务数据和一个底座模型;发生的是在冻结权重下训练低秩旁路,让旁路输出不断逼近任务需要的修正;出去的是一个体量远小于原权重文件的适配器文件。部署时有两种用法:把 A、B 相乘后加回原权重,合并成一份新权重文件,推理速度和原模型几乎一样;或者保留底座不动,把适配器当外挂挂载,同一底座切换任务时只换补丁。
为什么能省这么多
省的是三样东西。一是训练开销:梯度更新和优化器状态只需要为那两个小矩阵维护,虽然底座的前向计算还在,总开销仍比全参微调低一大截。二是存储:原模型只有一份,每个任务只存一个小补丁文件,十个任务就是十个小文件加一个共用底座。三是切换成本:一个底座可以挂多个适配器,按场景快速切换,不必为每个任务单独部署一套模型。在底座上先做低比特量化、再训练 LoRA 的组合方案(QLoRA 一类思路)还能把显存门槛再往下压,让消费级设备参与训练成为可能。
便利贴类比:哪里像,哪里不像
常见的类比是把 LoRA 比作给一本厚说明书贴便利贴:书本身不改,只加几张便签说明“这里应该这么理解”。像的部分是底座不变、增量很薄、随手可换。不像的部分更要紧:便利贴互相独立,LoRA 的旁路输出却是和底座输出逐层相加生效的,补丁学的是对底座行为的修正量;便签撕掉书照样能读,补丁单独存在则没有意义,它必须和训练时的那个底座配套使用。类比能帮着建立直觉,机制还是要回到矩阵相加这一层。
什么任务适合挂 LoRA
LoRA 擅长调整模型的“行为方式”:让输出带上特定语气、固定成某种格式、贴近某个行业的表达习惯。它不擅长往模型里塞新知识。下面这张表把常见需求分流一遍。
| 需求场景 | 更合适的路线 | 判断标准 |
|---|---|---|
| 换语气、固定输出格式 | LoRA 微调,几百到几千条样本起步 | 数据里的风格是否稳定一致 |
| 需要经常更新的领域知识 | 检索增强(RAG) | 知识是否经常变化、能否整理成文档 |
| 一个底座服务多个任务 | 同一底座挂多个适配器 | 任务之间是否互相干扰、切换是否频繁 |
| 任务与底座能力差距很大 | 全参微调或直接换底座 | 小补丁试过之后仍明显不够时 |
表里第二条值得单独强调:想让模型记住新事实、且这些事实还会更新,检索比微调合适——LoRA 改变的是行为倾向,把易变的知识压进权重既低效又难更新;RAG 把知识放在外部文档里,改起来成本低得多。
LoRA 速查
- 冻结底座全部参数,只训练低秩旁路 A、B
- 部署可合并进权重,也可作为适配器挂载切换
- 行为调整用 LoRA,知识更新优先 RAG
- 秩越小越省,越大越接近全参微调的开销
- 补丁必须和训练时的底座版本配套
它做不到什么
其一,记不住新事实,上面已经解释过原因,知识类需求请优先考虑 RAG。其二,效果有上限:低秩假设意味着它捕捉的是低维修正,任务需要的能力离底座太远时,秩取再大也补不上,硬拉高秩只会逼近全参微调的开销,还可能过拟合。秩怎么取舍,LoRA 的秩取大取小差在哪专门算过这笔账。其三,数据质量决定成败:几百条脏数据造成的伤害,比几千条干净数据能提供的帮助更大,样本里的错误格式和矛盾标注会被原样学进补丁。其四,训练本身仍是个工程活,学习率调度、warmup 这些细节照常影响结果,训练为什么要先热身讲的就是其中一件;要估算训练开销,得先弄明白算力怎么计量,FLOPS 是什么可以作为起点。
关于 LoRA 的三个疑问
- 多个微调好的补丁能叠加在一起用吗?:部分推理框架支持挂载多个适配器并加权合并,但补丁之间会互相干扰,合并后的效果必须重新验证,不能当作简单相加。
- 没有多少张卡也能玩 LoRA 吗?:中小规模底座配合量化方案,在单张消费级显卡上训练 LoRA 是常见的做法;具体能跑多大的底座,以所用框架的显存估算工具为准。
- 补丁换一个底座还能用吗?:不能直接用。适配器学的是针对特定底座的修正量,换底座等于修正对象变了,需要重训或重新评估效果。
理解了 LoRA 的机制,就能看懂大量“行业版”模型是怎么低成本长出来的:同一个底座,不同的补丁,服务于不同的场景。


