01 什么是“LORA”?
专业解释
LORA(Low-Rank Adaptation,低秩适应)是一种模型的轻量微调方法,通过向模型的部分层添加可训练的低秩矩阵模块,实现模型在特定任务上的能力调整,同时保持原模型参数不变。
通俗解释
LORA 是一种给大模型“加外挂”的方法,让我们在不修改原始模型的情况下,用极少的额外参数就能让模型学会新任务。
比喻理解
把大模型比作一套西装,LORA就像是在西装外面加了一块贴身口袋,不用重新缝制整件衣服,就能增加一个实用的新功能。
背景补充
LORA 由微软研究员 Edward J.Hu 等人在2021年提出,原论文为《LoRA: Low-Rank Adaptation of Large LanguageModels》
02 为什么要用“LORA”?
1计算资源需求低
只需训练极少量参数,显著降低显存和计算开销。训练速度更快,甚至在消费级显卡上也能完成微调。
2 性能接近全量参数微调
通过插入的低秩矩阵,LORA 能有效捕捉任务相关特征。在大多数 NLP 和生成任务中,其性能与全量微调相近。
3 模块小巧,部署灵活,即插即用
LORA 微调产生的模块通常仅几十到几百 MB,便于存储、分享与快速切换。它与原始大模型解耦,推理时加载目标 LORA 模块即可,无需改动底座模型,真正实现“即插即用”。
左图表示的“全量微调”的参数量为: dd,右图表示的LORA微调的参数量为: 2r*d,后者远远小于前者。(r<<d)
03 “LORA”的原理
LORA 的核心思想是: 在不修改模型参数的情况下,通过添加一个额外的可训练模块,对模型行为进行小范围、有针对性的调整。
LORA 的工作机制包括两个核心阶段
微调阶段: 仅对低秩矩阵进行参数调整在大模型中,像注意力层的权重矩阵通常规模很大。如果直接对这些矩阵进行微调,不仅计算开销大,还容易破坏原有能力。
LORA 的做法是:
这种“低秩矩阵分解”的方式本质上是用更少的参数去近似建模一个复杂变换。
推理阶段: 在计算时叠加 LORA 模块
在推理过程中,模型的行为是这样的:
这样一来:
模型的核心结构不变,仍然使用原始训练好的参数。
LORA 模块则在不干扰主干的前提下,对最终输出产生影响。
整体就像给模型“加了一个外接调节器”,使其在推理时输出更加贴合任务需求。
04 “LORA”的典型应用场景
1大语言模型(LLM) : 通过 LORA 微调适配具体任务(如旅行助手、代码生成),无需改动原始基座模型。
2 扩散模型: 利用 LORA 定制化生成不同风格的图片(如艺术、写实、赛博朋克风格)。
3边端设备: 只需部署一个基座模型,结合多个 LORA 动态加载切换,即可适配不同推理任务,降低资源开销。