SciBERT
SciBERT es un modelo BERT entrenado en texto científico.
SciBERT está entrenado en documentos del corpus de semánticocholar.org. El tamaño del corpus es de 1.14 m de papeles, tokens 3.1B. Utilizamos el texto completo de los documentos en la capacitación, no solo los resúmenes.
SciBERT tiene su propio vocabulario ( scivocab ) que está construido para igualar el cuerpo de entrenamiento. Entrenamos versiones caras y no basadas. También incluimos modelos entrenados en el vocabulario Bert original ( basevocab ) para la comparación.
Resulta en el rendimiento de vanguardia en una amplia gama de tareas de PNLP de dominio científico. Los detalles de la evaluación están en el documento. El código de evaluación y los datos se incluyen en este repositorio.
¡Actualizar! Scibert Models ahora instalable directamente dentro del marco de Huggingface en 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')
Lanzamos la versión TensorFlow y Pytorch de los modelos entrenados. La versión TensorFlow es compatible con el código que funciona con el modelo de Google Research. La versión de Pytorch se crea utilizando la biblioteca de Face Hugging, y este repositorio muestra cómo usarla en Allennlp. Todas las combinaciones de scivocab y basevocab , modelos cased y uncased están disponibles a continuación. Nuestra evaluación muestra que scivocab-uncased generalmente ofrece los mejores resultados.
scibert-scivocab-uncased (recomendado)scibert-scivocab-casedscibert-basevocab-uncasedscibert-basevocab-casedscibert-scivocab-uncased (recomendado)scibert-scivocab-casedscibert-basevocab-uncasedscibert-basevocab-casedscibert-scivocab-uncased (recomendado)scibert-scivocab-casedscibert-basevocab-uncasedscibert-basevocab-casedLos modelos Scibert incluyen todos los archivos necesarios para conectarse en su propio modelo y están en el mismo formato que Bert. Si está utilizando TensorFlow, consulte el repositorio de Bert de Google y si usa Pytorch, consulte Hugging Face's Repo donde se proporcionan instrucciones detalladas sobre el uso de modelos Bert.
Para ejecutar experimentos en diferentes tareas y reproducir nuestros resultados en el documento, primero debe configurar el entorno Python 3.6:
pip install -r requirements.txt
que instalará dependencias como Allennlp.
Use el script scibert/scripts/train_allennlp_local.sh como ejemplo de cómo ejecutar un experimento (necesitará modificar rutas y nombres variables como TASK y DATASET ).
Incluimos un amplio conjunto de conjuntos de datos de NLP científicos en los data/ directorio en las siguientes tareas. Cada tarea tiene un subdirectorio de conjuntos de datos disponibles.
├── ner
│ ├── JNLPBA
│ ├── NCBI-disease
│ ├── bc5cdr
│ └── sciie
├── parsing
│ └── genia
├── pico
│ └── ebmnlp
└── text_classification
├── chemprot
├── citation_intent
├── mag
├── rct-20k
├── sci-cite
└── sciie-relation-extraction
Por ejemplo, para ejecutar el modelo en la tarea de reconocimiento de entidad nombrada ( NER ) y en el conjunto de datos BC5CDR (BioCreative V CDR), modifique el script scibert/train_allennlp_local.sh según:
DATASET='bc5cdr'
TASK='ner'
...
Descomprima el modelo Pytorch que descargó usando
tar -xvf scibert_scivocab_uncased.tar
Los resultados estarán en el directorio scibert_scivocab_uncased que contenga dos archivos: un archivo de vocabulario ( vocab.txt ) y un archivo de pesas ( weights.tar.gz ). Copie los archivos en su ubicación deseada y luego establezca rutas correctas para BERT_WEIGHTS y BERT_VOCAB en el script:
export BERT_VOCAB=path-to/scibert_scivocab_uncased.vocab
export BERT_WEIGHTS=path-to/scibert_scivocab_uncased.tar.gz
Finalmente ejecuta el script:
./scibert/scripts/train_allennlp_local.sh [serialization-directory]
Donde [serialization-directory] es la ruta a un directorio de salida donde se almacenarán los archivos del modelo.
Si usa SciBERT en su investigación, cite Scibert: Modelo de lenguaje previado a la aparición para texto científico.
@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 es un proyecto de código abierto desarrollado por el Instituto Allen de Inteligencia Artificial (AI2). AI2 es un instituto sin fines de lucro con la misión de contribuir a la humanidad a través de la investigación e ingeniería de IA de alto impacto.