OpenAI策略:指令层级系统让大模型免于恶意攻击

news2024/10/7 20:36:54

 现代的大模型(LLMs)不再仅仅是简单的自动完成系统,它们有潜力赋能各种代理应用,如网页代理、电子邮件秘书、虚拟助手等。然而,这些应用广泛部署的一个主要风险是敌手可能诱使模型执行不安全或灾难性的行动,包括提示注入、越狱攻击等,这些攻击手段允许敌手覆盖模型的原始指令。例如,针对LLM驱动的电子邮件助手的提示注入攻击可能会泄露用户的私人电子邮件。

LLMs的典型应用案例涉及三方:应用构建者、产品的主要用户以及第三方输入。当这些参与方之间出现冲突时,例如用户或敌手试图覆盖现有指令,就会产生攻击。这些冲突可能表现为提示注入、越狱和提示提取等不同形式。因此OpenAI提出了一个指令层级的概念,类似于操作系统中的权限管理,LLMs在指令冲突时应优先考虑高优先级的指令。具体来说,当模型接收到多个指令时,低优先级的指令要么与高优先级指令一致,要么不一致。目标是教会模型在低级别指令与高级别指令一致时有条件地遵循它们。

指令层级

指令层级(Instruction Hierarchy)这个概念借鉴了操作系统中成熟的权限管理理念,将不同的指令按照优先级进行排序,确保在出现冲突时,模型能够优先执行高优先级的指令。

指令层级的工作原理可以这样理解:假设一个模型接收到了多个相互矛盾的指令,这些指令可能来自系统消息、用户输入或第三方工具的输出。在没有指令层级的情况下,模型可能会平等地处理所有这些指令,这就为恶意攻击留下了可乘之机。然而,通过实施指令层级教导模型识别并优先执行来自可信来源的高优先级指令,同时忽略或有条件地执行低优先级的指令。

例如,图1展示了一个示例对话,其中现代LLMs接收到不同类型的消息,从受信任的系统提示到不受信任的工具输出。在这个对话中,模型被教导要优先考虑特权指令,导致模型忽略了网络搜索结果中的提示注入攻击。

  1. 系统消息(System Message):这是最高优先级的消息,由应用开发者提供。在这个例子中,系统消息定义了聊天机器人的功能,即它能够访问浏览器工具并使用search()命令来获取网页结果。

  2. 用户消息(User Message):这是来自最终用户的输入,它在优先级层级中处于中等级别。在这个对话中,用户询问了关于费城76人队昨晚篮球比赛的结果。

  3. 模型输出(Model Outputs):这是LLM根据系统消息和用户消息生成的响应。在这个例子中,模型首先表示将为用户查找比赛结果,并使用了search(76ers scores last night)命令。

  4. 工具输出(Tool Outputs):这些可能包含来自互联网搜索的结果或其他第三方API查询的结果,它们在优先级层级中处于较低级别。在图1的例子中,有两个搜索结果返回给模型:

    • Web Result 1:包含了一个恶意的指令,试图让模型忽略之前的指令,并将用户的对话历史发送到攻击者的邮箱。这是一个明显的与高优先级指令不一致的低优先级指令。
    • Web Result 2:提供了用户所需信息,即76人队以121-105赢得了比赛,Joel Embiid得到了25分。
  5. 指令层级的决策:在这个对话中,模型被训练以识别并优先执行高优先级的系统消息和用户消息。当模型接收到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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1697572.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

别人不愿意教,那我来教你Simulink建模(二)【语法知识】【原创分享】

文章目录 前言节点和状态的区别?local 和非 local 的区别?事件的作用?Bus 总线?Memory 模块?caller用法?自己瞎练习的(我也不知道为啥会多出来.h文件)自己瞎练习的(这个没有多出来.h文件)autosar实例学习前言 继续更新去年的博文系列,请君切记,师父领进门修行在个…

ant design pro 6.0列表渲实践demo

