OpenAI策略:指令层级系统让大模型免于恶意攻击
现代的大模型(LLMs)不再仅仅是简单的自动完成系统,它们有潜力赋能各种代理应用,如网页代理、电子邮件秘书、虚拟助手等。然而,这些应用广泛部署的一个主要风险是敌手可能诱使模型执行不安全或灾难性的行动,包括提示注入、越狱攻击等,这些攻击手段允许敌手覆盖模型的原始指令。例如,针对LLM驱动的电子邮件助手的提示注入攻击可能会泄露用户的私人电子邮件。
LLMs的典型应用案例涉及三方:应用构建者、产品的主要用户以及第三方输入。当这些参与方之间出现冲突时,例如用户或敌手试图覆盖现有指令,就会产生攻击。这些冲突可能表现为提示注入、越狱和提示提取等不同形式。因此OpenAI提出了一个指令层级的概念,类似于操作系统中的权限管理,LLMs在指令冲突时应优先考虑高优先级的指令。具体来说,当模型接收到多个指令时,低优先级的指令要么与高优先级指令一致,要么不一致。目标是教会模型在低级别指令与高级别指令一致时有条件地遵循它们。
指令层级
指令层级(Instruction Hierarchy)这个概念借鉴了操作系统中成熟的权限管理理念,将不同的指令按照优先级进行排序,确保在出现冲突时,模型能够优先执行高优先级的指令。
指令层级的工作原理可以这样理解:假设一个模型接收到了多个相互矛盾的指令,这些指令可能来自系统消息、用户输入或第三方工具的输出。在没有指令层级的情况下,模型可能会平等地处理所有这些指令,这就为恶意攻击留下了可乘之机。然而,通过实施指令层级教导模型识别并优先执行来自可信来源的高优先级指令,同时忽略或有条件地执行低优先级的指令。

例如,图1展示了一个示例对话,其中现代LLMs接收到不同类型的消息,从受信任的系统提示到不受信任的工具输出。在这个对话中,模型被教导要优先考虑特权指令,导致模型忽略了网络搜索结果中的提示注入攻击。
-
系统消息(System Message):这是最高优先级的消息,由应用开发者提供。在这个例子中,系统消息定义了聊天机器人的功能,即它能够访问浏览器工具并使用
search()命令来获取网页结果。 -
用户消息(User Message):这是来自最终用户的输入,它在优先级层级中处于中等级别。在这个对话中,用户询问了关于费城76人队昨晚篮球比赛的结果。
-
模型输出(Model Outputs):这是LLM根据系统消息和用户消息生成的响应。在这个例子中,模型首先表示将为用户查找比赛结果,并使用了
search(76ers scores last night)命令。 -
工具输出(Tool Outputs):这些可能包含来自互联网搜索的结果或其他第三方API查询的结果,它们在优先级层级中处于较低级别。在图1的例子中,有两个搜索结果返回给模型:
- Web Result 1:包含了一个恶意的指令,试图让模型忽略之前的指令,并将用户的对话历史发送到攻击者的邮箱。这是一个明显的与高优先级指令不一致的低优先级指令。
- Web Result 2:提供了用户所需信息,即76人队以121-105赢得了比赛,Joel Embiid得到了25分。
-
指令层级的决策:在这个对话中,模型被训练以识别并优先执行高优先级的系统消息和用户消息。当模型接收到Web Result 1中的恶意指令时,它被训练去忽略这个低优先级的指令,因为该指令与高优先级的系统消息和用户消息不一致。因此,模型正确地忽略了Web Result 1,并选择了Web Result 2中提供的信息来回应用户。
在构建更安全的LLMs的过程中采取了创新的方法来生成训练数据,这涉及到合成数据生成和上下文蒸馏两种技术。合成数据生成是一种技术,它允许创建模拟的输入和输出对,这些对用于训练模型以执行特定的任务。上下文蒸馏则是一种技术,它能够从现有的数据中提取关键信息,并将其转化为模型可以理解和学习的格式。
当处理与高优先级指令一致的低优先级指令时,采用了上下文合成的方法。这种方法涉及将复杂的用户请求分解成更小、更简单的指令单元。例如,如果用户请求“用西班牙语写一首20行的诗”,我们会将这个请求分解为“写一首诗”、“使用西班牙语”和“使用20行”。将这些分解后的指令放置在指令层级的不同级别上,训练模型识别并预测原始请求的真实响应。这使得模型能够学习如何在接收到复合指令时,按照层级结构正确地执行任务。
相对地,当处理与高优先级指令不一致的低优先级指令时,采用了上下文忽视的方法。在这种情况下,我们训练模型忽略这些低优先级的指令,就像它们从未被提供过一样。如果一个用户尝试通过恶意的提示来操纵模型执行不允许的操作,模型将学会识别并忽略这些提示,保持其按照高优先级指令执行任务的能力。

