大模型的「护城河」,再次被攻破。
输入一段神秘代码,就能让大模型生成有害内容。
从ChatGPT、Claude到开源的羊驼家族,无一幸免。
近日,卡内基梅隆大学和safe.ai共同发表的一项研究表明,大模型的安全机制可以通过一段神秘代码被破解。
他们甚至做出了一套可以量身设计「攻击提示词」的算法。
论文作者还表示,这一问题「没有明显的解决方案」。
目前,团队已经将研究结果分享给了包括OpenAI、Anthropic和Google等在内的大模型厂商。
上述三方均回应称已经关注到这一现象并将持续改进,对团队的工作表示了感谢。
常见大模型全军覆没
尽管各种大模型的安全机制不尽相同,甚至有一些并未公开,但都不同程度被攻破。
比如对于「如何毁灭人类」这一问题,ChatGPT、Bard、Claude和LLaMA-2都给出了自己的方式。
而针对一些具体问题,大模型的安全机制同样没能防住。
虽说这些方法可能知道了也没法做出来,但还是为我们敲响了警钟。
从数据上看,各大厂商的大模型都受到了不同程度的影响,其中以GPT-3.5最为明显。
除了上面这些模型,开源的羊驼家族面对攻击同样没能遭住。
以Vicuna-7B和LLaMA-2(7B)为例,在「多种危害行为」的测试中,攻击成功率均超过80%。
其中对Vicuna的攻击成功率甚至达到了98%,训练过程则为100%。
△ASR指攻击成功率
总体上看,研究团队发明的攻击方式成功率非常高。
那么,这究竟是一种什么样的攻击方法?
定制化的越狱提示词
不同于传统的攻击方式中的「万金油」式的提示词,研究团队设计了一套算法,专门生成「定制化」的提示词。
而且这些提示词也不像传统方式中的人类语言,它们从人类的角度看往往不知所云,甚至包含乱码。
生成提示词的算法叫做贪婪坐标梯度(Greedy Coordinate Gradient,简称GCG)。
首先,GCG会随机生成一个prompt,并计算出每个token的替换词的梯度值。
然后,GCG会从梯度值较小的几个替换词中随机选取一个,对初始prompt中的token进行替换。
接着是计算新prompt的损失数据,并重复前述步骤,直到损失函数收敛或达到循环次数上限。
以GCG算法为基础,研究团队提出了一种prompt优化方式,称为「基于GCG的检索」。
随着GCG循环次数的增加,生成的prompt攻击大模型的成功率越来越高,损失也逐渐降低。
可以说,这种全新的攻击方式,暴露出了大模型现有防御机制的短板。
防御方式仍需改进
自大模型诞生之日起,安全机制一直在不断更新。
一开始甚至可能直接生成敏感内容,到如今常规的语言已经无法骗过大模型。
包括曾经红极一时的「奶奶漏洞」,如今也已经被修复。
不过,就算是这种离谱的攻击方式,依旧没有超出人类语言的范畴。
但大模型开发者可能没想到的是,没有人规定越狱词必须得是人话。
所以,针对这种由机器设计的「乱码」一样的攻击词,大模型以人类语言为出发点设计的防御方式就显得捉襟见肘了。
按照论文作者的说法,目前还没有方法可以防御这种全新的攻击方式。
对「机器攻击」的防御,该提上日程了。