Repo ini menyediakan kode sumber & data makalah kami GreaseLM : Graph REAsoning Enhanced Language Models for Question Answering (Sorotan ICLR 2022). Jika Anda menggunakan salah satu kode kami, data yang diproses, atau model terlatih, harap kutip:
@inproceedings { zhang2021 GreaseLM ,
title = { GreaseLM : Graph REASoning Enhanced Language Models } ,
author = { Zhang, Xikun and Bosselut, Antoine and Yasunaga, Michihiro and Ren, Hongyu and Liang, Percy and Manning, Christopher D and Leskovec, Jure } ,
booktitle = { International Conference on Learning Representations } ,
year = { 2021 }
}
Arsitektur model GreaseLM" alt="" style="max-width: 100%;">
Jalankan perintah berikut untuk membuat lingkungan conda (dengan asumsi CUDA 10.1):
conda create -y -n GreaseLM python=3.8
conda activate GreaseLM
pip install numpy==1.18.3 tqdm
pip install torch==1.8.0+cu101 torchvision -f https://download.pytorch.org/whl/torch_stable.html
pip install transformers==3.4.0 nltk spacy
pip install wandb
conda install -y -c conda-forge tensorboardx
conda install -y -c conda-forge tensorboard
# for torch-geometric
pip install torch-scatter==2.0.7 -f https://pytorch-geometric.com/whl/torch-1.8.0+cu101.html
pip install torch-cluster==1.5.9 -f https://pytorch-geometric.com/whl/torch-1.8.0+cu101.html
pip install torch-sparse==0.6.9 -f https://pytorch-geometric.com/whl/torch-1.8.0+cu101.html
pip install torch-spline-conv==1.2.1 -f https://pytorch-geometric.com/whl/torch-1.8.0+cu101.html
pip install torch-geometric==1.7.0 -f https://pytorch-geometric.com/whl/torch-1.8.0+cu101.html
Pemrosesan awal data sendiri mungkin memakan waktu lama, jadi jika Anda ingin langsung mengunduh data yang telah diproses sebelumnya, silakan lompat ke subbagian berikutnya.
Unduh data mentah ConceptNet, CommonsenseQA, OpenBookQA dengan menggunakan
./download_raw_data.sh
Anda dapat melakukan praproses data mentah ini dengan menjalankan
CUDA_VISIBLE_DEVICES=0 python preprocess.py -p <num_processes>
Anda dapat menentukan GPU yang ingin Anda gunakan di awal perintah CUDA_VISIBLE_DEVICES=...
. Skripnya akan:
data/csqa/statement/
) Skrip untuk mengunduh dan memproses data MedQA-USMLE dan grafik pengetahuan biomedis berdasarkan Database Penyakit dan Bank Obat disediakan di utils_biomed/
.
Demi kenyamanan Anda, jika Anda tidak ingin melakukan praproses data sendiri, Anda dapat mengunduh semua data praproses di sini. Unduh file-file tersebut ke direktori tingkat atas repo ini dan unzip. Pindahkan folder medqa_usmle
dan ddb
ke dalam direktori data/
.
Struktur file yang dihasilkan akan terlihat seperti ini:
.
├── README.md
├── data/
├── cpnet/ (prerocessed ConceptNet)
├── csqa/
├── train_rand_split.jsonl
├── dev_rand_split.jsonl
├── test_rand_split_no_answers.jsonl
├── statement/ (converted statements)
├── grounded/ (grounded entities)
├── graphs/ (extracted subgraphs)
├── ...
├── obqa/
├── medqa_usmle/
└── ddb/
Untuk melatih GreaseLM di CommonsenseQA, jalankan
CUDA_VISIBLE_DEVICES=0 ./run_ GreaseLM .sh csqa --data_dir data/
Anda dapat menentukan hingga 2 GPU yang ingin Anda gunakan di awal perintah CUDA_VISIBLE_DEVICES=...
.
Demikian pula, untuk melatih GreaseLM di OpenbookQA, jalankan
CUDA_VISIBLE_DEVICES=0 ./run_ GreaseLM .sh obqa --data_dir data/
Untuk melatih GreaseLM di MedQA-USMLE, jalankan
CUDA_VISIBLE_DEVICES=0 ./run_ GreaseLM __medqa_usmle.sh
Anda dapat mengunduh model GreaseLM yang telah dilatih sebelumnya di CommonsenseQA di sini, yang mencapai akun IH-dev. dari 79.0
dan uji IH acc. dari 74.0
.
Anda juga dapat mengunduh model GreaseLM yang telah dilatih sebelumnya di OpenbookQA di sini, yang mendapatkan uji acc. dari 84.8
.
Anda juga dapat mengunduh model GreaseLM yang telah dilatih sebelumnya di MedQA-USMLE di sini, yang mendapatkan uji acc. dari 38.5
.
Untuk mengevaluasi pos pemeriksaan model GreaseLM yang telah dilatih sebelumnya di CommonsenseQA, jalankan
CUDA_VISIBLE_DEVICES=0 ./eval_ GreaseLM .sh csqa --data_dir data/ --load_model_path /path/to/checkpoint
Sekali lagi Anda dapat menentukan hingga 2 GPU yang ingin Anda gunakan di awal perintah CUDA_VISIBLE_DEVICES=...
.
Demikian pula, untuk mengevaluasi pos pemeriksaan model GreaseLM yang telah dilatih sebelumnya di OpenbookQA, jalankan
CUDA_VISIBLE_DEVICES=0 ./eval_ GreaseLM .sh obqa --data_dir data/ --load_model_path /path/to/checkpoint
Untuk mengevaluasi pos pemeriksaan model GreaseLM yang telah dilatih sebelumnya di MedQA-USMLE, jalankan
INHERIT_BERT=1 CUDA_VISIBLE_DEVICES=0 ./eval_ GreaseLM .sh medqa_usmle --data_dir data/ --load_model_path /path/to/checkpoint
{train,dev,test}.statement.jsonl
dalam format .jsonl (lihat data/csqa/statement/train.statement.jsonl
)data/{yourdataset}/
untuk menyimpan file .jsonlpreprocess.py
dan lakukan ekstraksi subgraf untuk data Andautils/parser_utils.py
untuk mendukung kumpulan data Anda sendiri Repo ini dibangun berdasarkan pekerjaan berikut:
QA-GNN: Question Answering using Language Models and Knowledge Graphs
https://github.com/michiyasunaga/qagnn
Terima kasih banyak kepada penulis dan pengembang!