新 LoRA 技能应该只读不写

来自 arXiv · 期号 2026-09-26

摘要

多个独立训练的 LoRA 适配器合并到一个模型里时,权重更新会互相干扰。 问题出在两个隐藏的选择上:LoRA 更新有无穷多种等价的分解方式,单独使用时看不出区别,但决定了组合后各技能能看到什么;新旧技能之间的耦合方向同样可以指向任意一边,方向错了旧技能就不再按原来的方式计算。 READ 方法把两个选择都固定下来:每个适配器重写为平衡规范形式(保持更新不变),耦合只朝一个方向增长——新技能可以读旧技能的输入子空间,但不能写进它们的输出子空间。训练时只学新技能那一行耦合矩阵,组合后的更新折叠进基座权重,推理无额外开销。 在四个 benchmark 套件和两个模型家族上,READ 在所有套件上超过最强基线:SuperGLUE 提升 20+ 分,领域套件提升 7+ 分。

深读

导读 这篇论文揭示了多个独立训练的 LoRA 适配器合并时性能下降的根本原因,不是权重冲突本身,而是两个被长期忽略的隐藏选择:适配器的分解方式与技能间的耦合方向。READ 方法通过固定这两个选择,在无需重训、无推理开销的前提下,在 SuperGLUE 上比最强基线提升超过 20 分,为多技能模型合并提供了一条简洁且可扩展的路径。 关键信息 - 问题根源:LoRA 更新有无穷多种等价的分解方式,单独使用时不可见,但决定了组合后各技能能看到什么;新旧技能间的耦合方向同样可以指向任意一边,方向错了旧技能就不再按原来的方式计算。 - READ 方法:每个适配器重写为平衡规范形式(保持更新不变),耦合只朝一个方向增长,新技能可以读旧技能的输入子空间,但不能写进它们的输出子空间。 - 训练开销:每次追加新技能时,唯一可训练的对象是新技能那一行的耦合矩阵,组合后的更新折叠进基座权重,推理时无额外开销、无需路由或任务特定规则。 - 性能结果:在四个 benchmark 套件和两个模型家族上,READ 在所有套件上超过最强基线——SuperGLUE 提升超过 20 分,领域套件提升超过 7 分,且几乎所有完整追加序列的最终结果都高于所有直接基线。 逐节讲解 问题:多 LoRA 合并为何困难 多个独立训练的 LoRA 适配器合并到一个模型里时,权重更新会互相干扰。现有方案各有代价:在权重空间直接合并导致干扰,在所有任务数据上重训成本高昂,在独立适配器间路由则放弃了单一合并模型的目标。论文将困难追溯到两个隐藏的选择:LoRA 更新有无穷多种等价的分解方式,单独使用时看不出区别,但决定了组合后各技能能看到什么;新旧技能之间的耦合方向同样可以指向任意一边,方向错了旧技能就不再按原来的方式计算。 解决方案:READ 方法 READ(Read-only Expansion of Adapter Deltas)把两个选择都固定下来。每个适配器被重写为平衡规范形式,保持更新不变;耦合只朝一个方向增长,新技能可以读旧技能的输入子空间,但不能写进它们的输出子空间。训练时只学新技能那一行耦合矩阵,组合后的更新折叠进基座权重,推理无额外开销、无需路由或任务特定规则。 实验评估 READ 在四个 benchmark 套件和两个模型家族上评估,技能逐个追加。在所有套件上,READ 超过由相同适配器构建的最强基线——SuperGLUE 提升超过 20 分,领域套件提升超过 7 分,且几乎所有完整追加序列的最终结果都高于所有直接基线。论文结论是:因子坐标和耦合方向,单个适配器从不暴露的两个属性,决定了组合技能能否存活。 值得注意 作为一篇 arXiv 论文摘要,这里只呈现了论文声称的方法和结果,没有实验细节(如具体模型规模、训练数据、超参数设置、消融实验等)。READ 在更大型模型或更多技能追加时的扩展性、…

读原文

本站只做摘要与索引,全部内容版权归原作者所有。