OpenAI安保系统担任人长文梳理-大模型的反抗攻打与进攻 (openai安卓版)
选自Lil’Log
作者:LilianWeng
机器之心编译
编辑:Panda
LLM才干弱小,倘若存心叵测之人用其来干坏事,或许会形成难以预料的重大结果。虽然大少数商用和开源LLM都存在必定的内置安保机制,但却并不必定能进攻方式各异的反抗攻打。近日,target=_blankclass=infotextkey>OpenAI安保系统(SafetySystems)团队担任人LilianWeng颁布了一篇博客文章《AdversarialAttacksonLLMs》,梳理了针对LLM的反抗攻打类型并便捷引见了一些进攻方法。
随着的颁布,大型言语模型运行正在减速大范围铺开。OpenAI的安保系统团队曾经投入了少量资源,钻研如何在对齐环节中为模型构建自动的安保行为。然而,反抗攻打或prompt越狱依然有或许让模型输入咱们不希冀看到的内容。
目前在反抗攻打方面的钻研很多集中在图像方面,也就是在延续的高维空间。而关于文本这样的团圆数据,由于缺乏梯度信号,人们普遍以为攻打会艰巨得多。LilianWeng之前曾写过一篇文章《ControllableTextGeneration》讨论过这一主题。便捷来说:攻打LLM实质上就是管理该模型输入特定类项的(不安保)内容。
文章地址:
另一个钻研攻打LLM的分支是为了提取预训练数据、私有常识,或经过数据毒化攻打模型训练环节。但这些并非本文要讨论的主题。
基础常识
要挟模型
反抗攻打是诱使模型输入咱们不希冀的内容的输入。许多早期钻研关注的重点是分类义务,而近期的上班则开局更多关注生成模型的输入。本文讨论的是大型言语模型,并且假定攻打仅出当初推理阶段,也就是说模型权重是固定的。
图1:LLM运行所面临的要挟详情
分类
在过去,钻研社区更关注的是对分类器启动反抗攻打,并且许多是在图像畛域。LLM也可被用于分类。给定一个输入和一个分类器(.),咱们宿愿找到该输入的一个差异纤细的反抗版本_adv,使得()≠(_adv)。
文本生成
给定一个输入和一个生成模型(.),该模型可输入一个样本y~(.|)。这里的反抗攻打是找到一个(),使得y会违犯该模型内置的安保行为,比如输入合法主题的不安保内容、走漏隐衷信息或模型训练数据。对生成义务而言,判别一次性攻打成功与否并非易事,这须要一个超高品质的分类器来判别y能否安保或须要人类来启动审查。
白盒与黑盒
白盒攻打(White-boxattacks)假定攻打者可以齐全访问模型权重、架构和训练上班流程,这样一来攻打者就可以取得梯度信号。这里咱们并不假定攻打者能取得所有训练数据。这仅实用于开源模型。黑盒攻打(Black-boxattacks)则是假定攻打者只能访问API类型的服务——攻打者可以提供输入并失掉反应的样本y,而不知道有关模型的更多信息。
反抗攻打的类型
有多种不同方法可以协助攻打者找到能诱使LLM输入不安保内容的反抗输入。这里给出五种方法。
token操作
给定一段蕴含一个token序列的文本输入,咱们可以经常使用便捷的token操作(比如交流成同义词)来诱使模型给出失误预测。基于token操作的攻打属于黑盒攻打。在/target=_blankclass=infotextkey>Python框架中,Morrisetal.2020的论文《TextAttack:AFrameworkforAdversarialAttacks,max-width="600"/>
图4:UAT上班方式图示
UAT的损失_adv须要针对详细义务而设计。分类或浏览了解依赖于交叉熵。
图5:用于不同类型的言语义务的UAT示例
UAT为何有效?这是一个很幽默的疑问。由于UAT是与输入有关的,并且可以在有不同嵌入、token化打算和架构的模型之间迁徙,因此它们兴容许以有效地利用训练数据中的偏向,毕竟这种偏向曾经融入到了模型的全局行为中。
经常使用UAT攻打有一个缺陷:很容易检测进去。要素是所学习到的触发器往往是毫有意义的。Mehrabietal.(2022)在论文《RobustConversationalAgentsagainstImperceptibleToxicityTriggers》中钻研了UAT的两种变体,它们会促使所学到的触发器在多轮对话语境中难以发觉。其指标是创立能在给定对话中有效触发有毒照应的攻打性信息,同时保障该攻打在对话中是流利、连接和分歧的。
这两种变体区分是UAT-LM(UniversalAdversarialTriggerwithLanguageModelLoss)和UTSC(UnigramTriggerwithSelectionCriteria)。
图6:UTSC上班方式图示
UAT-LM和UTSC-1的体现与UAT基准相当,但UAT攻打短语的困惑度出奇得高,比UAT-LM和UTSC-1都高得多。高困惑度让攻打更易被检测进去,也更容易缓解。依据人类评价,UTSC-1攻打能比其它攻打方法失掉更连接、流利和关系的结果。
图7:基于进攻者模型对生成的攻打的照应,依据不同的有毒度分类器权衡的攻打成功率。
Zouetal.(2023)的论文《RobustConversationalAgentsagainstImperceptibleToxicityTriggers》也钻研了将通用反抗触发token作为后缀衔接到输入恳求上的状况。他们详细钻研了对LLM的恶意恳求——对此模型应当拒绝回答。理想上,拒绝不被准许的内容类别(比如立功倡导)是内置的一个关键的安保措施。这里的反抗指标是诱使LLM即使在应当拒接回答时也输入必需的照应。这就是说,当收到恶意恳求时,模型会这样回答:「当然,你须要这样做……」预期的必需照应也被性能成重复局部用户prompt,以防止便捷就能扭转主题的后缀以优化「当然」式的照应。其损失函数很便捷,就是输入指标照应的NLL(负对数似然)。
图8:引入反抗触发器的位置的图示。白色慨叹号代表要学习的反抗性token。
他们在Vicuna-7b和Vicuna-13b这两个不同的模型上启动了试验,经常使用了基于贪心坐标梯度(GCG)的搜查来贪心地寻觅候选项,使得该候选项可以在一切或许的单token交流中最大水高山缩小损失。
虽然他们的攻打序列齐全是基于开源模型训练的,但它们却出人预料地可以移植用于其它商用模型,这标明对开源模型的白盒攻打对私有模型也有效,尤其是当低层的训练数据有所堆叠时。留意Vicuna的训练经常使用了从GPT-3.5-turbo搜集的数据(经过shareGPT),这实质上是蒸馏,因此这种攻打更像是白盒攻打。
图9:在HB(有害行为)指令上的平均攻打成功率,这是在5次prompt上的平均结果。
Jonesetal.2023等提出的自回归随机坐标回升(ARCA)则思考了一个更普遍的优化疑问汇合来寻觅合乎特定行为形式的输入-输入对(,),比如以「BarackObama」扫尾但会造成毒性输入的非毒性输入。给定一个查看指标::×→ℝ,其是将一对(输入prompt,输入成功结果)映射成一个分数。
图10:诱使GPT-2和GPT-J生成有毒输入的平均成功率。粗线:CivilComments的一切输入;点线:CivilComments的1,2,3-token有毒输入。
越狱prompt设计
越狱prompt是以反抗方式诱使LLM输入应当防止的有害内容。越狱是黑盒攻打,因此词汇组合是基于启示式方法和人工探求启动的。Weietal.(2023)的论文《Jailbroken:HowDoesLLMSafetyTrainingFail?》提出了LLM安保的两种失败形式,可用于指点越狱攻打的设计。
1.相互竞争的指标 :这是指模型的才干(比如「应一直听从命令」)与安保指标相抵触的状况。应用相互竞争的指标的越狱攻打例子包括:
前缀注入:要求模型开局时必需经常使用必需性确实认语句。
拒绝克服:为模型提供详细的指令,让其不要以拒绝的格局启动照应。
其它:角色表演成DAN(如今可以做任何事)、AIM(总是很痴呆且不择手腕)等等。
2.失配的泛化 :这是指安保训练不可泛化到其具有才干的畛域。当输入位于模型的安保训练数据散布之外(OOD),但又位于其普遍的预训练语料库范围内时,就会出现这种状况。例子包括:
特殊编码:经常使用编码来构建反抗性输入。
字符变换:ROT13明码、火星文或脑残体(用视觉上相似的数字和符号交流字母)、摩尔斯电码
词变换:PigLatin(用同义词交流敏感词,比如用「窃」交流「偷」)、负载拆分(即所谓的tokensmuggling,将敏感词拆分红子字符串)
prompt层面的混杂:翻译成其它言语、要求模型以其能了解的方式启动混杂
Weietal.(2023)试验了少量越狱方法,包括由以上原理构建的组合型战略。
combination_1组合了前缀注入、拒绝克服和攻打。
combination_2参与了格调注入。
combination_3又增加了生成网站内容和格局化限度条件。
图11:越狱技巧的类型以及它们攻打模型的成功率
Greshakeetal.(2023)的论文《Notwhatyou'vesignedupfor:CompromisingReal-WorldLLM-IntegratedlicationswithIndirectPromptInjection》则在较上层面上观察了prompt注入攻打。其中指出,即使当攻打不可提供详细的方法而仅仅提供一个指标时,模型也有或许智能去成功它。当模型可以访问外部API和工具时,对更多信息(甚至是专有信息)的失掉或许造成更大的钓鱼攻打和私密窥探攻打危险。
有人类介入的红队战略
Wallaceetal.(2019)在论文《TrickMeIfYouCan:Human-in-the-loopGenerationofAdversarialExamplesforQuestionAnswering》中提出了有人类介入的反抗生成,其指标是构建用于疏导人类攻破模型的工具。
他们用QuizBowlQA数据集启动了试验,设计了一个反抗书写界面,可让人类写出相似电视问答节目《Jeopardy》格调的疑问,并用于诱导模型给出失误预测。依据关键水平的不同,每个词都会有不同色彩的标注(即移除该词后模型预测概率会出现变动)。词关键度是由模型梯度依据词嵌入来近似失掉的。
图12:反抗书写界面,其中左上局部是列出的模型前五个预测,右下局部是用户疑问,其中用不同色彩标注了词关键度。
在一次性试验中,人类训练者要做的是找到安保分类器在分类暴力内容时失败的案例。Ziegleretal.(2022)在论文《AdversarialTrainingforHigh-StakesReliability》中创立了一个工具,可用于辅佐人类反抗者更快更有效地找到分类器的失败状况并消弭它。用工具辅佐重写比齐全人工重写要更快些,可将每个样本所需的时期从20分钟降至13分钟。确切地说,他们引入了两特性能来辅佐人类写作者:显示每个token的清楚度分数、token交流和拔出。
图13:用工具辅佐人类对分类器启动反抗攻打的UI。人类要做的是编辑或补全prompt,以降低模型预测输入是暴力内容的概率。
Xuetal.2021的《Bot-AdversarialDialogueforSafeConversationalAgents》提出了Bot-AdversarialDialogue(BAD),该框架可以疏导人类去诱使模型犯错(比如输入不安保的内容)。他们搜集了5000多组模型与众包上班者的对话。每一组对话都蕴含14轮,而后他们依据不安保对话轮次的数量给模型打分。他们最终失掉了BAD数据集,其中蕴含大概2500组带有攻打性标签的对话。
Anthropic的红队数据集蕴含凑近4万个反抗攻打,它们搜集自人类红队者与LLM的对话。他们发现,RLHF的规模越大,就越难以攻打。OpenAI颁布的大模型(比如GPT-4和DALL-E3)普遍经常使用了人类专家红队来启动安保预备。
数据集地址:
模型红队战略
人类红队战略很弱小,然而难以大规模实施而且或许须要少量经过培训的专业人士。如今构想一下:咱们可以学习一个红队模型red来与指标LLM启动反抗,以触发其给出不安保照应。关于基于模型的红队战略,关键的难题是如何判别一次性攻打能否成功;只要知道了这一点,咱们才干构建用于训练红队模型的适合学习信号。
假定咱们曾经有一个高品质的分类器,能够判别模型的输入能否有害,咱们就可以将其用作鼓励来训练红队模型,以失掉一些能最大化分类器在指标模型输入上的分数的输入。令r(,)是一个这样的红队分类器,其可以判别在给定测试输入时,输入能否有害。依据Perezetal.2022的论文《RedTeamingLanguageModelswithLanguageModels》,寻觅反抗攻打样本遵照一个便捷的三步式环节:
从一个红队LLM~p_red(.)采样测试输入;
经常使用指标LLMp(|)为每个测试案例生成一个输入;
依据分类器r(,),在测试案例中找到一个会失掉有害输入的子集。
他们试验了几种从红队模型采样或进一步训练红队模型以使其愈加有效的方法,其中包括零样本生成、随机式少样本生成、监视学习、强化学习。
Casperetal.(2023)的论文《Explore,Establish,Exploit:RedTeamingLanguageModelsfromScratch》设计了一种有人类介入的红队环节。其与Perezetal.(2022)的关键不同之处在于其明白地为指标模型设置了一个数据采样阶段,这样就可以搜集其上的人类标签来训练针对特定义务的红队分类器。其蕴含探求(Explore)、建设(Establish)和应用(Exploit)三个阶段,如下图所示。
图15:驳回「探求-建设-应用」三步式方法的红队战略流程
Mehrabietal.2023的论文《FLIRT:FeedbackLoopIn-contextRedTeaming》则是依托红队LM_red的高低文学习来攻打图像或文本生成模型,使其输入不安保的内容。
在每一次性FLIRT迭代中:
红队LM_red生成一个反抗prompt~_red(.|examples);其中初始的高低文样本由人类设计;
生成模型依据这个prompt生成一个图像或文本输入;
经常使用分类器等机制对生成的内容启动评价,看其能否安保;
假设被以为不安保,则经常使用触发prompt来降级_red的高低文模板,使其依据战略生成新的反抗prompt。
至于如何降级FLIRT的高低文模板,有这样几个战略:FIFO、LIFO、Scoring、Scoring-LIFO。详见原论文。
图16:在不同的分散模型上,不同攻打战略的攻打有效率(触发了不安保生成结果的生成prompt的百分比)。基准是SFS(随机少样本)。括号中的数值是共同prompt的百分比。
如何应答攻打
鞍点疑问
Madryetal.2017的《TowardsDeepLearningModelsResistanttoAdversarialAttacks》提出了一个很不错的反抗持重性(adversarialrobustness)框架,行将反抗持重性建模成一个鞍点疑问,这样就变成了一个持重优化(robustoptimization)疑问。该框架是为分类义务的延续输入而提出的,但它用相当繁复的数学公式形容了双层优化环节,因此值得分享。
让咱们思考一个分类义务,其基于由配对的(样本,标签)构成的数据散布,(,)∈,训练一个持重分类器的指标就是一个鞍点疑问:
其中⊆ℝ^d是指准许用于反抗的一组扰动,比如咱们宿愿一张图像的反抗版本看起来与原始版本相似。
其指标由一个外部最大化疑问和一个外部最小化疑问组成:
外部最大化:寻觅能造成高损失的最有效的反抗数据点+。一切反抗性攻打方法最终都可归纳为如何最大化这个外部环节的损失。
外部最小化:寻觅最佳的模型参数化打算,使得由外部最大化环节找到的最有效攻打的损失能被最小化。要训练出持重的模型,一个简双方法是将每个数据点交流为其扰动版本,这些版本可以是一个数据点的多个反抗变体。
图17:他们还发现,面对反抗攻打的持重性须要更大的模型才干,由于这会让决策边界变得更为复杂。幽默的是,在没有数据增强的前提下,模型更大会有助于优化模型的持重性。
LLM持重性方面的一些钻研上班
这里便捷谈谈一些有关LLM持重性的钻研。
Xieetal.2023的论文《DefendingChatGPTagainstJailbreakAttackviaSelf-Reminder》发现了一种便捷直观的包全模型免受反抗攻打的方法:明白地批示模型成为担任任的模型,不要生成有害内容。这会极大降低越狱攻打的成功率,但对模型的生成品质会有反作用,这是由于这样的批示会让模型变得激进(比如不利于创意写作),或许会在某些状况下失误地解读指令(比如在安保-不安保分类时)。
为了降低反抗攻打危险,最罕用的方法是用这些攻打样原本训练模型,这种方法被称为「反抗训练」。这也被以为是最强的进攻方法,但却须要在持重性和模型性能之间寻觅平衡。Jainetal.2023经过试验测试了两种反抗训练设置,结果报告在论文《BaselineDefensesforAdversarialAttacksAgainstAlignedLanguageModels》中:(1)经常使用有害prompt与带有「I'msorry.Asa...」的照应构成的数据对来运转梯度降低;(2)关于每一个训练步骤,在拒绝照应上运转一个降低步骤并在一个红队差照应上运转一个回升步骤。最终他们发现方法(2)毫无用途,由于模型的生成品质降低了很多,而攻打成功率却仅有大批降低。
白盒攻打往往会造成反抗prompt看起来毫有意义,因此可以经过困惑度检测进去。当然,经过明白地优化而降低困惑度,白盒攻打可以间接绕过这种检测方法,比如UAT的一种变体UAT-LM。然而,这也或许会造成攻打成功率降低。
图18:困惑渡过滤器可以阻止来自[Zouetal.(2023)]的攻打。PPLPassed和PPLWindowPassed是指带有反抗性后缀的有害prompt绕过过滤器而不被检测到的比率。经过率越低,过滤器越好。地址:
Jainetal.2023还测试了对文本输入启动预处置的方法,使得能在移除反抗性修正的同时维持语义含意。
解释含意:经常使用LLM来解释输入文本的含意,这或许会对下游义务性能形成较小影响。
从新token化:将token拆离开并经常使用多个更小的token来示意它们,比如经常使用BPE-dropout(随机摈弃必定比例的token)。经常使用这种方法的假定是反抗性prompt很或许会应用特定的反抗性token组合。这也确实有助于降低攻打成功率,但也有限,比如从90%以上降至40%。
魔兽兽神演武金任务怎么做?
继续削弱第二关的进攻兵、进攻BOSS以及第二关的中立BOSS;2.第一关打完后必须等时间才能去第二关,玩家可利用这段时间打木头;3.半兽神、兽神继续魔免,替换恶魔模型,加强一些英雄的小技能伤害;4.隐藏英雄密码:ArchMage。 感觉每个英雄都挺强的,隐藏也不见得强;卡就是原来的黑洞,后面合装备用的,为方便计,设为不可出售;6.新人不会玩的或者玩不过的去论坛录像区下载相关录像看看,密码攻略区有装备介绍;7.二转技能重击加强为晕时3秒,末日审判改为分身;8.感觉二转果然还是学重击最猛,分身也还可以,会晕的可以学分身,不会的学重击较好;9.开始计时出现的任务老人会在任务二区出现,杀死它会掉东皇钟,280秒复活一次,东皇钟是玩家打本图所有BOSS时英雄身上必带装备(封神装备包含了东皇钟)!
丝路怎么攻击非NPC玩家
选择声望差在5倍以内的玩家,选择掠夺,输入对方座标,找一个英雄派兵去攻打就行了。 如果你只为完成任务的话,去打死城吧,死城不受声望限制,7天没上线的城算死城,在地图点击城堡能看到的。 那个任务无论输赢,只要掠夺过就算完成。
免责声明:本文转载或采集自网络,版权归原作者所有。本网站刊发此文旨在传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及版权、内容等问题,请联系本网,我们将在第一时间删除。同时,本网站不对所刊发内容的准确性、真实性、完整性、及时性、原创性等进行保证,请读者仅作参考,并请自行核实相关内容。对于因使用或依赖本文内容所产生的任何直接或间接损失,本网站不承担任何责任。