Quellcode für den Artikel „ CoLAKE : Contextualized Language and Knowledge Embedding“. Wenn Sie Probleme bei der Reproduktion der Experimente haben, können Sie sich gerne an uns wenden oder ein Problem vorschlagen.
Wir empfehlen, eine neue Umgebung zu erstellen.
conda create --name CoLAKE python=3.7
source activate CoLAKE
CoLAKE wird auf Basis von fastNLP und den Transformern von Huggingface implementiert und nutzt Fitlog zur Aufzeichnung der Experimente.
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
Um CoLAKE neu zu trainieren, benötigen Sie möglicherweise ein gemischtes CPU-GPU-Training, um die große Anzahl von Entitäten zu bewältigen. Unsere Implementierung basiert auf KVStore von DGL. Darüber hinaus benötigen Sie möglicherweise auch DGL-KE, um die Experimente zur Linkvorhersage zu reproduzieren.
pip install dgl==0.4.3
pip install dglke
Laden Sie das vorab trainierte CoLAKE Modell und die Einbettungen für mehr als 3 Millionen Entitäten herunter. Um die Experimente zu LAMA und LAMA-UHN zu reproduzieren, müssen Sie nur das Modell herunterladen. Sie können download_gdrive.py
in diesem Repo verwenden, um Dateien direkt von Google Drive auf Ihren Server herunterzuladen:
mkdir model
python download_gdrive.py 1MEGcmJUBXOyxKaK6K88fZFyj_IbH9U5b ./model/model.bin
python download_gdrive.py 1_FG9mpTrOnxV2NolXlu1n2ihgSZFXHnI ./model/entities.npy
Alternativ können Sie gdown
verwenden:
pip install gdown
gdown https://drive.google.com/uc ? id=1MEGcmJUBXOyxKaK6K88fZFyj_IbH9U5b
gdown https://drive.google.com/uc ? id=1_FG9mpTrOnxV2NolXlu1n2ihgSZFXHnI
Laden Sie die Datensätze für die Experimente im Artikel herunter: 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
Laden Sie den neuesten Wiki-Dump herunter (XML-Format):
wget -c https://dumps.wikimedia.org/enwiki/latest/enwiki-latest-pages-articles.xml.bz2
Laden Sie das Wissensdiagramm herunter (Wikidata5M):
wget -c https://www.dropbox.com/s/6sbhm0rwo4l73jq/wikidata5m_transductive.tar.gz ? dl=1
tar -xzvf wikidata5m_transductive.tar.gz
Laden Sie die Wikidata5M-Entitäts- und Beziehungsaliase herunter:
wget -c https://www.dropbox.com/s/lnbhc8yuhit4wm5/wikidata5m_alias.tar.gz ? dl=1
tar -xzvf wikidata5m_alias.tar.gz
Wiki-Dump vorverarbeiten:
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
Initialisieren Sie Entitäts- und Beziehungseinbettungen mit dem Durchschnitt der RoBERTa BPE-Einbettung von Entitäts- und Beziehungsaliasnamen:
cd pretrain/
python init_ent_rel.py
Trainieren Sie CoLAKE mit gemischter CPU-GPU:
./run_pretrain.sh
Wenn Sie den Code und das Modell verwenden, zitieren Sie bitte dieses Dokument:
@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
LAMA
ERNIE