この調査研究は、Othman El HoufiとDimitris Kotzinosによって実施されました。詳細な記事は、https://bit.ly/3mzvdupに公開されています
虚偽の情報と偽のニュースがインターネットやソーシャルネットワーク全体で伝播しているため、政治、金融、または他のドメインであれば、一般的な情報を確実に活用できる真実のデジタル環境を維持するために、事実確認操作の必要性が必要になります。このオンライン請求評価の必要性は、偽のニュースと虚偽の情報が政治、経済(2016年の選挙)、公衆衛生(Covid-19)に大きな悪影響を与える可能性があるという事実に起因しています。
この問題に対処し、手動と自動の両方の誤った情報の拡散を制限するために、多くのソリューションが提案されています。間違いなく、politifact.com、factcheck.org、snopes.comなどのWebサイトで行われたマニュアルアプローチは、情報伝播の速度と規模が増加し、人間のファクトチェッカーが同じレートに制限され、問題を解決できない場合に拡大できないこのマニュアルチェック操作を指数関数的に増加させるため、長期的に実行可能なソリューションを構築しません。
ここでは、この点で貢献します。現在使用されている最先端の言語モデル(Bert、Roberta、XLNet ...)と5つのよく知られているデータセット(Fever、Multifc、Liar、Covid19、およびAntivax)を使用して、各LMの請求項を微調整するために微調整するために、5つのよく知られているデータセット(Fever、Multifc、Liar、Covid19、およびAntivax)を使用して、事実確認のための自動化されたソリューションを紹介します。
正しい設定でLMを微調整すると、Covid19およびAntivaxデータセットで98%の精度とF1スコアが98%の精度を達成できること、およびフィーバーデータセットの64%とF1スコアが63%の精度を達成できることを証明します。
インデックス用語:自然言語処理、事前訓練を受けた言語モデル、ウィキペディア、テキストコーパス、微調整、テキスト処理、自然言語推論、ファクトチェック、偽ニュース、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または、このリポジトリのrequirement.txtファイルを使用してすべての依存関係をインストールすることができます。
$ pip3 install -r requirements.txt計算能力を必要とする難しいタスクであるため、微調整するトランスベースの言語モデルにGPUを使用することをお勧めします。プログラムは引き続きCPUで機能します。
LMSの展開には、Pythonプログラミング言語と、トランスフォーマーAPIを提供するFaceライブラリを使用して、最先端の事前訓練モデルを簡単にダウンロードして微調整しました。事前に訓練されたモデルを使用すると、計算コスト、二酸化炭素排出量を削減し、モデルのトレーニングからゼロから時間を節約できます。
トレーニングメトリック、検証メトリック、ディスク使用、CPU使用量、およびその他の環境の変更を追跡するために、実験中にWeights&Biase 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.
たとえば、Feverデータセットでプログラムを実行する場合:
$ ./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'
]別のデータセットを使用する場合は、このリポジトリの既存のデータセットに使用される同じアーキテクチャに従ってください。