這項研究由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'
]如果要使用其他數據集,只需遵循與此存儲庫中現有數據集使用的相同體系結構。