先做个广告:如需代注册ChatGPT或充值 GPT4.0会员(plus),请添加站长微信:gptchongzhi
推荐使用GPT中文版,国内可直接访问:https://ai.gpt86.top
镜子近期关注到 OpenAI 在4月19日上传了一篇新工作到 arXiv,文中提出的方法主要用于提升 LLMs 对于各类攻击的抵抗能力。
Attacks on LLMs
面向深度神经网络模型的对抗样本一直是一个很重要的研究领域,对抗样本可以让 LLM 做出很多违背我们原始意愿的行为,下面是一个基于 LLM 的邮件助手被攻击的例子:
通过例子我们可以看到,攻击者通过指令注入的形式,让 AI 助手将用户的邮件发送给了指定邮箱。
OpenAI 的研究者将基于 LLM 的产品使用总结分为三种情形:
应用的构建者:定义了LLM 应用的底层指令和逻辑
产品的用户:LLM 产品的实际使用者
第三方输入:工具或接口返回的内容,作为 LLM 的输入
而攻击的底层逻辑往往是在以上三方之间引入冲突(conflicts),比如产品用户输入的指令要求覆盖应用构建者的原始指令。
常见攻击形式可以概括为如下三类:
提示注入(Prompt Injections):这种攻击的目标不是 LLM 本身,而是基于 LLM 构建的应用(比如邮件助手的例子),因为基于 LLM 构建的应用往往需要给 LLM 一定的权限,使它可以访问重要的数据或执行现实世界的操作
越狱(Jailbreaks):这种攻击形式主要针对的是 LLM,让其脱离原本在训练中学到的安全行为,但并不一定与应用指令冲突。下面的例子是当 LLM 作为有帮助且无害的聊天助手应用时,攻击者让模型“帮助”他给奥巴马写钓鱼邮件(写钓鱼邮件这个行为往往会在训练阶段就被对齐抑制掉):
系统消息提取(System Message Extraction):应用构建者通过 System Message 来定义应用的行为和逻辑,这部分内容有可能具备很高的商业价值或携带隐私信息(如帐号密码):
The Instruction Hierarchy
LLM 应用的行为可以被类比成操作系统,执行指令、决定控制流程、处理数据存储。代入这样的视角我们可以发现,当下的 LLM 应用里,每条指令都相当于是在内核态运行的,不受信任的第三方可以运行任意代码并访问私有数据和功能。很自然地,解决方案也可以参考操作系统,对权限进行层级划分。
本文将不同类型的信息分成了四个等级:
当低等级指令与高等级指令具有相同的约束、规则或目标,则称该指令与高级指令是一致的(aligned),应当被模型遵循。反之,不一致的(misaligned)指令则应该被模型忽略或拒绝。
本文主要通过合成数据和上下文蒸馏(Context Distillation)手段来引入这种权限层级:
上下文合成:对于一致的命令,将一条组合指令拆成更小的指令,比如将“用西班牙语写一首20行的诗”,拆成“写一首诗”、“用20行”、“用西班牙语回答”,然后给子命令分配不同的权限等级,用这样的输入来预测原本的正确回答
上下文忽略:对于不一致的命令,则会用将低等级指令删去后的内容让模型生成标注,以新生成的内容作为标注,简单来说,就是让模型学会忽略低等级指令
在进行训练数据生成时,作者仔细地注意了数据的平衡性,以避免触发模型的过度拒绝行为(比如忽略所有的低等级指令,而不管它是否是一致的)
从最终结果显示,指令权限层级化可以有效提升 LLM 对于攻击的鲁棒性:
最后是使用该方法后,对于过度拒答率的统计:
本文链接:http://xiaogongchang.cn/chatgpt/1105.html
注册chatgpt收不到验证码了Random能注册chatgpt的邮箱chatgpt注册网站怎么让chatgpt写亚马逊标题和文案MindShow如何注册ChatGPT账户chatgpt国内版本chatgptplus注册