كود المصدر للورق " CoLAKE : اللغة السياقية وتضمين المعرفة". إذا كانت لديك أي مشكلة بشأن إعادة إنتاج التجارب، فلا تتردد في الاتصال بنا أو اقتراح مشكلة.
نوصي بخلق بيئة جديدة.
conda create --name CoLAKE python=3.7
source activate CoLAKE
تم تنفيذ CoLAKE استنادًا إلى محولات fastNLP وhuggingface، ويستخدم سجل اللياقة لتسجيل التجارب.
git clone https://github.com/fastnlp/fastNLP.git
cd fastNLP/ & python setup.py install
git clone https://github.com/fastnlp/fitlog.git
cd fitlog/ & python setup.py install
pip install transformers==2.11
pip install sklearn
لإعادة تدريب CoLAKE ، قد تحتاج إلى تدريب مختلط على وحدة المعالجة المركزية (CPU) ووحدة معالجة الرسومات (GPU) للتعامل مع عدد كبير من الكيانات. يعتمد تنفيذنا على KVStore المقدم من DGL. بالإضافة إلى ذلك، لإعادة إنتاج التجارب المتعلقة بتنبؤ الارتباط، قد تحتاج أيضًا إلى DGL-KE.
pip install dgl==0.4.3
pip install dglke
قم بتنزيل نموذج CoLAKE المُدرب مسبقًا والتضمينات لأكثر من 3 ملايين كيان. لإعادة إنتاج التجارب على LAMA وLAMA-UHN، ما عليك سوى تنزيل النموذج. يمكنك استخدام download_gdrive.py
في هذا الريبو لتنزيل الملفات مباشرة من Google Drive إلى خادمك:
mkdir model
python download_gdrive.py 1MEGcmJUBXOyxKaK6K88fZFyj_IbH9U5b ./model/model.bin
python download_gdrive.py 1_FG9mpTrOnxV2NolXlu1n2ihgSZFXHnI ./model/entities.npy
بدلا من ذلك، يمكنك استخدام gdown
:
pip install gdown
gdown https://drive.google.com/uc ? id=1MEGcmJUBXOyxKaK6K88fZFyj_IbH9U5b
gdown https://drive.google.com/uc ? id=1_FG9mpTrOnxV2NolXlu1n2ihgSZFXHnI
قم بتنزيل مجموعات البيانات الخاصة بالتجارب الموجودة في الورقة: Google Drive.
python download_gdrive.py 1UNXICdkB5JbRyS5WTq6QNX4ndpMlNob6 ./data.tar.gz
tar -xzvf data.tar.gz
cd finetune/
python run_re.py --debug --gpu 0
python run_typing.py --debug --gpu 0
cd ../lama/
python eval_lama.py
قم بتنزيل أحدث نسخة من Wiki (تنسيق XML):
wget -c https://dumps.wikimedia.org/enwiki/latest/enwiki-latest-pages-articles.xml.bz2
تنزيل الرسم البياني المعرفي (Wikidata5M):
wget -c https://www.dropbox.com/s/6sbhm0rwo4l73jq/wikidata5m_transductive.tar.gz ? dl=1
tar -xzvf wikidata5m_transductive.tar.gz
قم بتنزيل كيان Wikidata5M والأسماء المستعارة للعلاقات:
wget -c https://www.dropbox.com/s/lnbhc8yuhit4wm5/wikidata5m_alias.tar.gz ? dl=1
tar -xzvf wikidata5m_alias.tar.gz
تفريغ ويكي المعالجة المسبقة:
mkdir pretrain_data
# process xml-format wiki dump
python preprocess/WikiExtractor.py enwiki-latest-pages-articles.xml.bz2 -o pretrain_data/output -l --min_text_length 100 --filter_disambig_pages -it abbr,b,big --processes 4
# Modify anchors
python preprocess/extract.py 4
python preprocess/gen_data.py 4
# Count entity & relation frequency and generate vocabs
python statistic.py
تهيئة عمليات تضمين الكيان والعلاقات بمتوسط تضمين RoBERTa BPE للأسماء المستعارة للكيانات والعلاقات:
cd pretrain/
python init_ent_rel.py
تدريب CoLAKE باستخدام وحدة المعالجة المركزية (CPU) ووحدة معالجة الرسومات (GPU) المختلطة:
./run_pretrain.sh
إذا كنت تستخدم الكود والنموذج، يرجى ذكر هذه الورقة:
@inproceedings{sun2020 CoLAKE ,
author = {Tianxiang Sun and Yunfan Shao and Xipeng Qiu and Qipeng Guo and Yaru Hu and Xuanjing Huang and Zheng Zhang},
title = { CoLAKE : Contextualized Language and Knowledge Embedding},
booktitle = {Proceedings of the 28th International Conference on Computational Linguistics, {COLING}},
year = {2020}
}
fastNLP
لاما
إيرني