การศึกษาวิจัยครั้งนี้ดำเนินการโดย Othman El Houfi และ Dimitris Kotzinos บทความโดยละเอียดมีการเผยแพร่ที่นี่: https://bit.ly/3mzvdup
ในฐานะที่เป็นข้อมูลเท็จและข่าวปลอมกำลังแพร่กระจายไปทั่วอินเทอร์เน็ตและเครือข่ายสังคมออนไลน์ความจำเป็นในการดำเนินการตรวจสอบข้อเท็จจริงมีความจำเป็นเพื่อรักษาสภาพแวดล้อมดิจิทัลที่เป็นความจริงซึ่งข้อมูลทั่วไปสามารถใช้ประโยชน์ได้อย่างน่าเชื่อถือไม่ว่าจะเป็นการเมืองการเงินหรือโดเมนอื่น ๆ ความต้องการของการประเมินการอ้างสิทธิ์ออนไลน์นี้มาจากข้อเท็จจริงที่ว่าข่าวปลอมและข้อมูลเท็จอาจมีผลกระทบเชิงลบอย่างมากต่อการเมืองเศรษฐกิจ (การเลือกตั้งสหรัฐอเมริกาปี 2559) และสาธารณสุข (COVID-19)
มีการเสนอวิธีแก้ปัญหาจำนวนหนึ่งเพื่อจัดการกับปัญหานี้และ จำกัด การแพร่กระจายของข้อมูลเท็จทั้งคู่มือและอัตโนมัติ ไม่ต้องสงสัยเลยว่าวิธีการด้วยตนเองที่ทำบนเว็บไซต์เช่น politifact.com, factcheck.org และ snopes.com ไม่ได้สร้างทางออกที่เป็นไปได้สำหรับระยะยาวเนื่องจากความเร็วและขนาดของการแพร่กระจายข้อมูลเพิ่มขึ้นอย่างทวีคูณ
ที่นี่เรานำเสนอผลงานของเราในเรื่องนี้: โซลูชันอัตโนมัติสำหรับการตรวจสอบข้อเท็จจริงโดยใช้แบบจำลองภาษาที่ทันสมัยที่ใช้ในวันนี้สำหรับงาน NLP (Bert, Roberta, Xlnet ... ) และชุดข้อมูลที่รู้จักกันดีห้าชุด
เราประสบความสำเร็จในการพิสูจน์ว่าการปรับแต่ง LM ด้วยการตั้งค่าที่ถูกต้องสามารถบรรลุความแม่นยำ 98% และคะแนน F1 98% ในชุดข้อมูล COVID19 & Antivax รวมถึงความแม่นยำ 64% และ F1-score ของ 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หรือคุณสามารถติดตั้งการอ้างอิงทั้งหมดโดยใช้ไฟล์ ข้อกำหนด. 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'
]หากคุณต้องการใช้ชุดข้อมูลอื่นเพียงทำตามสถาปัตยกรรมเดียวกันที่ใช้สำหรับชุดข้อมูลที่มีอยู่ในที่เก็บนี้