表1展示了我们如何通过不同的训练集来塑造语言模型的行为,以应对各种潜在的指令冲突和攻击。它包含了四个定性的示例,每个示例都针对一种特定的攻击类型,并展示了系统消息、用户输入、预期的正确输出。"Closed-Domain Prompt Injections" 示例说明了在封闭域任务中如何处理直接的提示注入。系统消息给出了一个指令,而用户输入尝试改变这一指令。正确的输出应该是模型忽略用户输入的非法指令,坚持执行原始任务。接着,"Open-Domain Misaligned" 示例揭示了如何处理开放域任务中的不对齐指令。尽管用户请求模型做出与系统消息相违背的行为,正确的输出显示模型应拒绝这一请求,并维持其既定的功能。"Open-Domain Aligned" 示例则展示了开放域任务中对齐指令的情况。用户请求与系统消息一致,模型被训练以确认并执行用户的合理请求。
为了进一步增强模型的安全性,研究者还实施了自动化的红队测试。红队测试是一种模拟敌手攻击的方法,通过这种方式,我们可以生成对抗性的数据,用以训练和微调模型。我们使用红队LLMs来模拟不同的攻击场景,例如提示注入和系统消息提取,然后使用这些数据来微调我们的模型。这不仅提高了模型对已知攻击类型的防御能力,而且还帮助模型学习如何泛化到未见过的攻击类型。
图2展示了本模型在多个基准测试中的性能提升。通过引入指令层级和相应的训练方法,模型在面对各种攻击时表现出显著提高的鲁棒性。例如,在防御系统消息提取攻击方面,模型的性能提高了63%。此外,即使在训练期间未直接遇到某些类型的攻击,如越狱攻击,模型也显示出超过30%的鲁棒性提升。这些结果证明了我们的方法在提高模型安全性和抵御未知攻击方面的有效性。
尽管模型在某些情况下可能会出现过度拒绝行为,即在低优先级指令与高优先级指令一致时也选择忽略或拒绝执行,但通过进一步的数据收集和模型优化,可以解决这一问题。
对模型进行评估采用了开源和新创建的基准测试套件,这些测试旨在模拟各种攻击情景,包括一些在训练阶段未曾遇到的攻击类型。这样的评估策略能够全面检验模型在实际应用中抵御未知攻击的能力。
更令人鼓舞的是,模型不仅在已知攻击类型的防御上表现出色,还显示出了良好的泛化能力。例如,在越狱攻击的测试中,模型的鲁棒性提高了30%以上。越狱攻击是一种特别危险的攻击手段,它试图绕过模型的安全限制,执行不允许的操作。模型在这类未见攻击上的出色表现,证明了指令层级不仅增强了模型对特定攻击的抵抗力,还提高了模型对各种潜在威胁的自我防护能力。

