自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何使用OpenAttack進(jìn)行文本對抗攻擊

安全 數(shù)據(jù)安全
OpenAttack是一款專為文本對抗攻擊設(shè)計(jì)的開源工具套件,該工具基于Python開發(fā),可以處理文本對抗攻擊的整個(gè)過程,包括預(yù)處理文本、訪問目標(biāo)用戶模型、生成對抗示例和評估攻擊模型等等。

[[420232]]

關(guān)于OpenAttack

OpenAttack是一款專為文本對抗攻擊設(shè)計(jì)的開源工具套件,該工具基于Python開發(fā),可以處理文本對抗攻擊的整個(gè)過程,包括預(yù)處理文本、訪問目標(biāo)用戶模型、生成對抗示例和評估攻擊模型等等。

功能&使用

OpenAttack支持以下幾種功能:

  • 高可用性:OpenAttack提供了易于使用的API,可以支持文本對抗攻擊的整個(gè)過程;
  • 全面覆蓋攻擊模型類型:OpenAttack支持句子/單詞/字符級擾動和梯度/分?jǐn)?shù)/基于決策/盲攻擊模型;
  • 靈活性強(qiáng)&可擴(kuò)展:我們可以輕松攻擊定制目標(biāo)用戶模型,或開發(fā)和評估定制的攻擊模型;
  • 綜合評估:OpenAttack可以從攻擊有效性、對抗示例質(zhì)量和攻擊效率等方面全面評估攻擊模型;

OpenAttack的使用范圍非常廣,其中包括但不限于:

  • 為攻擊模型提供各種評估基線;
  • 使用其全面評估指標(biāo)綜合評估攻擊模型;
  • 借助通用攻擊組件,協(xié)助快速開發(fā)新的攻擊模型;
  • 評估機(jī)器學(xué)習(xí)模型對各種對抗攻擊的魯棒性;
  • 通過使用生成的對抗示例豐富訓(xùn)練數(shù)據(jù),進(jìn)行對抗訓(xùn)練以提高機(jī)器學(xué)習(xí)模型的魯棒性;

工具模塊

工具安裝

我們可以使用pip安裝,或者克隆該項(xiàng)目源碼來安裝OpenAttack。

使用pip安裝(推薦):

  1. pip install OpenAttack 

克隆代碼庫:

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

安裝完成之后,我們可以嘗試運(yùn)行“demo.py”來檢測OpenAttack是否能夠正常工作:

使用樣例

(1) 基礎(chǔ)使用:使用內(nèi)置攻擊模型

OpenAttack內(nèi)置了一些常用的文本分類模型,如LSTM和BERT,以及用于情感分析的SST和用于自然語言推理的SNLI等數(shù)據(jù)集。

以下代碼段顯示了如何使用基于遺傳算法的攻擊模型攻擊SST數(shù)據(jù)集上的BERT:

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

(2) 高級使用:攻擊自定義目標(biāo)用戶模型

下面的代碼段顯示了如何使用基于遺傳算法的攻擊模型攻擊SST上的自定義情緒分析模型:

  1. import OpenAttack as oa  
  2. import numpy as np  
  3. from nltk.sentiment.vader import SentimentIntensityAnalyzer 
  4.  
  5.    
  6. # configure access interface of the customized victim model  
  7. class MyClassifier(oa.Classifier):  
  8.     def __init__(self):  
  9.         self.model = SentimentIntensityAnalyzer()  
  10.     # access to the classification probability scores with respect input sentences  
  11.     def get_prob(self, input_):  
  12.         rt = []  
  13.         for sent in input_:  
  14.             rs = self.model.polarity_scores(sent)  
  15.             prob = rs["pos"] / (rs["neg"] + rs["pos"])  
  16.             rt.append(np.array([1 - prob, prob]))  
  17.         return np.array(rt)  
  18. # choose the costomized classifier as the victim model  
  19. victim = MyClassifier()  
  20. # choose an evaluation dataset 
  21. dataset = oa.DataManager.load("Dataset.SST.sample")  
  22. # choose Genetic as the attacker and initialize it with default parameters  
  23. attacker = oa.attackers.GeneticAttacker()  
  24. # prepare for attacking  
  25. attack_eval = oa.attack_evals.DefaultAttackEval(attacker, victim)  
  26. # launch attacks and print attack results  
  27. attack_eval.eval(dataset, visualize=True

項(xiàng)目地址

OpenAttack:【GitHub傳送門

 

責(zé)任編輯:趙寧寧 來源: FreeBuf
相關(guān)推薦

2016-10-20 14:22:46

2018-03-27 13:33:48

百度

2023-06-11 17:00:06

2016-11-16 15:05:42

情感分析

2020-09-18 06:51:05

攻擊文本構(gòu)造

2017-04-07 09:00:46

UbuntuVim文本選擇

2020-12-31 05:37:05

HiveUDFSQL

2023-07-05 07:36:36

SpringJava代碼

2022-08-17 12:35:26

Linux sed編輯器

2019-04-26 12:36:03

2011-09-01 18:54:29

WifiGoodReader

2024-11-20 10:00:00

Python文件讀寫

2023-11-28 09:00:00

機(jī)器學(xué)習(xí)少樣本學(xué)習(xí)SetFit

2023-04-20 14:58:54

2023-11-13 18:37:44

2023-04-17 11:42:07

2018-11-16 10:10:09

2010-09-13 10:45:04

2010-03-12 19:29:15

python svn腳

2021-07-27 07:31:16

CSS 元素切換
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號