论文:Detoxifying Large Language Models via Knowledge Editing
作者:Mengru Wang1,2, Ningyu Zhang1,2∗, Ziwen Xu1,2, Zekun Xi1,2, Shumin Deng4, Yunzhi Yao1,2, Qishen Zhang3, Linyi Yang5, Jindong Wang6, Huajun Chen1,2∗
单位:浙江大学
发表:ACL2024
摘要
本文研究了如何利用知识编辑技术为大型语言模型(LLM)解毒。我们构建了一个基准--SafeEdit,它涵盖了九个不安全类别和各种强大的攻击提示,并配备了用于系统评估的综合指标。我们用几种知识编辑方法进行了实验,结果表明知识编辑有可能在对一般性能影响有限的情况下有效地为 LLM 解毒。然后,我们提出了一个简单而有效的基线,称为 "术中神经监测解毒(DINM)",通过一个实例在几个调整步骤内降低 LLM 的毒性。我们进一步深入分析了各种解毒方法的内部机制,证明之前的方法(如 SFT 和 DPO)可能只是抑制了有毒参数的激活,而 DINM 能在一定程度上减轻有毒参数的毒性,并进行永久性调整。我们希望这些见解能对今后开发解毒方法的工作以及 LLMs 的基本知识机制有所启发
动机
以往的方法如DPO只是抑制了有毒参数的激活,作者提出能否精确地改变 LLMs 中的有毒区域以实现解毒。
知识编辑
知识编辑的本源任务是对模型事实性地考察,应用于去毒任务是复杂的
利用知识编辑方法编辑模型,使模型从输出Yunsafe转变为输出Ysafe
方法
数据集构建
文章的贡献之一是创建了一个基于知识编辑任务的去毒数据集。
Benchmark Overview
使用GPT-4生成9个分类的60种不同问题,嵌套在越狱攻击模版中,生成安全/不安全的响应,构建由对抗性请求/安全响应/不安全响应构建的数据集Dedit,与正常知识响应的题库Aplace组成的Dcons进行拼接得到SafeEdit
评估指标
评估知识编辑前后,模型去毒效果有没有增强,以及模型基本性能是否受到影响
1. 防御成功率,测试数据集输入的防御结果
2. 防御通用型,OOD数据集输入的防御结果,包括训练数据集外的攻击模版、有害问题
3. 通用性能测试
DINM
DINM Overview
包括两步:
1. 去毒区域的定位
上述公式是层粒度下,每个模块的工作流程,作者指出MLP块可以抽象为两个神经网络
作者指出 hdown 由第一层神经网络决定,也就是由输入决定。W不由输入决定,并且在整个控制流中起到一定作用,因此被定义为有毒区域
作者以安全响应和不安全响应作为输入,对比寻找每层激活值的最大差,来判断有害层
2. 去毒编辑器
设置有毒区域参数可调,其他区域的参数冷冻。以(对抗性输入|安全回答)作为调整数据,调整有毒区域的参数
t为调整T个时间步
同时,另一个损失函数为不影响正常请求的损失
将两个损失线性相加可得最终的损失函数,通过反向传播最小化损失函数
理论依据
【1】定义有毒层时,为什么用响应作为判断依据?
【2】定义有毒区域时,为什么选择MLP层?
实验
比较了三个知识编辑的baseline方法:FT-L、MEND、Ext-Sub
以及消融实验,发现不微调时去毒效果下降最大,推出有毒层的定位是重要的
最后,作者将DINM与DPO,SFT传统去毒手段进行了对比,使用毒性探针检测层毒性和激活方向,作者发现,DPO和SFT没有降低层毒性而是转移了激活方向,相反DIMN降低了层毒性并没有转移激活方向