AsymmetryLoRA
Jiacheng-Zhu-AIML/AsymmetryLoRA加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下这个场景:你在微调一个 70B 参数的大模型,想节省算力,于是用了 LoRA——把要训练的权重矩阵 W 更新建模成两个低秩矩阵的乘积 BA,其中 B 是 r×d,A 是 d×r,d 是原始维度,r 是低秩。你理所当然地认为 B 和 A 同样重要,毕竟是乘积关系。
但 MIT 的研究团队告诉你:错了。在 LoRA 中,矩阵 B(右侧因子,负责把低维表征「推出去」)比矩阵 A(左侧因子,负责把信号「拉回来」)重要得多——冻结 A 只训练 B,效果不仅不会变差,有时反而更好。
这就是 AsymmetryLoRA 项目要告诉你的事情。
LoRA(Low-Rank Adaptation)自 2021 年由微软提出以来,已成为大模型微调的事实标准。它的核心思想是:冻结原始预训练权重 W,只训练两个低秩矩阵 A 和 B,更新公式为 W' = W + BA。
这个公式看起来对称——A 和 B 共同决定了更新方向。但 AsymmetryLoRA 的研究团队通过系统性实验发现了一个反直觉的事实:LoRA 中的两个矩阵根本不对称,B 对最终效果的影响远大于 A。
具体而言:
直觉上,两者缺一不可。但实验数据表明,当你冻结 A、只训练 B 时,模型性能几乎不受影响;反过来冻结 B、只训练 A,效果则严重退化。
这一发现对 LoRA 的默认初始化策略提出了根本性挑战,也为 PEFT 领域打开了一扇新的大门。
AsymmetryLoRA 提出了 LoRASYM(LoRA Asymmetry)模块,核心是对矩阵 A 和 B 分别提供灵活的初始化选项和训练控制:
| 矩阵 | 可选初始化策略 | 说明 |
|---|---|---|
| A | V(奇异向量)、rand(随机正交)、he(Kaiming 均匀)、zero(零初始化) | 可选择冻结或训练 |
| B | 同上 | 强烈建议训练 |
关键参数 lora_svd_method 用来指定配置组合,格式为 A初始化_B初始化,如 A_rand_hB_zero 表示 A 用随机正交初始化并冻结,B 用零初始化并训练——这正是论文推荐的默认配置。
在代码实现上,LoRASYM 完全兼容 HuggingFace 的 peft 库,只需将 PeftModel 替换为 PeftModelForCausalLM_local,配置类替换为 LoRASYMConfig,即可在任何 HF Transformers 模型上启用:
from LoRASYM_peft.local_peft_model_all import PeftModelForCausalLM_local
from LoRASYM_peft.local_lorasym_all import LoRASYMConfig
lorasym_config = LoRASYMConfig(
r=16, lora_alpha=32, lora_dropout=0.05,
update_rule={"update_A": False, "update_B": True,
"A_init": "rand", "B_init": "zero"},
task_type="SEQ_CLS",
)
lora_model = PeftModelForCausalLM_local(base_model, lorasym_config)
研究团队在 GLUE 基准上对 RoBERTa-large 进行了系统性对比实验。核心结论:
A_rand_hB_zero(A 随机正交冻结,B 零初始化训练)在多项任务上取得了与全参数微调相当甚至更好的效果实验脚本位于 GPT_experiments/run_glue_origin_ft.py,通过 --lora_svd_method 参数切换不同的初始化策略:
python -m run_glue_origin_ft --model_name_or_path roberta-large --task_name rte --ft_method LoRASYM --lora_svd_method A_rand_hB_zero --lora_rank 8 --lora_alpha 16
所属领域:参数高效微调(PEFT)、大模型微调、LoRA 优化研究
核心技术栈:PyTorch + HuggingFace Transformers + peft
适用场景:
局限性与注意事项:
LoRA 自诞生以来,绝大多数改进工作都集中在秩的选择、模块放置(哪些层加 LoRA)以及结合量化等方面。而 AsymmetryLoRA 从一个更底层的角度切入——LoRA 矩阵初始化和训练分配本身就不对称——这为后续研究开辟了一个新的优化方向。
这项研究的影响力已经显现:论文在 arXiv 上获得了持续关注,被多个 PEFT 研究项目引用,GitHub 仓库虽然仅有 40 颗星,但关注者多为 NLP 研究者和微调框架开发者,属于典型的「小而精」研究工具。
如果你正在使用 LoRA 微调大模型,AsymmetryLoRA 值得你花十分钟读一下论文——它可能改变你对 LoRA 两个矩阵的认知,甚至帮你省下不必要的算力开销。