大模型中的LoRA是什么

LoRA的全称是Low-Rank Adaptation(低秩自适应)。它的核心思想是为解决大模型全参数微调成本高昂的问题而设计的一种高效微调方法。其基本原理可以分为以下几个要点:
一、核心假设与问题出发点

内在低秩特性(Intrinsic Low-Rank Property):LoRA的核心假设是,当一个预训练好的大型模型学习一个新任务时,其庞大的权重矩阵 W 所需的更新量 ΔW 是“低秩”的。这意味着,尽管 ΔW 在数学形式上是一个巨大的矩阵(例如有数百万个参数),但其蕴含的、真正驱动模型学会新任务的“有效信息”其实非常集中和简单。这就像压缩一个大型文件,大部分内容是重复或冗余的。
全量微调的成本问题:直接微调像GPT这样具有数十亿参数的模型的所有参数(即全量微调),需要巨大的计算资源和存储空间,成本非常高,难以普及。

二、LoRA的巧妙方案:不直接调原始权重
LoRA不直接更新原始的巨大权重矩阵 W,而是提出一个巧妙的“旁路”方案:

冻结原权重:保持预训练模型的原始权重 W 完全不变(冻结)。
引入低秩旁路:在原始权重旁边,通过添加两个很小的、低秩的矩阵A和B,来模拟并实现权重的更新量 ΔW。
训练小矩阵:在微调过程中,只训练新引入的这两个小矩阵A和B,而原始权重 W 保持冻结。

三、数学公式与工作流程
LoRA将模型的前向传播公式,由原来的:
h = Wx
改变为:
h = Wx + BAx
其中:

W:原始的、冻结的预训练权重。
A:一个降维矩阵(例如,将维度从 d 降到 r,r << d)。它通常用高斯分布初始化。
B:一个升维矩阵(例如,将维度从 r 升回 d)。它通常初始化为全0矩阵。
BA:这两个小矩阵的乘积共同构成了对原始权重的低秩更新近似,即 ΔW ≈ BA。

关键流程:

训练阶段:只训练 A 和 B。由于 r 很小(通常为 1, 2, 4, 8, 16 等),这两个矩阵的参数量极少,通常只占原始模型参数的 1% - 10%,从而极大降低了训练开销。
推理/部署阶段:可以将训练好的 BA 直接合并(相加)到原始权重 W 中,形成新的权重 W‘ = W + BA。合并后的模型在推理时和原始架构完全一样,不引入任何额外的计算延迟。

四、LoRA的主要优点(总结自文档)

参数量大幅减少:一个中心预训练模型可以服务多个下游任务,只需为每个任务存储一个很小的 LoRA 权重文件(通常几十 MB),节省了大量存储。
无额外推理开销:训练完成后,LoRA 权重可以合并到原模型,推理速度和原模型完全一致。
训练稳定,效果良好:在实践中,LoRA 往往能取得与全量微调相近的性能,同时避免了在小数据集上过度拟合的风险。
支持多任务热插拔:在应用时,可以通过加载或卸载不同的 LoRA 权重(BᵢAᵢ),快速切换模型以适应不同的任务,实现灵活的“模型即服务”。

总结
简而言之,LoRA 的原理就是利用“权重更新具有低秩特性”这一假设,通过冻结大模型原有权重,只训练一组极小的低秩矩阵来高效地适应新任务。它完美地平衡了微调效果、计算成本和部署便利性,因此成为目前最流行、最通用的高效微调方法。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容