SciBERT
SciBERT est un modèle BERT formé sur le texte scientifique.
SciBERT est formé sur des papiers du corpus de Semanticscholar.org. La taille du corpus est de 1,14 m de papiers, des jetons 3,1b. Nous utilisons le texte intégral des articles en formation, pas seulement des résumés.
SciBERT a son propre vocabulaire ( scivocab ) qui est conçu pour correspondre au mieux au corpus d'entraînement. Nous avons formé des versions en tube et sans fondement. Nous incluons également des modèles formés sur le vocabulaire Bert original ( basevocab ) pour comparaison.
Il en résulte des performances de pointe sur un large éventail de tâches NLP de domaine scientifique. Les détails de l'évaluation sont dans le document. Le code d'évaluation et les données sont inclus dans ce dépôt.
Mise à jour! Modèles Scibert désormais désormais installés directement dans le cadre de HuggingFace sous l'organisation allenai :
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')
Nous publions TensorFlow et la version Pytorch des modèles formés. La version TensorFlow est compatible avec le code qui fonctionne avec le modèle de Google Research. La version Pytorch est créée à l'aide de la bibliothèque FACE HUGGING, et ce dépôt montre comment l'utiliser dans ALLENNLP. Toutes les combinaisons de modèles scivocab et basevocab , cased et uncased sont disponibles ci-dessous. Notre évaluation montre que scivocab-uncased donne généralement les meilleurs résultats.
scibert-scivocab-uncased (recommandé)scibert-scivocab-casedscibert-basevocab-uncasedscibert-basevocab-casedscibert-scivocab-uncased (recommandé)scibert-scivocab-casedscibert-basevocab-uncasedscibert-basevocab-casedscibert-scivocab-uncased (recommandé)scibert-scivocab-casedscibert-basevocab-uncasedscibert-basevocab-casedLes modèles Scibert incluent tous les fichiers nécessaires à brancher votre propre modèle et sont en même format que Bert. Si vous utilisez TensorFlow, reportez-vous au Repo Bert de Google et si vous utilisez Pytorch, reportez-vous au référentiel de Hugging Face où des instructions détaillées sur l'utilisation de modèles Bert sont fournies.
Pour exécuter des expériences sur différentes tâches et reproduire nos résultats dans le papier, vous devez d'abord configurer l'environnement Python 3.6:
pip install -r requirements.txt
qui installera des dépendances comme ALLENNLP.
Utilisez le script scibert/scripts/train_allennlp_local.sh comme exemple de la façon d'exécuter une expérience (vous devrez modifier des chemins de chemins et des noms de variables comme TASK and DATASET ).
Nous incluons un large ensemble d'ensembles de données NLP scientifiques sous les data/ répertoires sur les tâches suivantes. Chaque tâche a un sous-répertoire des ensembles de données disponibles.
├── ner
│ ├── JNLPBA
│ ├── NCBI-disease
│ ├── bc5cdr
│ └── sciie
├── parsing
│ └── genia
├── pico
│ └── ebmnlp
└── text_classification
├── chemprot
├── citation_intent
├── mag
├── rct-20k
├── sci-cite
└── sciie-relation-extraction
Par exemple, pour exécuter le modèle sur la tâche de reconnaissance de l'entité nommée ( NER ) et sur l'ensemble de données BC5CDR (Biocreative V CDR), modifiez le script scibert/train_allennlp_local.sh selon:
DATASET='bc5cdr'
TASK='ner'
...
Décompressez le modèle Pytorch que vous avez téléchargé en utilisant
tar -xvf scibert_scivocab_uncased.tar
Les résultats seront dans le répertoire scibert_scivocab_uncased contenant deux fichiers: un fichier de vocabulaire ( vocab.txt ) et un fichier de poids ( weights.tar.gz ). Copiez les fichiers à votre emplacement souhaité, puis définissez des chemins corrects pour BERT_WEIGHTS et BERT_VOCAB dans le script:
export BERT_VOCAB=path-to/scibert_scivocab_uncased.vocab
export BERT_WEIGHTS=path-to/scibert_scivocab_uncased.tar.gz
Exécutez enfin le script:
./scibert/scripts/train_allennlp_local.sh [serialization-directory]
Où [serialization-directory] est le chemin d'accès à un répertoire de sortie où les fichiers du modèle seront stockés.
Si vous utilisez SciBERT dans vos recherches, veuillez citer Scibert: Modèle de langue pré-entraînée pour le texte scientifique.
@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 est un projet open source développé par l'Allen Institute for Artificiel Intelligence (AI2). AI2 est un institut à but non lucratif avec la mission de contribuer à l'humanité par la recherche et l'ingénierie d'IA à fort impact.