关于文本对抗攻击和防御(TAAD)必读论文的研读和理解(一)

关于⽂本对抗攻击和防御(TAAD)必读论⽂的研读和理解(⼀)
关于⽂本对抗的⼯具包的两篇经典论⽂,在认真阅读后谈谈⾃⼰的浅薄理解,尽量⽤通俗的语⾔解释其中含义:
1. OpenAttack: An Open-source Textual Adversarial Attack Toolkit. Guoyang Zeng, Fanchao Qi, Qianrui Zhou, Tingji Zhang, Bairu Hou, Yuan Zang, Zhiyuan Liu, Maosong Sun. ACL-IJCNLP 2021 Demo. [] [] []
2. TextAttack: A Framework for Adversarial Attacks, Data Augmentation, and Adversarial Training in NLP. John Morris, Eli Lifland, Jin Yong Yoo, Jake Grigsby, Di Jin, Yanjun Qi. EMNLP 2020 Demo. [] [] []
为什么要做⽂本攻击?
从攻防的⾓度,只有对⽅变得⾜够强⼤,⾃⼰才能主动变强(积极促进)或同步变强(最坏结果)。专业上来讲,通过⽂本对抗攻击的研究,有助于提⾼深度神经⽹络(DNNs)的鲁棒性和可解释性,使DNNs更好应⽤于安全领域。
当前形势如何?
1. ⽂本对抗攻击花样(包括使⽤的编程框架、语⾔、⼯具等)越来越多,然⼤量对抗性攻击在⾃⼰代码库中实现,对于研究者或防御者
其实不友好,难以真实还原受害者受攻击时的场景,从⽽难以对攻击模型进⾏评估以及开发对应的攻击模型来进⾏对抗训练(防御演练)。
2. ⼈们对研究NLP的对抗鲁棒性(可理解为对攻击的抗揍性)越来越感兴趣,正不断尝试在任何模型和数据集上尝试数据扩充和对抗性
训练,⽣成对抗例⼦,同时⽣成应对的更好⽅法。
如何采取措施?
开发对抗性攻击的⼯具包, 在统⼀的框架下实现⽂本对抗攻击模型,为现有的攻击模型或设计新的攻击模型提供接⼝以⽅便使⽤。两篇论⽂分别提出OpenAttack和TextAttack互补结合,因此这两篇论⽂放在⼀起学习。
介绍攻击模型:
我⽤xmind对论⽂中的表述做了张图如下:
介绍OpenAttack:
⼀个⽤于⽂本对抗攻击的开源⼯具包
整体架构如下图所⽰:
其中任何模型都可以由这些组件来组装,可以轻松⽀持定制攻击模型,考虑到不同攻击模型之间的区别⽐较⼤,特别是句⼦级和单词/字符级攻击模型之间的区别,很难像TextAttack那样在⼀个统⼀的框架内包含所有的攻击模型。因此,给攻击模型的⾻架设计留有相当⼤的⾃由度,更注重精简对抗性估计的⼀般处理。
下⾯介绍图中的主要模块:
TextProcessor:⽂本处理器:处理原始输⼊,帮助攻击模型⽣成对抗性⽰例
Victim:受害者:由三个函数组成,⽤于获得受害者模型的输⼊、分数和类别预测
Attacker:攻击者:包括各种攻击模型,可以针对受害者模型⽣成给定输⼊的对抗性⽰例
AttackAssist:攻击辅助:攻击者的⼀辅助模块,打包不同的单词和字符替换⽅法,它们⼴泛⽤于单词和字符级别的攻击模型
Metric:公制或度量:提供⼏个敌对⽰例质量指标
AttackEval:攻击评估:从不同⾓度评估⽂本对抗攻击,包括攻击有效性,对抗⽰例质量和攻击效率
DataManager:数据管理器:管理所有数据以及其他模块中使⽤的已保存模型
介绍TextAttack:
⽤于在NLP中进⾏对抗攻击、数据扩充和对抗训练的Python框架
(TextAttack可以从PyPI安装Python包获得或从GitHub下载,⽤户可以通过创建和操作攻击对象来测试攻击,命令⾏API提供了TextAttack攻击,允许⽤户从它们的四个组件或单个攻击配⽅中指定攻击,并在不同的模型和数据集上测试它们,也可通过演⽰⽹络程序使⽤,如下图3所⽰:)
NLP攻击:分解为⽬标函数、⼀组约束、转换和搜索⽅法,这样可将对抗性攻击⽅法统⼀到⼀个系统中
TextAttack的⽬的:在给定的NLP模型下,攻击者须到满⾜⽬标并符合特定语⾔约束的输⼊序列的
稀油站扰动,并在所有潜在的转换中进⾏搜索,以⽣成成功的对抗性⽰例的转换序列,并实施攻击(也可归结为⼀个组合搜索问题)
TextAttack的四个模块:
1. ⽬标函数:根据模型输出确定攻击是否成功的特定任务⽬标函数。eg:⽬标分类,⾮⽬标分类
2. 约束列表:确定扰动相对于原始输⼊是否是有效的⼀组约束。eg:最⼤单词嵌⼊距离,最⼩句⼦编码余弦相似度做文明有礼的北京人
3. 转换:给定输⼊,产⽣⼀组潜在扰动的变换。eg:单词嵌⼊单词呼唤,同字形字符替换
4. 搜索⽅法:⼀种连续查询模型并从⼀组变换中选择有希望的扰动的搜索⽅法。eg:带词重要性排序的贪婪,波束搜索,遗传算法
Attacker的做法: 试图⼲扰输⼊⽂本,使得模型输出满⾜⽬标函数(即指⽰攻击是否成功)并且扰动符合约束集(语法约束,语义相似性约束),以此来寻⼀系列产⽣成功的对抗性例⼦的转换的⼀种搜索⽅法
TextAttack⽀持的⼏种不同的攻击结果输出格式:
将结果打印到stdout
打印到⽂本⽂件或CSV
将攻击结果打印到HTML表中
将攻击结果表写⼊可视化服务器,如Visdom或Weights或Biases
我是海的女儿
TextAttack提供了16种对抗性攻击的实现⽅式,这些攻击可以在标准化的环境中进⾏基准测试、⽐较和分析:
这种模块化设计能让我们轻松组装攻击,同时重⽤跨攻击共享的组件:
此外,TextAttack在各种流⾏的数据集上提供了⼏⼗种预先训练好的模型,⽀持⼤量任务,包括摘要、机器翻译以及GLUE基准种的所有九个任务,还允许⽤户提供⾃⼰的模型和数据集,TextAttack的增强器类使⽤⼀个转换和⼀组约束来产⽣⽤于数据增强的新样本,攻击⽅法在⼀个训练循环中被反复使⽤,使得训练更精确和健壮的模型变得更加容易
通过上述的设计,实现NLP攻击,要点如下:
1. ⽤攻击⽅法对现有攻击进⾏基准测试:所有这些攻击都是在TextAttack中作为“攻击⽅法”实现的,并且只需要⼀个命令就可进⾏基
准测试
2. 通过结合新的和现有的组件创建新的攻击:下表中(截取表的⼀部分)很多组件在NLP攻击之间都是共享的,eg:⽤⽂本搜索者的搜索
⽅法、转换和约束来攻击翻译模型,所需要的就是在⽂本攻击中实现翻译⽬标函数,通过插⼊这个函数创建⼀个⼼得攻击,可以⽤来分析这个原有的翻译模型
3. 对预训练模型的攻击进⾏评估:TextAttack为⽤户提供预训练模型,包括单词级的LSTM,单词级的CNN、BERT以及其他基于
transformer的模型,这些模型在HuggingFace nlp提供的各种数据集中进⾏了预训练,TextAttack与NLP库集成在⼀起,可以⾃动加载相应的预训练的测试或验证数据集,因此在进⾏NLP攻击时更有针对性,以此来评估研究模型的健壮性
外汇百科利⽤TextAttack改进NLP模型,提升其应对风险的能⼒,步骤和要点如下:
1. 评估定制模型的健壮性:TextAttack与模型⽆关,这意味着它可以对任何深度学习框架中实现的模型进⾏攻击。模型对象必须能接受
接受字符串(或字符串列表)并可由⽬标函数处理。eg:机器翻译模型将字符串列表作为输⼊,并将字符串列表作为输出,只要⽤户的模型符合这个规范,这个模型就适合与TextAttack⼀起使⽤
2. 模型训练:使⽤textattack train命令,⽤户可以训练基于标准LSTM、CNN和transformer的模型,或在nlp库中的任何数据集上训
练⽤户定制的模型,就像预先训练的模型⼀样。⽤户使⽤的模型与textattack和textattack eval等命令兼容
3. 数据扩容:在训练开始前,增强命令会⾃动扩展数据集,⽤户可以指定每个输⼊中应该修改的部分,这使得在不同的模型和数据集上
使⽤现有的增强⽅法变得容易,这样训练更有⽬的性和针对性
4. 对抗训练:在训练集上训练了多轮之后,TextAttack会⽣成相应的对抗样本进⾏扰动。数据集的扰动版本替代了原始的训练版本,这伊丽莎白辉煌年代
样,根据模型当前的弱点定期重新⽣成模型,这就让最终的模型对训练期间使⽤的攻击健壮性更强
OpenAttack和TextAttack的不同和互补:
1. TextAttack利⽤相对严格的框架来统⼀不同的攻击模型,然⽽,这个框架不适合句⼦级别的对抗性攻击,OpenAttack⽀持包括句⼦级
攻击在内的所有类型的攻击,相⽐之下使⽤的框架更灵活
2. TextAttack只覆盖英⽂⽂本攻击,⽽OpenAttack⽀持英⽂和中⽂,其可扩展设计⽀持更多的语⾔
3. OpenAttack为攻击模型的多进程运⾏提供了⽀持,以提⾼攻击效率,此外还与HuggingFace的转换器和数据集数据库完全集成,允
许在不同数据集中对成千上万个NLP模型(尤其是预训练模型)进⾏⽅便的对抗攻击,扩展性也很好。容易攻击任何定制的受害者模型,⽆论使⽤什么编程框架(PyTorch,TensorFlow等)和任何⾃定义的数据集上

本文发布于:2024-09-21 19:48:06,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/8362.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:攻击   模型   训练   数据   对抗   约束
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议