这项研究由Othman El Houfi和Dimitris Kotzinos进行。此处发表了一篇详细的文章:https://bit.ly/3mzvdup
由于虚假信息和虚假新闻在整个互联网和社交网络中都在传播,因此需要对事实检查操作的需求为了维持一个真实的数字环境,可以可靠地利用无论是政治,金融还是其他领域的一般信息。这项在线索赔评估的需求源于以下事实:虚假新闻和虚假信息可能对政治,经济(2016年美国选举)和公共卫生(Covid-19)产生重大负面影响。
已经提出了许多解决方案来解决此问题,并限制了手册和自动信息的虚假信息的传播。毫无疑问,在politifact.com,factcheck.org和snopes.com等网站上进行的手动方法不会为长期构建可行的解决方案,因为信息传播的速度和规模增加了指数呈指数构成这一手动事实核对操作,在该操作中,人类事实检查者无法以相同的速度限制和解决问题的速度扩大速度和不可扩展。
在这里,我们在这方面介绍了我们的贡献:一种使用当今用于NLP任务的最先进的语言模型(Bert,Roberta,Xlnet ...)和五个众所周知的数据集(发烧,Multifc,Liar,Liar,Covid19和Antivax),其中包含带有带的主张/Tweet的索赔,以填充每个lm,
我们成功地证明,通过正确设置的LM进行微调可以达到98%的精度和F1分数在COVID19和Antivax数据集中的精度为98%,并且在发烧数据集中的64%和63%的精度为63%,而Fever数据集则比今天更高级的事实捕获方法更先进。
索引术语:自然语言处理,预训练的语言模型,Wikipedia,文本语料库,微调,文本处理,自然语言推断,事实检查,假新闻,Twitter,Twitter,复杂网络。
为了运行此程序,您必须首先安装以下软件包:
$ pip3 install numpy pandas sklearn transformers wandb texttable
$ pip3 install torch torchvision torchaudio torchinfo
$ pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cpu或者,您可以在此存储库中使用remirement.txt文件安装所有依赖项:
$ pip3 install -r requirements.txt建议将GPU用于基于微型变压器的语言模型,因为这是需要计算能力的艰巨任务。该程序仍然可以在CPU上使用。
为了部署LMS,我们使用了Python编程语言和拥抱面孔库,该语言可为Transformers API提供轻松下载和微调最先进的预训练模型。使用预训练的型号可以降低您的计算成本,碳足迹,并节省从头开始训练模型的时间。
为了跟踪训练指标,验证指标,磁盘使用情况,CPU使用和其他环境在实验期间使用重量和偏见API(WANDB)。对于每个步骤或时期,我们将所有分数和更改发送给WANDB项目配置文件,并实时可视化所有内容。
要执行程序,您必须在./lm_for_fact_checking/model存储库中执行并执行:
$ ./language_model.py or $ python3 language_model.py有关更多可控性,您可以在此命令行中添加选项,以下是选项列表:
$ ./language_model.py --help
usage: language_model.py [-h] [-r] [-d DATASET] [-n NUM_LABELS] [-e EPOCH] [-t TRAIN_BATCH] [-v EVAL_BATCH]
options:
-h, --help show this help message and exit
-r, --report Possible values ["none", "wandb"]. If used all logs during training and evaluation
are reported through Wandb API (must be connected with the right credentials).
-d DATASET, --dataset DATASET
Choose dataset by specifying its name: FEVER, MultiFC, Liar...
-n NUM_LABELS, --num_labels NUM_LABELS
Specify the number of labels in the dataset. Required if dataset is manually
specified (minimum is 2).
-e EPOCH, --epoch EPOCH
Specify the number of training epochs.
-t TRAIN_BATCH, --train_batch TRAIN_BATCH
Specify the size of training batch.
-v EVAL_BATCH, --eval_batch EVAL_BATCH
Specify the size of validation batch.
例如,如果您想在发烧数据集上运行该程序:
$ ./language_model.py -d FEVER -n 3 -e 3 -t 20 -v 20我们创建了一个通用代码顺序,以为其他开发人员/研究人员提供简单的插件应用程序。执行程序时,您会与简单的接口进行交互,该接口使您选择要使用的LM以及诸如微调或评估模型之类的操作列表。
Hi, choose a Language Model:
1 - bert-base-uncased
2 - roberta-base
3 - albert-base-v2
4 - distilbert-base-uncased
5 - xlnet-base-cased
6 - google/bigbird-roberta-base
7 - YituTech/conv-bert-base
0 - Quit program
4
**************** distilbert-base-uncased Model ****************
1 - Show dataset description
2 - Start model fine-tuning
3 - Start model predictions
4 - Show model metrics
0 - Quit program
最后,您可以在文件中编辑更多参数./lm_for_fact_checking/model/conf.py 。您还可以添加WANDB配置文件和其他LMS:
DEFAULT_PARAMS = {
# Transformer model
'MODEL_NAME' : None ,
# Dataset name
'DATASET_NAME' : 'FEVER' ,
'DATA_NUM_LABEL' : 2 , # minimum 2 labels
# hyperparams
'MAX_SEQ_LEN' : 128 ,
'TRAIN_BATCH_SIZE' : 20 ,
'EVAL_BATCH_SIZE' : 20 ,
'EPOCHS' : 3 ,
'LR' : 3e-5 ,
'OPTIM' : 'adamw_hf' ,
# Huggingface Trainer params
'EVAL_STEPS' : 100 ,
'SAVE_STEPS' : 100 ,
'LOGGING_STEPS' : 100 ,
'SAVE_TOTAL_LIMIT' : 1 ,
'EARLY_STOPPING_PATIENCE' : 3 ,
'REPORT' : 'none' ,
}
WANDB_PARAMS = {
'project' : 'LM-for-fact-checking' ,
'entity' : 'othmanelhoufi' ,
}
""" Here you can add more LMs to the list for more experiments """
MODEL_LIST = [
'bert-base-uncased' ,
'roberta-base' ,
'albert-base-v2' ,
'distilbert-base-uncased' ,
'xlnet-base-cased' ,
'google/bigbird-roberta-base' ,
'YituTech/conv-bert-base'
]如果要使用其他数据集,只需遵循与此存储库中现有数据集使用的相同体系结构。