LoRA(Low-Rank Adaptation)的核心思想是:冻结预训练模型的原始权重,只训练注入的低秩分解矩阵来近似权重的更新量。
对于预训练模型中的一个权重矩阵 $W_0 \in \mathbb{R}^{d \times k}$,在微调时,我们不直接更新 $W_0$,而是学习一个增量 $\Delta W$,并将其分解为两个低秩矩阵的乘积:
$$ \Delta W = B A $$
其中:
$$ h = W_0 x + \Delta W x = W_0 x + BAx $$
LoRA 中常引入一个缩放因子 $\alpha$,实际更新量为:
$$ h = W_0 x + \frac{\alpha}{r} BA x $$
$\alpha$ 与秩 $r$ 一起控制 LoRA 对原始模型行为的扰动幅度。$\alpha$ 越大,LoRA 的影响越强;$\alpha$ 越小,模型越接近原始预训练行为。
这是整道题最核心、也最有讨论深度的部分。可以从以下几个角度来解释:
Aghajanyan et al.(2020)的研究发现:预训练语言模型在适应下游任务时,权重的更新量 $\Delta W$ 即使是在满秩空间中进行微调,其有效的“内在维度”也很低。
换句话说,模型不需要在几百万维的参数空间中自由移动,只需要在一个低维子空间中调整就足以适应新任务。
LoRA 正是利用了这一观察:与其学习完整的 $\Delta W$($d \times k$ 个参数),不如只学习它在低秩子空间中的表示 $BA$($r(d+k)$ 个参数)。
预训练模型经过大规模语料训练,其权重矩阵已经编码了丰富的通用语言知识。下游任务的微调本质上是在这个通用表示之上做“小幅修正”。
这种修正不需要推翻整个权重矩阵,只需要在某些关键方向上做调整即可。低秩分解恰好提供了一种结构化的、参数高效的方式来表达这种“小幅修正”。
低秩约束本身就具有正则化作用。它限制了参数更新的自由度,迫使模型在低维流形上寻找解,从而:
这类似于权重衰减或 dropout 的效果,但 LoRA 是通过结构性约束实现的。
从奇异值分解的角度看,权重更新 $\Delta W$ 中最重要的方向通常对应最大的奇异值。低秩分解相当于只保留 $\Delta W$ 的前 $r$ 个主成分方向,丢弃噪声或次要方向。这与主成分分析的直觉一致:大部分“信号”集中在少数几个方向上。
这道题完全可以作为面试题,且质量很高。以下是它能够区分的层次:
| 维度 | 内容 |
|---|---|
| 核心公式 | $W = W_0 + BA$,$\text{rank}(BA) \le r$ |
| 关键洞察 | 微调时的权重更新量具有低内在秩 |
| 训练参数 | $r(d+k)$ 而非 $d \times k$ |
| 正则化效果 | 低秩约束限制模型偏离预训练分布 |
| 面试价值 | 高——能区分候选人是对公式死记硬背还是有真正的数学直觉 |
这道题特别适合在大模型/LLM 微调相关的面试中提出,作为考察候选人理论与实践结合能力的标准题目。
评论专区
评论加载中...登录后即可发表评论