近日,清华大学自然语言处理实验室(THUNLP)研发的文本对抗攻击工具包OpenAttack继相关论文在ACL-IJCNLP2021 Demo发表后迎来大版本更新,不但重构了大量代码,完善了文档,更新增了多语言支持、多进程处理等重要功能。文本对抗逐渐成为NLP研究的热点之一,根据文本对抗论文列表TAADPapers的统计,仅2021年ACL就有12篇相关论文发表。
借助OpenAttack这样的文本对抗工具包,你可以方便快速地进行文本对抗相关的研究和开发。具体包括:几行代码复现经典的文本对抗攻击基线模型,大大减少实验时复现基线模型的时间和难度;基于其提供的全面的对抗攻击评测指标,对自己的攻击模型进行系统地评测;评测自己的NLP模型面对各种类型攻击时的鲁棒性;利用其中包含的常用攻击模型要素,迅速设计和开发新的攻击模型;进行对抗训练以提高模型鲁棒性。
相比于图像领域有一系列对抗攻击工具包,文本领域类似的对抗攻击工具包寥寥无几,除OpenAttack之外目前仅有TextAttack这一个文本对抗攻击工具包。然而TextAttack在对抗攻击类型覆盖度、多语言支持等方面有一定的局限性,相比之下OpenAttack则弥补了TextAttack的不足,并且有一些独特之处。具体而言,最新版OpenAttack有如下几个特点:攻击类型全覆盖。
OpenAttack是目前唯一支持所有攻击类型的文本对抗攻击工具包,覆盖了所有扰动粒度:字、词、句级别,以及所有的受害模型可见度;多语言支持。OpenAttack目前支持英文和中文两种语言的攻击。基于其模块化的文本预处理和攻击流程,它也可以很容易地实现对其他语言的支持;多进程。
OpenAttack基于Python原生的多进程库实现了对抗攻击的多进程执行,大大加快攻击速度;完全兼容Hugging Face。最新版的OpenAttack完全兼容Transformers和Datasets库,无需自己训练模型或配置数据集,一行代码即可实现对Hugging Face已有模型的攻击;高可扩展性。
除了很多内置的攻击模型以及训练好的受害模型,你可以很容易地对自己的受害模型进行攻击,也可以利用OpenAttack提供的各种模块迅速设计开发新的攻击模型,设计新的攻击评测指标。OpenAttack的使用并不复杂,要执行一次对抗攻击只需如下5步:指定被攻击的受害模型;指定攻击数据集;指定攻击方法;指定攻击评测指标;进行对抗攻击。
OpenAttack工具包将会长期维护并保持更新,欢迎大家使用OpenAttack作为文本对抗攻击领域学术研究和应用开发的工具。在使用过程中有任何问题或是意见和建议都欢迎提出。也欢迎大家加入,共同开发、完善OpenAttack工具包。