SciBERT
SciBERT ist ein BERT -Modell, das auf wissenschaftlichen Text ausgebildet ist.
SciBERT wird auf Papieren aus dem Korpus semanticscholar.org ausgebildet. Die Korpusgröße beträgt 1,14 m Papiere, 3,1B -Token. Wir verwenden den vollständigen Text der Papiere im Training, nicht nur zum Abstracts.
SciBERT hat ein eigenes Vokabular ( scivocab ), das so konstruiert ist, dass er am besten dem Trainingskorpus entspricht. Wir trainierten Häken und nicht gestützte Versionen. Wir umfassen auch Modelle, die zum Vergleich auf dem ursprünglichen Bert -Vokabular ( basevocab ) trainiert wurden.
Es führt zu einer hochmodernen Leistung bei einer Vielzahl von NLP-Aufgaben der wissenschaftlichen Domäne. Die Details der Bewertung sind im Papier. Bewertungscode und Daten sind in diesem Repo enthalten.
Aktualisieren! Scibert -Modelle installierbar direkt im Rahmen von Huggingface unter der allenai -Org:
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')
Wir veröffentlichen den TensorFlow und die Pytorch -Version der trainierten Modelle. Die TensorFlow -Version ist mit Code kompatibel, der mit dem Modell von Google Research funktioniert. Die Pytorch -Version wird mit der umarmenden Gesichtsbibliothek erstellt, und dieses Repo zeigt, wie sie in Allennlp verwendet werden. Alle Kombinationen von scivocab und basevocab , cased und uncased Modellen sind unten verfügbar. Unsere Bewertung zeigt, dass scivocab-uncased normalerweise die besten Ergebnisse liefert.
scibert-scivocab-uncased (empfohlen)scibert-scivocab-casedscibert-basevocab-uncasedscibert-basevocab-casedscibert-scivocab-uncased (empfohlen)scibert-scivocab-casedscibert-basevocab-uncasedscibert-basevocab-casedscibert-scivocab-uncased (empfohlen)scibert-scivocab-casedscibert-basevocab-uncasedscibert-basevocab-casedSCIBERT -Modelle enthalten alle erforderlichen Dateien, die in Ihr eigenes Modell eingesteckt werden sollen, und befinden sich im gleichen Format wie Bert. Wenn Sie TensorFlow verwenden, lesen Sie das Bert -Repo von Google. Wenn Sie Pytorch verwenden, finden Sie in der Umarmung des Face's Repo, wo detaillierte Anweisungen zur Verwendung von Bert -Modellen bereitgestellt werden.
Um Experimente mit verschiedenen Aufgaben durchzuführen und unsere Ergebnisse in der Arbeit zu reproduzieren, müssen Sie zuerst die Umgebung Python 3.6 einrichten:
pip install -r requirements.txt
die Abhängigkeiten wie Allennlp installieren.
Verwenden Sie das Skript scibert/scripts/train_allennlp_local.sh als Beispiel für das Ausführen eines Experiments (Sie müssen Pfade und Variablennamen wie TASK und DATASET ändern).
Wir nehmen einen breiten Satz wissenschaftlicher NLP -Datensätze unter die data/ Verzeichnisse in den folgenden Aufgaben ein. Jede Aufgabe verfügt über ein Unterverzeichnis der verfügbaren Datensätze.
├── ner
│ ├── JNLPBA
│ ├── NCBI-disease
│ ├── bc5cdr
│ └── sciie
├── parsing
│ └── genia
├── pico
│ └── ebmnlp
└── text_classification
├── chemprot
├── citation_intent
├── mag
├── rct-20k
├── sci-cite
└── sciie-relation-extraction
Zum Beispiel, um das Modell auf der genannten Entitätserkennungsaufgabe ( NER ) und im BC5CDR -Datensatz (biocreative V CDR) das Skript scibert/train_allennlp_local.sh gemäß:
DATASET='bc5cdr'
TASK='ner'
...
Dekomprimieren Sie das von Ihnen heruntergeladene Pytorch -Modell mithilfe
tar -xvf scibert_scivocab_uncased.tar
Die Ergebnisse finden Sie im Verzeichnis scibert_scivocab_uncased mit zwei Dateien: einer Vokabulardatei ( vocab.txt ) und einer Gewichtsdatei ( weights.tar.gz ). Kopieren Sie die Dateien an Ihren gewünschten Speicherort und setzen Sie dann korrekte Pfade für BERT_WEIGHTS und BERT_VOCAB im Skript:
export BERT_VOCAB=path-to/scibert_scivocab_uncased.vocab
export BERT_WEIGHTS=path-to/scibert_scivocab_uncased.tar.gz
Schließlich führen Sie das Skript aus:
./scibert/scripts/train_allennlp_local.sh [serialization-directory]
Wobei [serialization-directory] der Pfad zu einem Ausgabeverzeichnis ist, in dem die Modelldateien gespeichert werden.
Wenn Sie SciBERT in Ihrer Forschung verwenden, zitieren Sie bitte Scibert: Pretrainier Language Model für wissenschaftlichen Text.
@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 ist ein Open-Source-Projekt, das vom Allen Institute for Artificial Intelligence (AI2) entwickelt wurde. AI2 ist ein gemeinnütziges Institut mit der Mission, durch hochwirksame AI-Forschung und -technik zur Menschheit beizutragen.