现代大模型(LLMs)已不再局限于简单的自动补全,它们正成为网页代理、邮件秘书等智能应用的核心。然而,随着部署范围扩大,安全风险也随之而来。敌手可能通过提示注入、越狱等手段诱使模型执行危险操作,甚至覆盖原始指令。比如针对邮件助手的攻击可能导致用户隐私泄露。
这类风险通常源于三方冲突:应用构建者、主要用户和第三方输入。当用户或敌手试图覆盖现有指令时,就会发生提示注入、越狱或提示提取。为此,OpenAI 提出了'指令层级'的概念,借鉴操作系统中的权限管理思想。简单来说,当模型接收到多个指令时,应优先遵循高优先级指令,低优先级指令若与高级别冲突则被忽略。
指令层级的工作原理
理解这个概念其实不难,它把不同来源的指令按优先级排序。假设模型收到相互矛盾的指令,分别来自系统消息、用户输入或工具输出。没有层级机制时,模型可能平等对待所有信息,这就给了攻击者可乘之机。实施层级后,模型能识别并优先执行可信来源的高优先级指令。
以邮件助手为例:
- 系统消息:最高优先级,由开发者定义功能,如允许使用
search()命令获取网页结果。 - 用户消息:中等级别,最终用户的真实请求,例如查询篮球比赛比分。
- 工具输出:较低级别,包含搜索结果或 API 返回。这里可能出现恶意内容,比如某条搜索结果试图让模型将对话历史发送给攻击者邮箱。
在这种场景下,模型被训练为识别并优先执行系统消息和用户消息。当遇到与高优先级指令不一致的低级指令(如恶意指令)时,模型会直接忽略,只采纳提供正确信息的工具输出。
训练数据与优化策略
为了构建更安全的模型,我们采用了合成数据生成和上下文蒸馏技术。
- 一致性处理:当低优先级指令与高优先级一致时,采用上下文合成方法。将复杂请求分解为更小单元,训练模型在复合指令下按层级结构正确执行。
- 冲突性处理:当低优先级指令与高优先级不一致时,采用上下文忽视方法。训练模型像没收到过这些指令一样,保持对高优先级任务的专注。
此外,自动化红队测试也是关键一环。通过模拟敌手攻击(如提示注入、系统消息提取),生成对抗性数据来微调模型。这不仅提升了已知攻击的防御力,还帮助模型泛化到未见过的攻击类型。
效果评估与泛化能力
引入指令层级后,模型在多个基准测试中表现显著提升。数据显示,防御系统消息提取攻击的能力提高了 63%。即使在训练期间未直接遇到某些攻击(如越狱),模型的鲁棒性也提升了超过 30%。
值得注意的是,尽管模型偶尔会出现过度拒绝的情况(即忽略了一致但低优先级的指令),但通过持续的数据收集和优化,这一问题正在逐步解决。评估采用了开源及新创建的基准套件,模拟了各种攻击情景,包括训练阶段未曾遇到的类型,全面检验了模型在实际应用中的防御能力。
总的来说,指令层级不仅增强了对特定攻击的抵抗力,还提高了模型对各种潜在威胁的自我防护能力。相关论文可参考:https://arxiv.org/abs/2404.13208


