OpenAttack
38 строк · 1.1 Кб
1import sys, os, datasets, time2sys.path.insert(0, os.path.join(3os.path.dirname(os.path.abspath(__file__)),4".."5))6
7import OpenAttack8from attackers_chinese import get_attackers_on_chinese9
10def dataset_mapping(x):11return {12"x": x["review_body"],13"y": x["stars"],14}15
16def main():17import multiprocessing18if multiprocessing.get_start_method() != "spawn":19multiprocessing.set_start_method("spawn", force=True)20dataset = datasets.load_dataset('amazon_reviews_multi','zh',split="train[:100]").map(function=dataset_mapping)21clsf = OpenAttack.loadVictim("BERT.AMAZON_ZH").to("cuda:0")22attackers = get_attackers_on_chinese(dataset, clsf)23
24for attacker in attackers:25print(attacker.__class__.__name__)26try:27st = time.perf_counter()28print(29OpenAttack.AttackEval(attacker, clsf, language="chinese").eval(dataset, num_workers=2, progress_bar=False),30time.perf_counter() - st31)32except Exception as e:33raise e34print(e)35print("\n")36
37if __name__ == "__main__":38main()