北大团队的最新研究结果表明:
随机token都能诱发大模型出现幻觉!
举例来说,如果给予大模型(vicuna-7b)一段“乱码”,它会莫名其妙地错误理解历史常识
即使做出一些简单的修改提示,大型模型也可能陷入陷阱
这些热门的大型模型,如baichuan2-7b、internlm-7b、chatglm、ziya-llama-7b、llama-7b-chat和vicuna-7b,都会遇到类似的情况
这意味着,随机字符串能够操控大模型输出任意内容,为幻觉“代言”。
以上发现来自北大袁粒老师课题组的最新研究。
该研究提出:
大模型的幻觉现象极有可能是对抗样本的另一种视角。
论文在展示两种容易诱发大模型幻觉方法的同时,还提出了简单有效的防御办法,代码已开源。
两种极端模式攻击大模型研究提出了两种幻觉攻击方法:
随机噪声攻击(ood 攻击)是一种常见的机器学习模型攻击方式。在这种攻击中,攻击者会向模型输入一些在训练数据中不常见的随机噪声。这种噪声可以干扰模型的判断能力,导致其在处理来自真实世界的数据时出现错误的预测。随机噪声攻击是一种隐蔽的攻击方式,因为它使用了与正常数据相似的特征,很难被模型所察觉。为了抵御这种攻击,需要采用一些有效的异常检测方法来识别并过滤掉这些随机噪声即让无意义的随机字符串诱导大模型产生预定义的幻觉输出。弱语义攻击(weak semantic attack)指的是一种在网络上常见的攻击方式。这种攻击方法通常通过诱导用户在不知情的情况下提供个人信息或执行恶意操作来实施。与其他更直接的攻击方式相比,弱语义攻击更加隐蔽,往往会利用社交工程和欺骗手段来误导用户。网络用户应该保持警惕,避免受到弱语义攻击的影响即保证原始 prompt 语义基本不变的情况下,使得大模型产生截然不同的幻觉输出。随机噪声攻击(ood attack):
以下是在开源大模型上进行的一些实验结果,更多的结果可以在论文或开源github中找到
弱语义攻击(weak semantic attack):
论文介绍了幻觉攻击方法:
根据图示,幻觉攻击的构成包括以下三个部分:幻觉数据集的构建、弱语义攻击和ood攻击
首先是幻觉数据集构建。
作者通过收集一些常见问题x,并将它们输入到大型模型中,得到了正确的答案y
接着替换句子的主谓宾去构造一个不存在的事实,其中t是包含所有符合事实的集合。
最终可以获得构建幻觉数据集的结果:
然后是弱语义攻击部分。
先采样一条不符合事实的qa pair,未来稳定的出发幻觉,作者希望找到一条对抗提示来最大化对数似然。
其中是大模型的参数,是输入空间。
是由l个token构成。
然而,由于语言是非连续的,没办法直接类似于图像领域的对抗攻击那样直接对x进行优化。
受启发于一篇2019年的研究(universal adversarial triggers for attacking and analyzing nlp),研究团队基于梯度的token替换策略来间接的最大化该对数似然。
其中,为对抗token的embedding,是一个语义提取器。
简单来看这个式子,在语义约束下,找到那些使得似然梯度变化最大的token并进行替换,最终在保证得到的对抗提示和原提示x语义上不相差太多的情况下,诱导模型输出预定义的幻觉。
在本文中,为了简化优化过程,将约束项改为来代替。
最后一部分是ood攻击
在ood攻击中,我们从一条完全随机的字符串出发,在没有任何语义约束下,最大化上述对数似然即可。
在论文中还详细阐述了幻觉攻击对不同模型、不同模式的攻击成功率
对增加提示长度以提高攻击成功率进行了深入探讨(翻倍)
研究团队最终提出了一个简单的防御策略,即通过利用第一个token预测的熵来拒绝响应
该研究来自北京大学深圳研究生院/信息工程学院袁粒老师团队。
论文链接:https://arxiv.org/pdf/2310.01469.pdf
github地址:https://github.com/pku-yuangroup/hallucination-attack
知乎原帖
需要改写的内容是:https://zhuanlan.zhihu.com/p/661444210?
以上就是北大团队:诱导大模型“幻觉”只需一串乱码!大小羊驼全中招的详细内容。