🧊 第一部分:冻结大模型 vs 训练小矩阵
左侧灰色大正方形代表预训练权重 W(4096×4096,约1670万参数),完全冻结不更新。
右侧两个金色小矩形代表 LoRA 插入的矩阵 A(4096×16)和B(16×4096),合计仅13万参数。
❄️ W (4096×4096)
16,777,216 参数 · 冻结
🔥 A (4096×16)
65,536 参数 · 可训练
🔥 B (16×4096)
65,536 参数 · 可训练
直观感受: 如果 W 是一个足球场,那么 A 和 B 加起来只有球场边的一个篮球大小。
参数量差距 ≈ 128 倍,LoRA 仅训练总参数的 0.78%。
🧩 第二部分:矩阵分解 ΔW = B × A
完整的更新量 ΔW(4096×4096)由两个低秩矩阵相乘逼近。秩 r=16 即可捕捉大部分信息。
秩 r = 16 意味着信息被压缩到 16 维子空间,足以捕捉任务相关的权重变化。
📊 第三部分:微调前后,权重矩阵发生了什么变化?
什么是"权重变化"? 神经网络由大量参数(权重)组成。微调就是在原有权重基础上做调整。
下面的步骤展示了这个过程:
1
原始权重
W₀(预训练好的)
+
2
权重变化量
ΔW(微调学到的)
=
3
新权重
W = W₀ + ΔW
热力图展示的就是步骤2中的 ΔW —— 每个小格子代表一个权重参数的变化大小。
红色表示权重增加,蓝色表示权重减少,白色/灰色表示几乎没变。
关键区别: 全量微调修改了所有参数(左图红蓝遍布),
而LoRA只修改了极少数参数(右图大部分是白色,只有少数红蓝点)。
🎯 第四部分:LoRA 中"秩"的直观对比
秩(r)决定了"自由度" —— 就像用多少种颜色来画一幅画。
r=2:只能用2种模式组合,变化非常受限(像2支笔)
r=8:8种模式,变化更丰富(像8支笔)
r=16:16种模式,变化最灵活(像16支笔)
LoRA 微调 ΔW (秩 r=2)
16,384 参数可训练
r=2:16,384 参数
r=8:65,536 参数
r=16:131,072 参数
💡 当前 r=2:
左侧热力图非常稀疏——只有极少数区域有颜色(红/蓝),大部分是白色。
这是因为只有2个"模式"可以组合,权重变化非常受限。
可训练参数仅 16,384 个(占总数0.1%)。