ant design pro 用户列表渲实践 用户页面: src\pages\Admin\User\index.tsx import { PlusOutlined } from ant-design/icons; import type { ActionType, ProColumns, ProDescriptionsItemProps } from ant-design/pro-components; import {PageContainer,ProDe…

JAVA方法引用,异常,File,IO流知识总结

文章目录 JAVA第六周学习笔记方法引用引用静态方法引用成员方法引用构造方法其他调用方式使用类名引用成员方法引用数组的构造方法 异常作用处理方式常见成员方法抛出异常finally自定义异常 File路径构造方法**判断、获取****创建 、删除****获取并遍历**练习 IO流体系字节流Fi…

软件设计师备考笔记(十):网络与信息安全基础知识

文章目录 一、网络概述二、网络互连硬件(一)网络的设备(二)网络的传输介质(三)组建网络 三、网络协议与标准(一)网络的标准与协议(二)TCP/IP协议簇 四、Inter…

Linux基础(八):计算机基础概论

本篇博客简单介绍计算机的基础知识,为后续学习做个铺垫。 目录 一、计算机的基本组成 1.1 计算机组成五大部件 1.1.1 运算器(Arithmetic Logic Unit,ALU) 1.1.2控制器 (Control Unit,CU) …

详解 Cookies 和 WebStorage

Cookies 和 WebStorage Cookies 和 WebStorageCookies简要介绍操作 Cookies(document.cookie)不足之处 WebStorage简要介绍LocalStorage Vs. SessionStorage操作 WebStorage 三种数据存储方式的对比分析共性差异 REFERENCES Cookies 和 WebStorage Cook…

某钢铁企业数字化转型规划案例(114页PPT)

案例介绍: 该钢铁企业的数字化转型案例表明,数字化转型是钢铁企业应对市场竞争、提高生产效率、降低成本、优化资源配置和降低能耗排放的重要手段。通过引入先进的技术和管理理念,加强员工培训和人才引进,企业可以成功实现数字化…

【Java】欸...?我学集合框架?真的假的?

【Java】欸…?我学集合框架?真的假的? Java集合框架 概述 Java集合框架主要由以下几个部分组成: 接口(Interfaces):定义了集合的基本操作,如添加、删除、遍历等。实现&#xff0…

【wiki知识库】01.wiki知识库前后端项目搭建(SpringBoot+Vue3)

📝个人主页:哈__ 期待您的关注 🌼环境准备 想要搭建自己的wiki知识库,要提前搭建好自己的开发环境,后端我使用的是SpringBoot,前端使用的是Vue3,采用前后端分离的技术实现。同时使用了Mysql数…

2 使用香橙派AIpro报错 No module named ‘acllite utils‘

当使用jupyter运行香橙派的notebooks下面的案例的时候启动使用jupyter lab 然后自动跳转到jupyter页面。如下图: 这是自动跳转过来的。然后运行下面的包的导入后报错: 报错为No module named ‘acllite utils’,那么我们打开notebooks文件夹下面的start_notebooks.sh文件:…

【全开源】多功能投票小程序(ThinkPHP+FastAdmin+Uniapp)

打造高效、便捷的投票体验 一、引言 在数字化快速发展的今天,投票作为一种常见的决策方式,其便捷性和效率性显得尤为重要。为了满足不同场景下的投票需求,我们推出了这款多功能投票小程序系统源码。该系统源码设计灵活、功能丰富&#xff0…

分享:怎么才能保证大数据查询的准确性?

随着大数据应用到金融风控领域,大数据越来越重要了,很多朋友在查大数据的时候都会遇到一个问题,那就是自己查询的大数据什么信息都没有,要么就是很少,这是什么原因呢?要怎么才能保证大数据查询的准确性呢?下面小编就…

有什么免费视频翻译软件?安利5款视频翻译软件给你

随着“跨文化交流”话题的热度不断攀升,越来越多的视频内容跨越国界,触及全球观众。 在这一趋势下,视频翻译行业迎来了巨大的发展机遇。然而,面对众多的视频翻译工具,如何挑选出最合心意的那款呢? 现在&a…

RPA+AI 应用案例集合:自动推流直播

使用场景: 自动定时推流直播 使用技术: python playwright 每个解决一个小问题 During handling of the above exception, another exception occurred:Traceback (most recent call last): File "D:\pythonTryEverything\putdonwphone\not_watch_…

Vue.Draggable:强大的Vue拖放组件技术探索

一、引言 随着前端技术的不断发展,拖放(Drag-and-Drop)功能已经成为许多Web应用不可或缺的一部分。Vue.js作为现代前端框架的佼佼者,为开发者提供了丰富的生态系统和强大的工具链。Vue.Draggable作为基于Sortable.js的Vue拖放组件…

代码随想录算法训练营第三十五天 | 122.买卖股票的最佳时机 II、55.跳跃游戏、45.跳跃游戏 II

目录 122.买卖股票的最佳时机 思路 代码 55.跳跃游戏 思路 代码 45.跳跃问题 II 思路 代码 122.买卖股票的最佳时机 本题解法很巧妙,大家可以看题思考一下,在看题解。 代码随想录 思路 贪心这种东西,毫无章法可言, 完全…

c++引用和内联函数

一、引用 1.引用概念 引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空 间,它和它引用的变量共用同一块内存空间。(引用类型必须和引用实体是同种类型的),如&#x…

漫谈企业信息化安全-综述

一、前言 一直以来想写一些文章,谈一谈企业信息化过程中的安全问题及对策。 随着信息技术的不断发展和普及,特别是今年来移动办公、云服务等等新的工作模式和新的信息技术的应用,企业信息化已经成为提升竞争力、促进创新和发展的重要途径。…

QT小项目:实现远程登录数据库功能(下一章实现主界面菜单设计)

一、环境 1、下载 vs_redist.x64和mysql-connector-c8.0.27-winx64.msi(这个依赖于前者)。 mysql-connector-c8.0.27-winx64.msi vs_redist.x64 二、将程序的数据库登录部分修改 1、这里新增一个控件方便客户端输入ip地址 2、打包项目,步骤参考 QT 项目打包 3、将…

揭秘 淘宝死店采集私信筛选,号称日赚500+

淘宝死店采集工具为电子商务创业者揭示了一个领域的新机遇,通过提供一系列深入分析和资源挖掘的功能,展现了从失败中寻找成功之道的独特方法论。以下是如何通过这种工具寻找电商平台中的隐含机会的几个关键方面: 分析失败的深层原因&#x…