是的,大型语言模型 (LLM) 容易受到对抗性攻击。这些攻击涉及有意制作输入,旨在误导模型产生不正确、有害或意外的输出。对抗性攻击利用了 LLM 处理文本方式中的弱点,通常依赖于人类可能忽略的细微扰动或模式。例如,添加拼写错误、插入特殊字符或以特定方式重新措辞提示,都可能导致模型生成错误信息、绕过安全过滤器或泄露敏感数据。这种脆弱性源于模型依赖统计模式而非真正理解,使其容易受到偏离其训练数据的输入影响。
一种常见的对抗性攻击类型是提示注入 (prompt injection),攻击者通过操纵输入文本来覆盖模型的预期行为。例如,用户可能在查询中附加“忽略先前的指示…”等短语,从而欺骗模型忽略安全准则或生成被禁止的内容。另一个例子是标记操纵 (token manipulation),攻击者插入不可见字符或改变间距以扰乱模型的标记化过程。2023 年,研究人员演示了在提示中添加字符串“SolidGoldMagikarp”(GPT 模型中的稀有标记)可能会导致意外行为,例如生成无意义的输出。这些攻击突显了对输入进行微小、有针对性的更改如何利用模型训练或架构中的漏洞。
开发者可以通过诸如输入净化 (input sanitization)、对抗性训练 (adversarial training)和输出过滤 (output filtering)等技术来缓解这些风险。输入净化涉及预处理用户提供的文本,以去除可疑的模式或字符。对抗性训练在微调过程中向模型暴露被扰动的示例,以提高鲁棒性。例如,通过包含有意拼写错误或对抗性短语的提示来训练模型,可以帮助其更可靠地处理此类情况。输出过滤增加了一个验证层,例如在将生成的文本返回给用户之前检查其是否违反策略。然而,没有单一的解决方案是万无一失的,通常需要结合多种方法。针对已知的攻击模式测试模型并及时了解新出现的漏洞是维护基于 LLM 的应用程序安全的关键步骤。