LoRA 的原理、常见超参数与注入模块是什么?
未标记
考查重点:低秩增量与参数作用。冻结 W,用低秩 BA 学增量;rank 控容量,缩放控制增量强度,target modules 决定注入哪些注意力/前馈投影
本题目录
参考答案
核心回答
LoRA 是一种参数高效微调方法:冻结原模型权重 W₀,在选定的线性层中,用两个可训练矩阵 A、B 的乘积表示权重增量。前向计算时,原权重的输出与低秩增量的输出相加;训练时只更新 LoRA 参数,原模型仍然参与计算。
常见配置分别控制四件事:
- target modules:在哪些层注入
LoRA,常见位置是注意力的 Q/K/V/O 投影,也可以覆盖前馈网络的线性层。 - rank(r):A、B 之间的中间维度,决定新增参数量,并限制权重增量的秩。
- alpha:标准
LoRA用alpha/r缩放增量,再与原路径相加;它不改变矩阵尺寸。 - dropout:训练时对
LoRA分支输入随机置零,用于正则化,推理时关闭。
例如让模型按指定规则抽取关键词,可以保留基座权重,通过训练 LoRA 参数调整关键词选择和输出方式。适配器可以单独保存、按任务切换,普通线性 LoRA 也可以合并进原权重。
原权重没变,为什么输出会变?
下图只放大其中一个线性层。重点看同一个输入怎样走两条路径,再把输出相加;图中“可训练”只指新增的 A、B。
flowchart TD
X["同一输入 x"] --> W["原权重 W₀<br/>冻结,继续参与计算"]
X --> A["A:输入维度 → r<br/>可训练"]
A --> B["B:r → 输出维度<br/>可训练"]
B --> S["乘以 alpha/r"]
W --> P["两路输出相加"]
S --> P
P --> Y["输出 y,交给后续网络"]A、B 路径的输入和输出尺寸分别与原线性层一致,中间才是 r 维。沿用列向量写法,暂时忽略偏置与 dropout:
x : [d_in, 1] W₀ : [d_out, d_in]
A : [r, d_in] B : [d_out, r]
y = W₀x + s·BAx ΔW = s·BA
经典 LoRA:s = alpha/r rank(ΔW) ≤ r
A 先把输入变成 r 个中间数,B 再变回原层的输出维度,因而两条路径才能相加。假设原路径得到 [1, 2],分支得到 [0.1, 0.2],缩放系数为 2,相加就是 [1.2, 2.4]。这些是解释机制的小数字,输出仍是中间表示,不是直接输出了两个关键词。
这里的“低秩”可以理解为:增量必须经过 r 维的中间通道,因此能表达的变化受限。它并不要求 W₀ 本身也是低秩,也不需要先对 W₀ 做 SVD 分解。
rank 到底省下多少参数?
假设这一层的原矩阵是 1000×1000,全参数微调要更新 1,000,000 个参数。LoRA 只更新 A、B,参数量为 r(d_in + d_out):
| rank | A 的尺寸 | B 的尺寸 | 新增可训练参数 |
|---|---|---|---|
| 8 | 8×1000 | 1000×8 | 16,000,是原矩阵参数量的 1.6% |
| 16 | 16×1000 | 1000×16 | 32,000,是原矩阵参数量的 3.2% |
r 越大,中间通道越宽,能够学习的调整更丰富,但参数和相关训练开销也更多。这是单个线性层的算例;全模型的 LoRA 参数量要把各注入层的 r(d_in + d_out) 相加,若还训练其他模块,其参数也要另计。因此,相同的 r 配上不同的注入位置,参数量也会不同。
原来的 100 万个参数仍要加载、参与计算;主要省下的是这些冻结参数的梯度和优化器状态,以及每个任务单独保存完整模型的成本。冻结只是不更新原权重,反向传播仍要经后续冻结层,把梯度传回较早层的 A、B,因此仍有主干计算和中间激活开销。可训练参数变少,不代表整场训练显存、耗时按同样比例下降;长序列的中间激活仍可能占很多显存。
把四个配置放进同一个例子
关键词抽取示例采用以下 LLaMA-Factory 配置:
lora_rank: 8
lora_alpha: 16
lora_dropout: 0
lora_target: all
这表示在工具为当前模型识别的适用线性层上添加 LoRA,中间宽度为 8,经典缩放 alpha/r = 16/8 = 2,不开启分支输入 dropout。这是一组实验起点,不是通用最优值。
如果只把 rank 改成 16,参数量会增加,但缩放也从 2 变成 1。想比较“分支变宽、缩放不变”,可以同时设 alpha=32,再用同一份验证数据比较关键词遗漏、格式错误和资源开销。保持比例只控制了这一项,不能保证两组训练行为相同。
alpha 与学习率控制的环节也不同:alpha/r 决定前向计算时增量加入的大小,学习率决定优化器怎样更新可训练权重。调整 alpha 会影响训练过程,但不能直接把它当成另一个学习率。
dropout 的作用是让训练时分支少依赖某些输入组合。例如设为 0.1,每个分支输入值在训练时有 10% 概率被暂时置零;它不删除 A、B 的权重。若数据与标注没有明显问题,训练表现好、验证表现差,可以比较它能否缓解过拟合。
作用位置也不局限于 Q、V。课程的 Qwen3 配置覆盖注意力的 q_proj、k_proj、v_proj、o_proj,以及前馈网络的 gate_proj、up_proj、down_proj:
- Q、K 投影改变用于计算注意力分数的表示,影响各位置之间的关注程度;V 投影改变被加权汇总的信息。
- O 投影继续变换多头注意力的输出;前馈网络投影改变注意力之后的特征变换。
相同层名会在多个网络层中重复出现,每个匹配层各有自己的 A、B。缩小到只训练 Q、V,可以减少适配器参数,也减少了能调整的位置;既要核对实际匹配了哪些层,也要比较同一份验证集上的效果。
上面的字段属于 LLaMA-Factory;直接使用 PEFT 时,四项对应 r、lora_alpha、lora_dropout、target_modules。PEFT 覆盖适用线性层常用 target_modules="all-linear",不要直接照搬 LLaMA-Factory 的 all。更换模型或框架后,应核对实际层名、启动日志与生成的 adapter_config.json。
常见追问
为什么一个矩阵随机初始化,另一个置零?
让初始 BA=0,刚加上 LoRA 时先保持原模型输出;随后训练再逐渐引入变化。若 A、B 同时为零,常规梯度更新下两边梯度也都为零,分支就学不起来。原论文采用 A 高斯初始化、B 为零;教程使用的 PEFT 0.18.1 中,普通线性 LoRA 默认采用 A 的 Kaiming-uniform 初始化、B 为零。两者都让初始增量为零,但随机分布不同。
r 越大,效果一定越好吗?
不一定。如果训练集和验证集都表现不足,在输入、标注和加载流程正常的前提下,可以怀疑分支容量不够;如果训练集已经很好而验证集变差,再增大 r 可能只是加重过拟合。要比较同一组任务样本,不能只看可训练参数变多。
冻结基座,是不是就不会遗忘旧能力?
不能保证。基座权重虽然不改,分支会改变实际输出,所以仍要回归检查需要保留的旧任务。
推理时能去掉这条分支吗?
普通 LoRA 在推理模式下关闭 dropout 后,可以把 s·BA 加到 W₀ 中,得到同形状的新权重,合并后不必另算分支;保留独立 Adapter 方便切换任务,但仍有分支计算开销。仅保存 Adapter 不等于保存了完整模型,仍需要匹配的基座。量化模型和特殊变体能否合并,要按框架支持判断。
对应教程
- 第 30 章:模型训练原理与高效微调 §6.1–6.6:直接覆盖两条路径、1000 维参数算例、rank、alpha、target 和 dropout。
- 第 31 章:LLaMA-Factory 环境搭建与微调实战 §7.4:对照 8/16/0/all 的配置落地及实际预览。
- 第 32 章:微调效果评估与模型部署 §5:回看 Adapter 与基座的关系,以及合并导出。
参考资料
- 国内:LLaMA-Factory:SFT 训练——用训练配置把 LoRA 的注入位置与秩对应到
lora_target、lora_rank等字段,并说明模型、数据和模板应怎样配合。 - 国内:Datawhale:第六章大模型训练流程实践 §6.3——借鉴冻结基座和两路计算的讲解,解释 LoRA 分支如何参与前向计算,以及如何按层名选择注入位置。
- 国内:WeThinkIn:后训练——微调与对齐 §25——参考参数量、训练显存与注入位置的区分,补充为什么冻结权重仍有主干计算,以及不同投影分别调整什么。
- 国内:阿里云 PAI:大语言模型微调指引“lora_dim/lora_rank”——借鉴秩增大不保证收益的说明,保留用同一份验证数据比较容量的答法。
- 国外:Hu 等:LoRA: Low-Rank Adaptation of Large Language Models §4——依据原论文说明低秩权重增量、初始化、缩放和权重合并的原理。
- 国外:Hugging Face PEFT:LoRA——依据配置、初始化和适配器用法,并结合 PEFT 0.18.1 线性 LoRA 实现,说明正文中课程版本的初始化与计算方式;本文使用标准 LoRA 的
alpha/r缩放,其他变体可能不同。
相关面经
55 篇小米
大模型算法微调的具体实现,LoRA 的 rank 怎么定?
华为
大模型算法工程师LoRA低秩适配的底层原理
零一万物
知识图谱算法实习生lora原理
京东
大模型算法工程师大模型有哪些微调方案,解释LoRA微调底层原理。
滴滴
企业级算法实习生介绍一下lora?是用来做什么的?
展开剩余 50 篇面经
腾讯
大模型算法实习生lora微调的细节,量化相关知识
腾讯
多模态算法岗简述LoRA的底层原理
小鹏汽车
端侧 Agent你前面提到 LoRA,讲下 LoRA 的数学原理。
华为
多模态大模型 AI 算法工程师LoRA微调原理;
OPPO
是否接触过LoRA低秩适配技术?
字节跳动
大模型算法什么是lora,秩是什么含义,为什么增大lora的秩,性能提升到一定程度不再提升。
拼多多
大模型算法简述你项目中LoRA的具体参数配置方案
公司未注明
LoRA的原理,秩怎么选,为什么用A初始化为0/高斯B初始化为0(有一次面试官故意反着说看我会不会纠正)
百度
大模型算法工程师请完整写出 LoRA 低秩微调的核心计算公式,并解释各参数物理意义。
公司未注明
**3. LoRA 微调核心超参数**
中兴
AI 大模型算法工程师LoRA原理,为什么rank=4,8
格尔软件
lora的原理与意义
小红书
### 4. LoRA底层原理、Rank选取依据、A/B矩阵初始化细节
公司未注明
**4. LoRA 低秩微调的核心原理与作用层**
货拉拉
大模型算法详细讲解LoRA低秩适配的底层原理
商汤
大模型应用算法工程师LoRA 原理、常见超参、一般加在 Transformer 哪些模块
字节跳动、腾讯、蚂蚁集团
Lora原理
智谱
大模型算法LoRA微调原理
新蛋
AI应用开发lora的时候如何设置参数,插入的层。
米哈游
AI 研发工程师(AIGC)lora的原理
阿里巴巴
大模型推荐算法lora原理
腾讯
大模型算法工程师讲一下 LoRA 原理
MiniMax
大模型算法工程师说一下LoRA的原理;LoRA完推理的时候要挂着Adaptor吗?
腾讯
大模型算法工程师讲一下 LoRA 原理
阿里巴巴
AI应用开发能说一下lora微调为什么可以只调整少量参数就可以实现好的效果
字节跳动
agent开发lora原理,为什么实习做全量
阶跃星辰
LLM Agent 实习生lora初始化,ab矩阵,设计原理
京东
大模型算法实习生LoRA 微调原理:微调哪些层?常用训练参数设置:epoch、learning_rate 等。
美图
AIGC 算法实习生介绍一下LoRA的原理
快手
AIGC 算法实习生LoRA微调的原理
快手
AIGC 算法实习生阿里巴巴
AI 应用研发LoRA原理
虾皮
AIGC 算法实习生LoRA参数,挂在那些层
阿里巴巴
应用开发算法了解LoRA微调吗?在训练LoRA时,两个参数矩阵分别是如何初始化的?
得物
大模型算法工程师贝壳
RAG 应用开发lora微调怎么做
字节跳动
AI 大模型算法了解 PEFT 吗?再讲讲 LoRA,重点说明低秩假设的合理性
快手
Agent 算法腾讯
大模型算法LoRA微调原理是什么?
阿里巴巴
大模型什么是 LoRA?它在大语言模型微调中的优势和原理是什么?
阿里巴巴
Agent 开发请讲一下LoRA技术,除了减少参数量,它还有什么优点?你做的LoRA相关工作,后续有落地应用吗?
哔哩哔哩
AIGC 创作平台研发工程师什么是LoRA微调?为什么要用LoRA?
小马智行
研发工程师被问了LoRA的具体内容
字节跳动
大模型算法说一下LoRA的原理;LoRA完推理的时候要挂着Adaptor吗?
快手
多模态大模型研发说一下LoRA的原理;怎么理解“低秩”(r为什么远小于d)
阿里巴巴
大模型算法LoRA作为一种高效的微调方法,它的核心原理是什么?能讲讲吗?
北京深睿博联科技有限责任公司
算法实习生百度
大模型算法实习生为什么 Lora 要将矩阵作用到 attention 层?
快手
大模型算法讲一下 LoRA ,两个权重矩阵一般怎么初始化,能都全0吗
虾皮
大模型算法Lora有哪些参数可以调
收录题集
模型微调与适配
大模型工程面试题
训练、数据与模型优化:从数据清洗到 LoRA
算法岗专项面试题
公司案例问答汇编
项目:看你做过LoRA微调,那你是怎么选rank值?
展开其余 3 条原题
项目:讲一下LoRA微调的原理,
八股:LoRA 初始化怎么做的,
展开剩余 20 份题集
后训练综合问答
预训练与架构
RAG与知识库
RAG瓶颈与发展 讲论文和项目,聊RAG瓶颈和后面发展看法,Lora训练相关。
SFT与指令微调
LoRA与PEFT
LoRA与PEFT 「京东、字节跳动、百度、美团、腾讯、蚂蚁集团」
- 解释LoRA的原理、训练方法、低秩矩阵更新的优势,以及使用LoRA前后参数量的变化;说明为什么在资源限制之外还选择LoRA(例如在LLaMA Factory框架中)。
- 讨论LoRA rank值的选择经验。
其余 2 条问法
展开其余 11 条原题
LoRA初始化与秩设置
LoRA原理
LoRA微调与其它方法
LoRA超参数设置
微调方法对比与选型 在京东业务场景(如智能客服)中,如何选择适合的微调策略(如LoRA、全参数微调)?在什么场景下选择LoRA?原理 & 为什么它能高效微调大模型?
LoRA与AdaLora 解释一下LoRA、AdaLora,
多模态与计算机视觉
Qwen-VL架构 介绍Qwen Image以及Qwen Image Edit架构,VAE细节。
AI系统与训练推理工程
深度学习基础汇编
展开其余 1 条原题
MQA/GQA/MLA












