北大团队的最新研究结果表明:
随机token都能诱发大模型出现幻觉!
举例来说,如果给予大模型(Vicuna-7B)一段“乱码”,它会莫名其妙地错误理解历史常识
即使做出一些简单的修改提示,大型模型也可能陷入陷阱
这些热门的大型模型,如Baichuan2-7B、InternLM-7B、ChatGLM、Ziya-LLaMA-7B、LLaMA-7B-chat和Vicuna-7B,都会遇到类似的情况
这意味着,随机字符串能够操控大模型输出任意内容,为幻觉“代言”。
以上发现来自北大袁粒老师课题组的最新研究。
该研究提出:
大模型的幻觉现象极有可能是对抗样本的另一种视角。
论文在展示两种容易诱发大模型幻觉方法的同时,还提出了简单有效的防御办法,代码已开源。
研究提出了两种幻觉攻击方法:
随机噪声攻击(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?
以上是北大团队:诱导大模型'幻觉”只需一串乱码!大小羊驼全中招的详细内容。更多信息请关注PHP中文网其他相关文章!