Token Lab搜索

← 论文资料库
高效微调与对齐 / 2021

LoRA:约束的是更新,而非整个模型

分解权重更新、计算可训练参数,并解释第一次梯度的不对称性。

LoRA: Low-Rank Adaptation of Large Language Models · Hu et al. · arXiv:2106.09685

Token Lab 原创学习解读 · 来源核对 2026-10-25 · 区分论文主张与合成教学例子。

01 · 论文提出了什么

LoRA 冻结预训练权重,学习低秩加性更新。论文研究了多个语言模型与适配任务;经验上的有效性不等于所有有用更新都具有同样的小秩。

一手来源:论文摘要 ↗
学习指南与本课目录LEARNING CONTRACT

理解 → 实现 → 研究

目标:解释本课机制、复现一个例子、测试一个失败案例。读完不自动代表掌握。

  • 理解层:写明假设、形状/单位和一个反例。
  • 实现层:复算数值例子并检查边界。
  • 研究层:在匹配预算下比较一个替代方法。

02 · 核心机制

Text / 原始公式
W ∈ Rᵈˣᵏ, A ∈ Rʳˣᵏ, B ∈ Rᵈˣʳ
W′ = W + (α/r)BA
Trainable parameters = r(k+d)
∂L/∂A = (α/r)BᵀG; ∂L/∂B = (α/r)GAᵀ

基座矩阵可以保持满秩,受约束的只是学习到的变化。两个瘦矩阵形成更新瓶颈。B 初始化为零、A 非零时,初始函数不变,A 的梯度为零而 B 可以开始更新;两者都置零会使两个梯度都被阻断。

符号与直觉为教学解释,完整假设及实现细节请对照原论文方法。

机制图与逐步推导

输入 x → 冻结 Wx + 可训练 (α/r)BAx → 损失与反向传播 → 更新 A/B,保留 W
原创机制示意图,按从上到下顺序阅读。 SVG ↓
符号与假设
符号含义
W ∈ ℝᵈˣᵏ冻结的基座权重
A ∈ ℝʳˣᵏ, B ∈ ℝᵈˣʳ可训练低秩因子
′有效权重接收的梯度
  1. 链式法则给出 ′)。代入 α·A+B·dA),收集系数即可得到两个因子梯度。
  2. 取 α/,,2]、,0]ᵀ、,则 ∂L/∂,2]ᵀ,∂L/∂,0]。初始更新为零仍能通过 B 开始学习。
  3. 学习率 0.1 后,,−0.2]ᵀ,-0.1,-0.2],[-0.2,-0.4]],秩至多为 1。下一步 A 就可能获得非零梯度。
实验检查点

断言 W 不变,初始输出与基座一致。先测梯度,再测下游质量。

LOCAL / SYNTHETIC / INTERACTIVE

改变一个变量,解释结果为什么变。

原创教学计算,并非论文 benchmark 复现。条形在面板内相对缩放,具体数值与单位以标注为准。

04 · 手算一个例子

原创算例:4096×4096 矩阵有 16,777,216 个元素。rank 8 增加 8×8192=65,536 个可训练元素,占稠密参数的 0.390625%。这是参数比例,不是总训练内存比例。平方误差矩阵逼近的最优 rank-r 残差为剩余奇异值平方和,而神经网络任务损失是另一目标。

05 · 设计实验

先运行本站小矩阵拟合实验,固定目标矩阵与种子扫描 rank,并与奇异值下界比较。真实语言模型研究还需固定目标模块、适配器缩放、token 预算和验证选择。在相近参数预算下,比较增大 rank 与覆盖更多模块。

研究交付物

写出一个假设,保存配置与原始结果,提出替代解释,只报告证据支持的结论。关联实验是本地起点,不是完整论文复现。

打开关联课程/实验 →

06 · 局限与审稿式追问

分析提醒:可训练权重更少,并未移除基座正向计算或激活存储。将 BA 合并进兼容稠密权重可去掉独立适配器路径,但多适配器服务或量化基座还有其他约束。只报告 rank 不足以描述实验。

为什么两个因子都零初始化不合适?

两个梯度都包含另一个因子。=0 时上述导数皆为零,若无其他干预,梯度下降无法离开零更新。

07 · 阅读原文

低秩参数化和初始化,然后是 rank 与目标模块实验。

年份采用首次 arXiv 投稿年份。未锁定版本的链接随修订变化,复现报告请记录准确版本。此处 DeepSeek-R1 明确固定为 v1。

继续学习本主题

MATHEMATICAL REVIEW · 2026-10-26

假设、参考实现与验收

G 表示 ∂L/∂W′。B 为 d_out×r,A 为 r×d_in;前向和梯度均保留 α/r。奇异值残差界针对 Frobenius 低秩逼近,不是下游语言准确率。

复核所示公式、中英解释及声明滑块范围。代码复现标量教学计算,不是论文训练系统。

运行前:预测一个边界情况

先运行本站小矩阵拟合实验,固定目标矩阵与种子扫描 rank,并与奇异值下界比较。真实语言模型研究还需固定目标模块、适配器缩放、token 预算和验证选择。在相近参数预算下,比较增大 rank 与覆盖更多模块。

提示:隔离假设

固定基线输入,只改变一个参数或边界;同时比较数值与声明单位。单例通过仅验证该样例。

最小可运行算例

将算例及所链接模块保存在同一目录。使用 Node.js 22 或更高版本,然后运行 node lora.mjs. 无需第三方运行依赖。

import {paperCalc} from './paper-core.mjs';
const result=paperCalc("lora",8);
console.log(result);
参考输出——先预测再展开
{
  "labels": [
    "Dense parameters",
    "Trainable adapter parameters"
  ],
  "values": [
    16777216,
    65536
  ],
  "unit": "parameters",
  "extra": 0.390625,
  "extraLabel": "Adapter / dense (%)"
}

测试与迁移

先运行本站小矩阵拟合实验,固定目标矩阵与种子扫描 rank,并与奇异值下界比较。真实语言模型研究还需固定目标模块、适配器缩放、token 预算和验证选择。在相近参数预算下,比较增大 rank 与覆盖更多模块。

在下方笔记记录输入、代码版本、期望值和实测值;再构造违反上述假设的反例,解释原结论为何不再成立。

下载完整代码包(.tar.gz) · 完整参考代码与回归检查

预测、检验与证据记录

展开答案前先预测一个结果;练习后记录差异和迁移测试。记录仅存本地,在不同语言版本间共用。

打开记录/导出/清除 →

数学复核范围逐篇记录,不代表完成论文实证复现;可在笔记中记录疑似错误。 复核范围