首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

支持中文、多进程、兼容HuggingFace——清华OpenAttack文本对抗工具包重量级更新

AI科技评论报道

近日,清华大学自然语言处理实验室(THUNLP)研发的文本对抗攻击工具包OpenAttack继相关论文ACL-IJCNLP 2021 Demo发表后迎来大版本更新,不但重构了大量代码,完善了文档,更新增了多语言支持、多进程处理等重要功能。欢迎前往GitHub主页下载试用!

文本对抗逐渐成为NLP研究的热点之一,根据文本对抗论文列表TAADPapers的统计,仅2021年ACL就有12篇相关论文发表(含Findings)。借助OpenAttack这样的文本对抗工具包,你可以方便快速地进行文本对抗相关的研究和开发,具体包括:

几行代码复现经典的文本对抗攻击基线模型,大大减少实验时复现基线模型的时间和难度;

基于其提供的全面的对抗攻击评测指标,对自己的攻击模型进行系统地评测;

评测自己的NLP模型面对各种类型攻击时的鲁棒性

利用其中包含的常用攻击模型要素(如替换词生成、句子复述),迅速设计和开发新的攻击模型

进行对抗训练以提高模型鲁棒性。

相比于图像领域有一系列对抗攻击工具包(如CleverHans、Foolbox、ART),文本领域类似的对抗攻击工具包寥寥无几,除OpenAttack之外目前仅有TextAttack这一个文本对抗攻击工具包。然而TextAttack在对抗攻击类型覆盖度、多语言支持等方面有一定的局限性,相比之下OpenAttack则弥补了TextAttack的不足,并且有一些独特之处。

具体而言,最新版OpenAttack有如下几个特点:

攻击类型全覆盖。OpenAttack是目前唯一支持所有攻击类型的文本对抗攻击工具包,覆盖了所有扰动粒度:字、词、句级别,以及所有的受害模型可见度:gradient-based、score-based、decision-based、blind;

多语言支持。OpenAttack目前支持英文和中文两种语言的攻击。基于其模块化的文本预处理和攻击流程,它也可以很容易地实现对其他语言的支持;

多进程。OpenAttack基于Python原生的多进程库实现了对抗攻击的多进程执行,大大加快攻击速度;

完全兼容Hugging Face。最新版的OpenAttack完全兼容Transformers和Datasets库,无需自己训练模型或配置数据集,一行代码即可实现对Hugging Face已有模型的攻击;

高可扩展性。除了很多内置的攻击模型以及训练好的受害模型,你可以很容易地对自己的受害模型进行攻击,也可以利用OpenAttack提供的各种模块迅速设计开发新的攻击模型,设计新的攻击评测指标。

图1 OpenAttack输出对抗攻击结果示例

使用样例

OpenAttack的使用并不复杂,要执行一次对抗攻击只需如下5步:

指定被攻击的受害模型。可以是OpenAttack内置的训好的模型,可以是 Transformers中fine-tune好的模型,也可以是你自己训好的模型。

指定攻击数据集。可以是 Datasets上的数据集,也可以是你自己的数据集。

指定攻击方法。可以从OpenAttack现有的15种经典攻击方法中选择一种,也可以使用你自己设计好的攻击方法。此外在这一步也需要指定语言(英文或中文)。

指定攻击评测指标。你可以从OpenAttack现有的3类(攻击成功率、对抗样本质量、攻击效率)共9种对抗攻击评测指标中自由组合,确定你所用的评测指标,也可以设计自己的评测指标。

进行对抗攻击。你可以在这一步指定进程数来使用多进程提高攻击效率;同时可以选择将评测过程及结果可视化(如图1)或保存到文件中。

下面给出了几个代码段来演示OpenAttack的使用。

(1)基本用法

(2)从 Transformers中选择受害模型

(3)指定语言为中文

(4)使用多进程

OpenAttack还提供了其他示例代码来演示使用自己的评测数据集、自己设计攻击模型、对抗攻击、攻击句对分类(如NLI)模型等功能,可以在其项目主页中看到。更纤细的关于OpenAttack使用的问题可以参考其文档,或在GitHub中提出issue。

图2 OpenAttack文档主页

结语

OpenAttack工具包将会长期维护并保持更新,欢迎大家使用OpenAttack作为文本对抗攻击领域学术研究和应用开发的工具。在使用过程中有任何问题或是意见和建议都欢迎提出。也欢迎大家加入,共同开发、完善OpenAttack工具包。

由于微信公众号试行乱序推送,您可能不再能准时收到AI科技评论的推送。为了第一时间收到AI科技评论的报道, 请将“AI科技评论”设为星标账号,以及常点文末右下角的“在看”。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210924A04Z2Q00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券