让模型"学不会"坏东西:把微调限制在可信 LoRA 张成的子空间里

防投毒不一定非得靠“检测脏数据”。这篇论文换了个问法:能不能让模型压根学不到某些恶意更新。实验是拿一大堆 LoRA 做的,所以玩明白 LoRA 的人读起来基本没门槛,挺对我们生图圈胃口。

做法是把微调时允许动的方向,约束在一批可信 LoRA 张成的子空间里。有用的适应本来就在这个空间里,照样学得到;一部分恶意方向落在空间外面,几何上直接够不着。换个说法,参数更新只能在“白名单方向”的组合里走,数据里掺的毒再想往别的方向拽,也拽不过去。

为什么要这么干,论文举的两个场景都很实在:

  • 公司拿用户或外部来的大数据微调,里面掺一点点毒,就能埋一个被特定词触发的后门;
  • 本地端上那种不断适应用户的小助手,你不希望它啥都学,只想让它在“已知可信行为”的变体里调整。

效果方面,作者在近两百个公开适配器上测,连专门为绕过这套机制设计的自适应攻击也扛住了,攻击成功率掉得很狠,正常能力基本没伤到。

我自己天天从各处下 LoRA,所以对这个角度特别有感觉:与其事后去筛哪批数据脏,不如规定来源可信的东西才允许影响权重。

有点像合并 LoRA 时做正交投影,老工具换了个防守用法

问题是子空间选窄了正常能力也受限吧,这个平衡点估计很难调

挺有收获

1 个赞

子空间调窄确实会伤表达力,感觉最后卡在可信基覆盖不够全,基太少好的坏的一起学不动