SciBERT
SciBERT é um modelo BERT treinado em texto científico.
SciBERT é treinado em artigos do corpus de Semanticscholar.org. O tamanho do corpus é de 1,14 milhão de artigos, 3,1B tokens. Usamos o texto completo dos trabalhos em treinamento, não apenas resumos.
SciBERT possui seu próprio vocabulário ( scivocab ), construído para melhor combinar com o corpus de treinamento. Treinamos versões casadas e não baseadas. Também incluímos modelos treinados no vocabulário Bert original ( basevocab ) para comparação.
Isso resulta em desempenho de última geração em uma ampla gama de tarefas de PNL de domínio científico. Os detalhes da avaliação estão no artigo. O código de avaliação e os dados estão incluídos neste repositório.
Atualizar! Os modelos Scibert agora instalam diretamente na estrutura da Huggingface sob a Org 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')
Lançamos o TensorFlow e a versão pytorch dos modelos treinados. A versão TensorFlow é compatível com o código que funciona com o modelo do Google Research. A versão Pytorch é criada usando a Biblioteca de Face Hugging, e este repositório mostra como usá -lo no AllennLP. Todas as combinações de modelos scivocab e basevocab , cased e uncased estão disponíveis abaixo. Nossa avaliação mostra que scivocab-uncased geralmente fornece os melhores 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-casedOs modelos Scibert incluem todos os arquivos necessários para serem conectados em seu próprio modelo e estão no mesmo formato que Bert. Se você estiver usando o TensorFlow, consulte o repositório Bert do Google e, se você usar o Pytorch, consulte o Repo Abraçando o Face, onde são fornecidas instruções detalhadas sobre o uso de modelos BERT.
Para executar experimentos em diferentes tarefas e reproduzir nossos resultados no artigo, você precisa primeiro configurar o ambiente Python 3.6:
pip install -r requirements.txt
que instalará dependências como a Allennlp.
Use o script scibert/scripts/train_allennlp_local.sh como um exemplo de como executar um experimento (você precisará modificar caminhos e nomes de variáveis como TASK e DATASET ).
Incluímos um amplo conjunto de conjuntos de dados científicos de PNL nos data/ diretórios nas seguintes tarefas. Cada tarefa possui um subdiretório dos conjuntos de dados disponíveis.
├── ner
│ ├── JNLPBA
│ ├── NCBI-disease
│ ├── bc5cdr
│ └── sciie
├── parsing
│ └── genia
├── pico
│ └── ebmnlp
└── text_classification
├── chemprot
├── citation_intent
├── mag
├── rct-20k
├── sci-cite
└── sciie-relation-extraction
Por exemplo, para executar o modelo na tarefa de reconhecimento de entidade nomeada ( NER ) e no conjunto de dados BC5CDR (Biocrating V CDR), modifique o script scibert/train_allennlp_local.sh de acordo com:
DATASET='bc5cdr'
TASK='ner'
...
Descompacte o modelo Pytorch que você baixou usando
tar -xvf scibert_scivocab_uncased.tar
Os resultados estarão no diretório scibert_scivocab_uncased , contendo dois arquivos: um arquivo de vocabulário ( vocab.txt ) e um arquivo de pesos ( weights.tar.gz ). Copie os arquivos para o local desejado e defina caminhos corretos para BERT_WEIGHTS e BERT_VOCAB no script:
export BERT_VOCAB=path-to/scibert_scivocab_uncased.vocab
export BERT_WEIGHTS=path-to/scibert_scivocab_uncased.tar.gz
Finalmente execute o script:
./scibert/scripts/train_allennlp_local.sh [serialization-directory]
Onde [serialization-directory] é o caminho para um diretório de saída em que os arquivos do modelo serão armazenados.
Se você usar SciBERT em sua pesquisa, cite o Scibert: Modelo de idioma pré -treinamento 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 é um projeto de código aberto desenvolvido pelo Instituto Allen de Inteligência Artificial (AI2). A AI2 é um instituto sem fins lucrativos, com a missão de contribuir com a humanidade por meio de pesquisa e engenharia de IA de alto impacto.