논문 " CoLAKE : Contextualized Language and Knowledge Embedding"의 소스 코드입니다. 실험을 재현하는 데 문제가 있는 경우 언제든지 문의하거나 문제를 제안해 주세요.
새로운 환경을 만드는 것이 좋습니다.
conda create --name CoLAKE python=3.7
source activate CoLAKE
CoLAKE fastNLP와 Huggingface의 변환기를 기반으로 구현되었으며, fitlog를 사용하여 실험을 기록합니다.
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 혼합 교육이 필요할 수 있습니다. 우리의 구현은 DGL에서 제공하는 KVStore를 기반으로 합니다. 또한 링크 예측에 대한 실험을 재현하려면 DGL-KE가 필요할 수도 있습니다.
pip install dgl==0.4.3
pip install dglke
300만 개 이상의 엔터티에 대해 사전 훈련된 CoLAKE 모델과 임베딩을 다운로드하세요. LAMA 및 LAMA-UHN에 대한 실험을 재현하려면 모델만 다운로드하면 됩니다. 이 저장소의 download_gdrive.py
사용하여 Google 드라이브에서 서버로 파일을 직접 다운로드할 수 있습니다.
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
CPU-GPU가 혼합된 CoLAKE 학습:
./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}
}
빠른 NLP
라마승
어니