File size: 1,558 Bytes
dc69c2e 0ebf806 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
---
license: apache-2.0
---
LoRA 的结构:
LoRA 使用两个矩阵 A 和 B 来近似一个大的权重更新矩阵。
A 矩阵:称为 "lora_A" 或 down-projection
B 矩阵:称为 "lora_B" 或 up-projection
矩阵尺寸:
假设原始层的权重矩阵为 W ∈ R^(d×k)
A ∈ R^(r×d)
B ∈ R^(k×r)
其中 r 是 LoRA 的秩(rank),通常远小于 d 和 k
压缩原理:
LoRA 的更新可以表示为 W + BA,其中 BA 是一个低秩矩阵。
通过减小 r(秩),我们可以显著减少参数数量,同时保留一定的适应能力。
压缩逻辑解释:
对于 lora_A(down-projection):
原始形状:(old_rank, dim)
新形状:(new_rank, dim)
压缩发生在第一个维度,即将 old_rank 减小到 new_rank
对于 lora_B(up-projection):
原始形状:(dim, old_rank)
新形状:(dim, new_rank)
压缩发生在第二个维度,同样将 old_rank 减小到 new_rank
初始化新张量:
对于 lora_A,新权重被随机初始化
对于 lora_B,新权重被初始化为零
如果新的秩小于旧的秩,会保留原始权重的一部分
这种压缩方法的效果:
1. 参数减少:通过减小秩,大幅减少了参数数量,从而减小了模型大小。
2. 信息保留:通过保留部分原始权重,尽量保持了模型的部分学习能力。
3. 一致性:对模型中的所有 LoRA 层统一应用这种压缩,确保了整体结构的一致性。

|