OpenAttack
37 строк · 995.0 Байт
1import sys, os, datasets, time2sys.path.insert(0, os.path.join(3os.path.dirname(os.path.abspath(__file__)),4".."5))6
7import OpenAttack8from attackers import get_attackers9
10def dataset_mapping(x):11return {12"x": x["sentence"],13"y": 1 if x["label"] > 0.5 else 0,14}15
16def main():17import multiprocessing18if multiprocessing.get_start_method() != "spawn":19multiprocessing.set_start_method("spawn", force=True)20dataset = datasets.load_dataset("sst", split="train[:100]").map(function=dataset_mapping)21clsf = OpenAttack.loadVictim("BERT.SST") # .to("cuda:0")22
23attackers = get_attackers(dataset, clsf)24
25for attacker in attackers:26print(attacker.__class__.__name__)27try:28print(29OpenAttack.AttackEval(attacker, clsf).eval(dataset, progress_bar=True),30)31except Exception as e:32raise e33print(e)34print("\n")35
36if __name__ == "__main__":37main()38