SciBERT
SciBERT是一种对科学文本训练的BERT模型。
SciBERT接受了Senticscholar.org语料库的论文培训。语料库的大小为114万纸,3.1b令牌。我们在培训中使用论文的全文,而不仅仅是摘要。
SciBERT拥有自己的词汇( scivocab ),该词汇量是为了最适合培训语料库的词汇。我们训练了Cased和未添加的版本。我们还包括在原始BERT词汇( basevocab )上训练的模型以进行比较。
它导致在各种科学领域NLP任务上的最新性能。评估的细节在本文中。评估代码和数据包含在此存储库中。
更新! SCIBERT模型现在可直接在allenai组织下的HuggingFace框架中安装:
from transformers import *
tokenizer = AutoTokenizer.from_pretrained('allenai/scibert_scivocab_uncased')
model = AutoModel.from_pretrained('allenai/scibert_scivocab_uncased')
tokenizer = AutoTokenizer.from_pretrained('allenai/scibert_scivocab_cased')
model = AutoModel.from_pretrained('allenai/scibert_scivocab_cased')
我们释放TensorFlow和训练有素的模型的Pytorch版本。 TensorFlow版本与与Google Research的模型合作的代码兼容。 Pytorch版本是使用拥抱面库创建的,此存储库显示了如何在AllennLP中使用它。下面提供了所有scivocab和basevocab , cased和uncased模型的组合。我们的评估表明, scivocab-uncased通常会产生最佳结果。
scibert-scivocab-uncased (推荐)scibert-scivocab-casedscibert-basevocab-uncasedscibert-basevocab-casedscibert-scivocab-uncased (推荐)scibert-scivocab-casedscibert-basevocab-uncasedscibert-basevocab-casedscibert-scivocab-uncased (推荐)scibert-scivocab-casedscibert-basevocab-uncasedscibert-basevocab-casedSCIBERT模型包含所有需要插入您自己的型号的必要文件,并且与Bert相同的格式。如果您使用的是TensorFlow,请参阅Google的Bert Repo,如果您使用Pytorch,请参阅Hugging Face的存储库,其中提供了有关使用BERT模型的详细说明。
要在不同任务上进行实验并在论文中重现我们的结果,您需要首先设置Python 3.6环境:
pip install -r requirements.txt
它将像Allennlp一样安装依赖项。
使用scibert/scripts/train_allennlp_local.sh脚本作为如何运行实验的示例(您需要修改任务和数据集(例如TASK和DATASET的变量名称)。
在以下任务中,我们在data/目录中包括一组广泛的科学NLP数据集。每个任务都有一个可用数据集的子目录。
├── ner
│ ├── JNLPBA
│ ├── NCBI-disease
│ ├── bc5cdr
│ └── sciie
├── parsing
│ └── genia
├── pico
│ └── ebmnlp
└── text_classification
├── chemprot
├── citation_intent
├── mag
├── rct-20k
├── sci-cite
└── sciie-relation-extraction
例如,要在命名实体识别( NER )任务以及BC5CDR数据集(Biocreative V CDR)上运行模型,请根据以下方式修改scibert/train_allennlp_local.sh脚本。
DATASET='bc5cdr'
TASK='ner'
...
您下载使用的Pytorch模型tar -xvf scibert_scivocab_uncased.tar
结果将在包含两个文件的scibert_scivocab_uncased中,其中包含两个文件:词汇文件( vocab.txt )和一个striges文件( weights.tar.gz )。将文件复制到您所需的位置,然后在脚本中为BERT_WEIGHTS设置正确的路径,然后在脚本中设置BERT_VOCAB :
export BERT_VOCAB=path-to/scibert_scivocab_uncased.vocab
export BERT_WEIGHTS=path-to/scibert_scivocab_uncased.tar.gz
最后运行脚本:
./scibert/scripts/train_allennlp_local.sh [serialization-directory]
其中[serialization-directory]是将存储模型文件的输出目录的途径。
如果您在研究中使用SciBERT ,请引用Scibert:科学文本的审计语言模型。
@inproceedings{Beltagy2019SciBERT,
title={SciBERT: Pretrained Language Model for Scientific Text},
author={Iz Beltagy and Kyle Lo and Arman Cohan},
year={2019},
booktitle={EMNLP},
Eprint={arXiv:1903.10676}
}
SciBERT是由艾伦人工智能研究所(AI2)开发的一个开源项目。 AI2是一家非营利研究所,其使命是通过高影响力的AI研究和工程来为人类做出贡献。