6. 文本情感分析模型评测模块使用方法¶
文本情感分析模型评测模块可以在 Jupyter Notebook 中使用,也可以在命令行中使用。
6.1. 在 Jupyter Notebook 中使用¶
文本情感分析模型评测模块可以在 Jupyter Notebook 中使用,用例见AI-Testing/text_demo.ipynb。
6.2. 在命令行中使用¶
文本情感分析模型评测模块可以通过读取 YAML 配置文件的方式在命令行中使用,命令如下:
python TestingText.py /path/to/config.yml
配置文件的示例可见 AI-Testing/text/configs/ExampleConfigFile.yml。可配置的主要参数如下:
# 模型评测数据集名称, 可以从以下内置数据集任选一个:
# amazon, dianping, imdb, jd_binary, jd_full, sst, ifeng, chinanews
# 也可以从Huggingface的软件包 datasets 加载,
# 具体可加载的数据集名称,请调用 datasets.list_datasets()查看
dataset: dianping
# 忽略所有错误。默认关闭。关闭情况下,如果算法内部发生错误,则直接报错
ignore_errors: true
# 文本以及模型的语言。可选值:zh, en
language: zh
# 被攻击模型名称,可以自定义(具体自定义方式,见文档),
# 也可以传入 huggingface[/xxx] 来加载Huggingface的transformer模型
# 也可以从下面的列表
# bert_amazon_zh, roberta_chinanews, roberta_dianping, roberta_ifeng, roberta_sst 中选择。
# 如果不指定,则使用默认模型
model: roberta_dianping
# 本地模型地址
# 当 model 使用自定义模型,
# 以及传入 huggingface 而不带具体模型名,无法从 Huggingface Hub 下载模型参数文件时,
# 此参数不能为空
model_path: null
# 本次评测使用的样本数目,必须大于0或者等于-1(整个数据集样本数)
num_examples: 200
# 本次评测完成需要达到的攻击成功次数的下限;null表示不设下限
num_successful_examples: null
# 随机数种子
random_seed: null
# 模型评测方法, 从以下支持的方法任选一个:
# a2t, bae, bert_attack, deep_word_bug, fd, hotflip, pso, pwws, text_bugger, text_fooler, viper
recipe: text_fooler
# 否在模型评测前随机打乱数据集顺序
shuffle: true
# 模型评测数据集子集名称, train 或者 test
subset: test
# 单个样本处理时间上限,单位:分钟
time_out: 5.0
# 单次攻击尝试次数上限;null表示无上限,直到攻击成功或者达到搜索方法的某些阈值而失败退出搜索
query_budget: 300
# 判断模型是否鲁棒的攻击成功率阈值
# 取值在 (0, 1) 区间内
robust_threshold: 0.6