Studi penelitian ini dilakukan oleh Othman El Houfi dan Dimitris Kotzinos. Artikel terperinci diterbitkan di sini: https://bit.ly/3mzvdup
Karena informasi palsu dan berita palsu menyebar di seluruh internet dan jejaring sosial, kebutuhan operasi periksa fakta menjadi diperlukan untuk mempertahankan lingkungan digital yang jujur di mana informasi umum dapat dieksploitasi dengan andal apakah dalam politik, keuangan atau domain lainnya. Kebutuhan penilaian klaim online ini berasal dari fakta bahwa berita palsu dan informasi palsu dapat memiliki dampak negatif besar pada politik, Ekonomi (Pemilihan USA 2016) dan Kesehatan Masyarakat (COVID-19).
Sejumlah solusi telah diusulkan untuk menangani masalah ini dan membatasi penyebaran informasi palsu, baik manual maupun otomatis. Tidak diragukan lagi pendekatan manual yang dilakukan di situs web seperti PolitiFact.com, FactCheck.org dan Snopes.com tidak membangun solusi yang layak untuk jangka panjang karena kecepatan dan skala perambatan informasi meningkat secara eksponensial yang secara eksponensial membuat operasi fakta-fakta manual ini tidak dapat ditingkatkan pada tingkat yang sama dan tidak mampu menyelesaikan masalah.
Di sini, kami menyajikan kontribusi kami dalam hal ini: solusi otomatis untuk memeriksa fakta menggunakan model bahasa canggih yang digunakan saat ini untuk tugas NLP (Bert, Roberta, XLNET ...) dan lima set data terkenal (demam, multifc, pembohong, covid19, dan antivax) yang berisi klaim/tweet yang dianotasi setiap tweet.
Kami berhasil membuktikan bahwa menyempurnakan LM dengan pengaturan yang benar dapat mencapai akurasi 98% dan f1-skor 98% dalam dataset COVID19 & Antivax, serta akurasi 64% dan F1-skor 63% dalam dataset demam yang lebih maju daripada sebagian besar metode pemeriksa fakta yang dikeluarkan saat ini.
Istilah Indeks: Pemrosesan Bahasa Alami, Model Bahasa Pra-Terlatih, Wikipedia, Teks Corpus, Fine-Tuning, Pemrosesan Teks, Kesimpulan Bahasa Alami, Pemeriksaan Fakta, berita palsu, Twitter, jaringan yang kompleks.
Untuk menjalankan program ini, Anda harus terlebih dahulu menginstal paket berikut:
$ 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/cpuAtau Anda dapat menginstal semua dependensi menggunakan file persyaratan.txt di repositori ini:
$ pip3 install -r requirements.txtDisarankan untuk menggunakan GPU untuk menyempurnakan model bahasa berbasis transformator karena ini adalah tugas yang sulit yang membutuhkan kekuatan komputasi. Program ini masih dapat bekerja pada CPU.
Untuk penyebaran LMS kami menggunakan bahasa pemrograman Python dan memeluk perpustakaan wajah yang menyediakan API Transformers untuk dengan mudah mengunduh dan menyempurnakan model pra-terlatih canggih. Menggunakan model pra-terlatih dapat mengurangi biaya komputasi Anda, jejak karbon, dan menghemat waktu dari melatih model dari awal.
Untuk melacak metrik pelatihan, metrik validasi, penggunaan disk, penggunaan CPU dan perubahan lingkungan lainnya selama percobaan kami, kami menggunakan bobot & bias API (WANDB). Untuk setiap langkah atau zaman kami mengirim semua skor dan perubahan pada profil proyek Wandb kami dan memvisualisasikan semuanya secara real time.
Untuk menjalankan program, Anda harus berada di repositori ./lm_for_fact_checking/model dan jalankan:
$ ./language_model.py or $ python3 language_model.pyUntuk lebih banyak kemampuan kontrol, Anda dapat menambahkan opsi ke baris perintah ini, berikut adalah daftar opsi:
$ ./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.
Misalnya jika Anda ingin menjalankan program pada dataset demam:
$ ./language_model.py -d FEVER -n 3 -e 3 -t 20 -v 20Kami membuat pesanan kode generik untuk memberikan aplikasi dan play plug and play yang mudah kepada pengembang/peneliti lain. Saat menjalankan program, Anda berinteraksi dengan antarmuka sederhana yang memungkinkan Anda memilih LM yang ingin Anda gunakan dan daftar operasi seperti menyempurnakan atau mengevaluasi model.
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
Akhirnya, Anda dapat mengedit lebih banyak parameter dalam file ./lm_for_fact_checking/model/conf.py . Anda juga dapat menambahkan profil wandb Anda dan LMS lainnya:
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'
]Jika Anda ingin menggunakan dataset yang berbeda, cukup ikuti arsitektur yang sama yang digunakan untuk dataset yang ada di repositori ini.