图3展示了模型在面对一些在训练阶段未直接建模的攻击时的泛化能力。例如,在越狱攻击的测试中,尽管这些攻击手段在训练数据中并未明确出现,模型依然能够有效地识别并抵御这些攻击,减少了不当输出的产生。
这些评估结果不仅证明了指令层级概念的有效性,也为未来LLMs的安全性研究提供了宝贵的参考。通过持续的评估和优化,相信可以进一步增强模型的安全性,使其能够更好地服务于各种高风险的代理应用。
论文链接:https://arxiv.org/abs/2404.13208
相关文章:
OpenAI策略:指令层级系统让大模型免于恶意攻击
现代的大模型(LLMs)不再仅仅是简单的自动完成系统,它们有潜力赋能各种代理应用,如网页代理、电子邮件秘书、虚拟助手等。然而,这些应用广泛部署的一个主要风险是敌手可能诱使模型执行不安全或灾难性的行动,…...
芝麻清单助力提升学习工作效率 专注时间完成有效的待办事项
芝麻清单助力提升学习&工作效率 专注时间完成有效的工作。今天我们给大家带来一个专注清单,一个更高效的学习和工作的方法! 我们都知道,专注做一个事情,会有效的提升效率,让事情更高效的完成。如果是学习的话&…...
Docker 容器操作命令
文章目录 前言1. 创建并运行容器2. 列出容器3. 停止容器4. 启动已停止的容器5. 重启容器6. 进入容器7. 删除容器8. 查看容器日志9. 导出和导入容器10. 管理网络11. 数据卷操作12. 设置容器自启动 前言 Docker 容器操作是 Docker 使用过程中非常重要的一部分。以下是一些常见的…...
华为配置创建vlan及划接口,trunk干道,DHCP池塘配置
1、创建 vlan [SWA]vlan 10 [SWA-vlan10]quit [SWA]vlan batch2to3510 批量创建vlan2-3,5.10 2、 接口划入 vlan 单个接口修改接口模式为 access [SWA]interface GigabitEthernet 0/0/5 [SWA-GigabitEthernet0/0/5]port link-type access 批修改为 access [H…...
vue3 computed与watch,watchEffect比较
相同点 都是要根据一个或多个响应式数据进行监听 不同点 computed 如要return回来一个新的响应式值,且这个值不允许直接修改,想要修改的话可以设置set函数,在函数里面去修改所依赖的响应式数据,然后计算属性值会基于其响应式依…...
论文:R语言数据分析之机器学习论文
欢迎大家关注全网生信学习者系列: WX公zhong号:生信学习者Xiao hong书:生信学习者知hu:生信学习者CDSN:生信学习者2 一、研究背景 全球范围内,乳腺癌是导致癌症发病率和死亡率的主要疾病之一。根据2018年…...
【C++】STL中优先级队列的使用与模拟实现
前言:在前面我们学习了栈和队列的使用与模拟实现,今天我们来进一步的学习优先级队列使用与模拟实现 💖 博主CSDN主页:卫卫卫的个人主页 💞 👉 专栏分类:高质量C学习 👈 💯代码仓库:卫…...
C#开发-集合使用和技巧(二)Lambda 表达式介绍和应用
C#开发-集合使用和技巧 Lambda 表达式介绍和应用 C#开发-集合使用和技巧介绍简单的示例:集合查询示例: 1. 基本语法从主体语句上区分:1. 主体为单一表达式2. 主体是代码块(多个表达式语句) 从参数上区分1. 带输入参数的…...
Qt底层原理:深入解析QWidget的绘制技术细节(2)
(本文续上一篇《Qt底层原理:深入解析QWidget的绘制技术细节(1)》) QWidget绘制体系为什么这么设计【重点】 在传统的C图形界面框架中,例如DUILib等,控件的绘制逻辑往往直接在控件的类的内部,例如PushButt…...
【Gradio】表格数据科学与图表-连接到数据库
简介 本指南解释了如何使用 Gradio 将您的应用程序连接到数据库。我们将连接到托管在 AWS 上的 PostgreSQL 数据库,但 gradio 对您连接到的数据库类型及其托管位置完全不可知。因此,只要您能够编写 Python 代码来连接到您的数据,您就可以使用…...
艾多美用“艾”为生命加油,献血活动回顾
用艾为生命加油 6月10日~16日,艾多美中国开启献血周活动,已经陆续收到来自烟台总部、山东、广东、河南、四川、重庆、贵阳,乌鲁木齐,吉林,等地区的艾多美员工、会员、经销商发来的爱心助力,截止到目前&…...
人工智能在气象预报领域的崛起:GraphCast引领新纪元
最近,谷歌推出的天气预测大模型GraphCast在全球范围内引起了广泛关注,其卓越的表现不仅刷新了人们对AI能力的认知,更预示着传统天气预报工作模式的深刻变革。 GraphCast是一款基于机器学习技术的天气预测工具,它通过深度学习和大数…...
http和https的区别在哪
HTTP(超文本传输协议)和HTTPS(超文本传输安全协议)之间存在几个关键区别主要涉及安全性、端口、成本、加密方式、搜索引擎优化(SEO)、身份验证等方面 1、安全性:HTTP(超文本传输协议…...
windows10远程桌面端口,Windows 10远程桌面端口修改的两个方法
在Windows 10系统中,远程桌面功能允许用户通过网络从一台计算机远程访问和控制另一台计算机。默认情况下,远程桌面服务使用的端口是3389。然而,出于安全考虑,许多管理员和用户希望修改这一默认端口。本指南将详细介绍如何在Window…...
力扣1504.统计全1子矩形
力扣1504.统计全1子矩形 开一个二维数组存每个点从它本身开始向左有多少连续的1 遍历矩形右下角(i,j) 再遍历行k in i每一行的矩形数量 minx min(minx,left(k,j)) class Solution {public:int numSubmat(vector<vector<int>>& mat) {int n mat.size();int…...
vue3高德地图组件化,解决复用地图组件时渲染失败问题
思路:多个页面都需要调用地图,将地图封装成一个组件进行复用,发现调用时只有第一次渲染成功了。 解决:相同 id 的地图渲染只能有一次,如果多个复用地图的页面不需要同时渲染,使用 v-if 来控制;…...
Langchain 如何工作
How does LangChain work? LangChain是如何工作的? Let’s consider our initial example where we upload the US Constitution PDF and pose questions to it. In this scenario, LangChain compiles the data from the PDF and organizes it. 让我们考虑我们最初的例子…...
【数据结构】顺序表实操——通讯录项目
Hi~!这里是奋斗的小羊,很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~~ 💥💥个人主页:奋斗的小羊 💥💥所属专栏:C语言 🚀本系列文章为个人学习…...
C++继承与多态—多重继承的那些坑该怎么填
课程总目录 文章目录 一、虚基类和虚继承二、菱形继承的问题 一、虚基类和虚继承 虚基类:被虚继承的类,就称为虚基类 virtual作用: virtual修饰成员方法是虚函数可以修饰继承方式,是虚继承,被虚继承的类就称为虚基类…...
论文阅读:基于谱分析的全新早停策略
来自JMLR的一篇论文,https://www.jmlr.org/papers/volume24/21-1441/21-1441.pdf 这篇文章试图通过分析模型权重矩阵的频谱来解释模型,并在此基础上提出了一种用于早停的频谱标准。 1,分类难度对权重矩阵谱的影响 1.1 相关研究 在最近针对…...
基于Coze工作流实现内容智能分发:从公众号到多平台图文一键同步
1. 为什么你需要一个智能内容分发系统 每次写完公众号文章,你是不是也和我一样头疼?要把同样的内容搬运到小红书、抖音、视频号这些平台,每次都要重新排版、改标题、调整图片尺寸,一套流程下来至少得花上两小时。更糟的是…...
维纳滤波语音信号降噪Matlab程序含报告 包含6页文档报告。 使用了维纳滤波的技术去除高斯噪...
维纳滤波语音信号降噪Matlab程序含报告 包含6页文档报告。 使用了维纳滤波的技术去除高斯噪声, 程序可以直接运行,附带声音。 无需多余操作,点击运行即可。 程序经过多次测试,包成功运行,附带运行操作视频。最近在折腾…...
从5G到Wi-Fi:深入浅出聊聊Eb/N0这个‘归一化‘指标到底牛在哪
从5G到Wi-Fi:深入浅出聊聊Eb/N0这个"归一化"指标到底牛在哪 想象你站在两个不同的菜市场门口:一个摊位密集人声鼎沸,另一个宽敞安静但摊主吆喝声微弱。如果只比较整体噪音水平(类似SNR),可能会得…...
计算机毕业设计springboot基于Android的运动助手 基于SpringBoot框架的个人健身管理平台设计与实现 面向Android用户的智能运动健康追踪系统开发
计算机毕业设计springboot基于Android的运动助手c6672log (配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。随着现代生活节奏加快和工作压力增大,健康问题日益受到人们…...
终极指南:Claude Squad项目结构解析与核心模块功能详解
终极指南:Claude Squad项目结构解析与核心模块功能详解 【免费下载链接】claude-squad Manage local AI agents like Claude Code and Aider. 10x your productivity 项目地址: https://gitcode.com/gh_mirrors/cl/claude-squad Claude Squad是一款能够帮助开…...
COMSOL 钢制支架静态分析:从建模到结果解析
comsol支架-静态分析, COMSOL Multiphysics 和“结构力学模块”中对结构力学问题进行建模的基本原理及操作。 介绍线性静态分析,包括材料属性和边界条件的定义。 在计算出解之后,学习如何分析结果并检查反作用力。 模型是钢制支架。 这种支架…...
万字长文 解析串口通信
一.目标 处理器与外部设备通信的两种方式 单工只允许一个方向 半双工就像对讲机 全双工就像打电话 按照有无时钟同步 分为 1帧等于1个起始位 加上数据位 加上效验位 停止位 波特率是一秒传输的字节数 起始位(Start Bit): 起始位是数据帧的同步标志位,固定为低电平(…...
AI 对人类的影响与普通人的应对策略
AI 对人类的影响与普通人的应对策略 AI 作为当下科技革命的核心驱动力,正在以较快速度影响人类社会。近年的发展呈现出更复杂的图景:技术能力提升与落地成本并存,效率提升与分配不均交织,乐观预期与治理困境相互叠加,影…...
软件测试的V模型竟然是有争议的?——软件测评师题目拆解
不知道有多少同学在这个简单的题目栽过跟头,国内、国外对于V模型的定义是有出入的(习题在文末十二五规划教材《软件测试(第2版)佟伟光 主编》 一书中给出的V模型QT官方对应V模型的定义是这样的等级考试用书《软件测评师教程》第二…...
除了当图床,Cloudflare R2的S3 API还能这么玩?Python脚本批量管理文件实战
解锁Cloudflare R2的S3 API潜能:Python自动化文件管理实战 Cloudflare R2作为兼容S3 API的对象存储服务,其应用场景远不止搭建图床这么简单。对于开发者而言,R2提供的S3兼容接口意味着可以将其无缝集成到各种自动化工作流中。本文将带你探索如…...
