行业动态 如何行使OpenAttack进走文本对抗抨击

关于OpenAttack

OpenAttack是一款专为文本对抗抨击设计的开源工具套件,该工具基于Python开发,能够处理文本对抗抨击的整个过程,包括预处理文本、访问现在的用户模型、生成对抗示例和评估抨击模型等等。

国家新闻出版署:所有网络游戏企业仅可在周五、周六、周日和法定节假日每日 20 时至 21 时向未成年人提供 1 小时服务。

历年来,手机店被盗的消息都并不在少数,但是被一扫而光的情况以往只在国外的 Apple Store 才会出现,近期在国内的小米之家却也出现了类似的恶劣情况。

8 月 30 日,据新华社报道,国家新闻出版署有关负责人解释了《关于进一步严格管理 切实防止未成年人沉迷网络游戏的通知》的动态变化。

据了解,国家新闻出版署于 2019 年印发该《通知》,后续也建成了网络游戏防沉迷实名验证系统,实现了合规上线运营游戏的全部接入。

8 月 30 日,网曝光厦门瑞景广场小米之家店被洗劫。网传的一段视频显示,事发 8 月 30 日凌晨 2 点,有 5 个看起来年纪不大的孩子将门店玻璃门强行破坏推开,先后闯入厦门瑞景广场小米之家店。

功能&行使

OpenAttack声援以下几栽功能:行业动态

高可用性:OpenAttack挑供了易于行使的API,能够声援文本对抗抨击的整个过程; 周详遮盖抨击模型类型:OpenAttack声援句子/单词/字符级扰动和梯度/分数/基于决策/盲抨击模型; 变通性强&可扩展:吾们能够轻盈抨击定制现在的用户模型,或开发和评估定制的抨击模型; 综相符评估:OpenAttack能够从抨击有效性、对抗示例质量和抨击效果等方面周详评估抨击模型;

OpenAttack的行使周围专门广,其中包括但不限于:

为抨击模型挑供各栽评估基线; 行使其周详评估指标综相符评估抨击模型; 借助通用抨击组件,配相符迅速开发新的抨击模型; 评估机器学习模型对各栽对抗抨击的鲁棒性; 议定行使生成的对抗示例雄厚训练数据,进走对抗训练以挑高机器学习模型的鲁棒性; 工具模块 工具安设

吾们能够行使pip安设,或者克隆该项现在源码来安设OpenAttack。

行使pip安设(保举):

pip install OpenAttack 

克隆代码库:

git clone https://github.com/thunlp/OpenAttack.git cd OpenAttack  python setup.py install 

安设完善之后,吾们能够尝试运走“demo.py”来检测OpenAttack是否能够平常做事:

行使样例

(1) 基础行使:行使内置抨击模型

OpenAttack内置了一些常用的文本分类模型,如LSTM和BERT,以及用于心理分析的SST和用于自然说话推理的SNLI等数据集。

以下代码段表现了如何行使基于遗传算法的抨击模型抨击SST数据集上的BERT:

import OpenAttack as oa  # choose a trained victim classification model  victim = oa.DataManager.load("Victim.BERT.SST")  # choose an evaluation dataset  dataset = oa.DataManager.load("Dataset.SST.sample")  # choose Genetic as the attacker and initialize it with default parameters  attacker = oa.attackers.GeneticAttacker()  # prepare for attacking  attack_eval = oa.attack_evals.DefaultAttackEval(attacker, victim)  # launch attacks and print attack results  attack_eval.eval(dataset, visualize=True) 

(2) 高级行使:抨击自定义现在的用户模型

下面的代码段表现了如何行使基于遗传算法的抨击模型抨击SST上的自定义心理分析模型:

import OpenAttack as oa  import numpy as np  from nltk.sentiment.vader import SentimentIntensityAnalyzer     # configure access interface of the customized victim model  class MyClassifier(oa.Classifier):      def __init__(self):          self.model = SentimentIntensityAnalyzer()      # access to the classification probability scores with respect input sentences      def get_prob(self, input_):          rt = []          for sent in input_:              rs = self.model.polarity_scores(sent)              prob = rs["pos"] / (rs["neg"] + rs["pos"])              rt.append(np.array([1 - prob, prob]))          return np.array(rt)  # choose the costomized classifier as the victim model  victim = MyClassifier()  # choose an evaluation dataset dataset = oa.DataManager.load("Dataset.SST.sample")  # choose Genetic as the attacker and initialize it with default parameters  attacker = oa.attackers.GeneticAttacker()  # prepare for attacking  attack_eval = oa.attack_evals.DefaultAttackEval(attacker, victim)  # launch attacks and print attack results  attack_eval.eval(dataset, visualize=True) 
项现在地址

OpenAttack:【GitHub传送门】

【编辑保举】行业动态

鸿蒙官方战略配相符共建——HarmonyOS技术社区 企业员工在家做事增补了全球周围内的网络钓鱼抨击强度 Linux从头学:x86 处理器如何进走-层层的内存珍惜? 用 ncdu 检查 Linux 中的可用磁盘空间 C++ || 一个浅易的 ::std::sort 怎么就能造成堆溢出呢? 原创 Piper蛋 Piper蛋窝 今 JVM 实战 OutOfMemoryError 变态