An Adversarial Perspective on Machine Unlearning for AI Safety论文阅读笔记
Published:
大型语言模型经过微调可以拒绝有关危险知识的问题,但这些保护措施通常可以被绕过。遗忘方法旨在完全消除模型中的危险功能,并使对手无法访问它们。本文从对抗性的角度讨论了遗忘和传统安全训练后之间的根本区别。本文发现,如果精巧地使用现有的越狱方法,是可以成功让模型输出被遗忘的东西的。此外,本文开发了各种自适应方法来恢复大多数被认为是遗忘的能力。
本文的背景
大模型会在大量从互联网上扒取的token上进行预训练。因为训练数据的海量规模,基本不太可能从中去除所有的有害或者危险信息,由此导致大模型可以生成独行、有害、偏见和隐私违背内容。随着模型能力的变强,这些知识会让有害信息更加容易被攻击者获得。
大模型一般会使用安全训练来微调模型,让他们拒绝不道德的请求并生成安全回复。但攻击者依然可以发现很多越狱方法来绕过安全机制。机器遗忘作为大模型的一种鲁棒性的安全保护方法,可以用于删除模型中的所有相关信息,但是遗忘并不是万无一失的,因为危险的知识在学习过程结束后仍然可以恢复。
本文研究的问题
遗忘是真的移除了有害的知识,还是只是像安全训练一样混淆这些知识。
已有方法为什么不行
早期评估遗忘鲁棒性的工作依赖于简单的分类指标,该指标并未考虑语言模型表示和输出目标信息的所有可能方式。近期工作开始引入对抗性方法来测试是否存在提取被认为遗忘的信息的方法。比如相关工作发现通过探索内部表征,可以以相当的速度从原始模型和未学习模型中提取知识。以及通过微调可以轻易无效化保护措施,逆转遗忘效果。本文尝试在不更新模型权重的前提下从遗忘的模型中提取有害的知识。
本文的方法
本文认为,如果至少存在一种方法,能够在不更新模型权重,或者使用与目标知识没有互信息的数据更新模型权重的情况下恢复明显的精度,就可以定义遗忘没有成功。然后在白盒场景下将遗忘方法RMU与多种安全训练方法进行对比,并通过不同指标衡量遗忘效果。
威胁模型:本文假设是白盒场景,可以获取模型权重和激活空间。本文假设可以接触遗忘前的模型,或者移除了安全措施的等价模型。
遗忘方法和对比方法:本文采用RMU作为遗忘方法,然后使用NPO,DPO作为对比方法。RMU(据本文说)是sota方法,可以有效抵御原来的越狱攻击。
模型和数据集:使用了RMU的公开checkpoint评估RMU效果,其中模型是Zephyr-7B-\(\beta\),此外,本文自行使用NPO和DPO方法在WMDP上微调了模型,然后将以上模型统称为遗忘模型。本文使用GPT-4位WMDP数据构建对应的偏好数据,方便进行DPO训练。
遗忘评估方法:本文使用在WMDP上有害知识的遗忘程度来衡量遗忘效果,WMDP方法包含涉及危险生物知识的1273个和涉及赛博安全的1987个多选题。本文使用ABCD中概率最高的作为最终回答。此外本文还使用了MMLU来评估模型在遗忘后的通用能力。
对比方法
- 微调:使用与要遗忘的知识互信息很小的数据集微调遗忘后的模型,使用LoRA方法微调模型。
- 正交化:已有工作发现安全拒绝回复是被激活空间中的一个方向控制的,本文探索遗忘技术是否也会生成类似的方向。本文使用构造的偏好数据集,从原模型和遗忘后模型的每个transformer块中提取输出,然后使用均值差法计算每层的拒绝方向。在推理时把拒绝方向从每层移除。
- LogitLens:LogitLens方法将每层的残差流映射回模型的词表。本文使用这个方法找到每层的残差流生成ABCD的概率。
- 强化版GCG:GCG关注与找到对抗的提示后缀,而增强型GCG侧重于优化前缀,以防止模型首先识别危险知识。
- set difference pruning:差异修剪是识别和修剪与安全对齐相关的神经元的方法。本文使用SNIP分数来度量单个神经元对于有害知识的重要程度,然后使用差异修剪方法找到仅对保存有害知识有关的神经元并移除它们。
本文如何说明效果
- 在无关的数据上进行微调就可以逆转遗忘效果:使用1000个样本进行微调可以在所有方法上完全发现有害能力,说明安全训练和遗忘的效果都可以通过微调去除。使用遗忘集中的5个样本进行微调就可以逆转遗忘(RMU)效果。过进一步训练重新学习知识是不可避免的,但这些结果表明知识恢复的速度异常快。
- 遗忘方法可以更加有效地从残差流中移除知识
- 遗忘也被特定的方向调整:本文识别出了负责遗忘的方向,并且通过这个方向恢复了大部分保护措施消除的有害信息
- 遗忘取决于关键的神经元:本文发现对于负责遗忘的最小规模的神经元。NPO方法下有2%、RMU有0.9%,DPO有2.4%。在把这些神经元修剪后,所有方法的效果都提升了至少10个百分点。
- 存在可以发现遗忘的知识的通用攻击前缀。加强版GCG可以找到对所有安全方法通用的攻击前缀,说明仅输入操作可以阻止遗忘并引出从未从模型中删除的危险知识。
- 可以在模型不可用时找到其中的有害能力:RMU 的特点是当检测到危险知识时,模型将变得无法使用——它们会输出具有高度困惑性的乱码。但加强版GCG获得的性能最佳的前缀可以恢复大部分危险功能,但不一定能从模型中恢复会话功能。
以上实验结论说明目前的遗忘方法本质上和安全训练方法没什么区别,都是在混淆知识,而不是移除它们。其次,黑盒方式的评估方法无法有效评估遗忘的效果。最后NPO方法展现出了深度遗忘的信号。
可能的未来方向
- 遗忘仅与特定神经元相关,那么不同的方法定位到的是否是同样的一批神经元?
- 鲁棒遗忘的目标是什么?
- 是不是可以把这个遗忘方向用到预训练之类的地方,在事前阻止危险知识进入模型
- 在指定目标上,使用不同的样本继续微调,然后判断可用性,是不是也可以作为一种成员推理攻击的方法