OpenAttack

Форк
0
/
transformer.py 
33 строки · 1.2 Кб
1
'''
2
This example code illustrates adversarial attacks against a fine-tuned model from Transformers on a dataset from Datasets.
3
'''
4
import OpenAttack
5
import transformers
6
import datasets
7

8
def dataset_mapping(x):
9
    return {
10
        "x": x["sentence"],
11
        "y": 1 if x["label"] > 0.5 else 0,
12
    }
13
    
14
def main():
15
    print("Load model")
16
    tokenizer = transformers.AutoTokenizer.from_pretrained("echarlaix/bert-base-uncased-sst2-acc91.1-d37-hybrid")
17
    model = transformers.AutoModelForSequenceClassification.from_pretrained("echarlaix/bert-base-uncased-sst2-acc91.1-d37-hybrid", num_labels=2, output_hidden_states=False)
18
    victim = OpenAttack.classifiers.TransformersClassifier (model, tokenizer, model.bert.embeddings.word_embeddings)
19

20
    print("New Attacker")
21
    attacker = OpenAttack.attackers.PWWSAttacker()
22

23
    dataset = datasets.load_dataset("sst", split="train[:20]").map(function=dataset_mapping)
24

25
    print("Start attack")
26
    attack_eval = OpenAttack.AttackEval(attacker, victim, metrics = [
27
        OpenAttack.metric.EditDistance(),
28
        OpenAttack.metric.ModificationRate()
29
    ])
30
    attack_eval.eval(dataset, visualize=True)
31

32
if __name__ == "__main__":
33
    main()
34

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.