***** Nouveau le 1er novembre 2020 : bluebert peut être trouvé sur huggingface *****
***** Nouveau le 5 décembre 2019 : NCBI_BERT est renommé bluebert *****
***** Nouveauté le 11 juillet 2019 : textes PubMed prétraités *****
Nous avons téléchargé les textes PubMed prétraités qui ont été utilisés pour pré-entraîner les modèles bluebert .
Ce référentiel fournit des codes et des modèles de bluebert , pré-entraînés sur les résumés et notes cliniques PubMed (MIMIC-III). Veuillez vous référer à notre article Transfer Learning in Biomedical Natural Language Processing: An Evaluation of BERT and ELMo on Ten Benchmarking Datasets pour plus de détails.
Les poids bluebert , le vocabulaire et les fichiers de configuration pré-entraînés peuvent être téléchargés à partir de :
Les poids pré-entraînés peuvent également être trouvés sur Huggingface :
Les ensembles de données de référence peuvent être téléchargés depuis https://github.com/ncbi-nlp/BLUE_Benchmark
Nous supposons que le modèle bluebert a été téléchargé sur $ bluebert _DIR
et que l'ensemble de données a été téléchargé sur $DATASET_DIR
.
Ajoutez le répertoire local à $PYTHONPATH
si nécessaire.
export PYTHONPATH=. ; $PYTHONPATH
python bluebert /run_ bluebert _sts.py
--task_name= ' sts '
--do_train=true
--do_eval=false
--do_test=true
--vocab_file= $ bluebert _DIR /vocab.txt
--bert_config_file= $ bluebert _DIR /bert_config.json
--init_checkpoint= $ bluebert _DIR /bert_model.ckpt
--max_seq_length=128
--num_train_epochs=30.0
--do_lower_case=true
--data_dir= $DATASET_DIR
--output_dir= $OUTPUT_DIR
python bluebert /run_ bluebert _ner.py
--do_prepare=true
--do_train=true
--do_eval=true
--do_predict=true
--task_name= " bc5cdr "
--vocab_file= $ bluebert _DIR /vocab.txt
--bert_config_file= $ bluebert _DIR /bert_config.json
--init_checkpoint= $ bluebert _DIR /bert_model.ckpt
--num_train_epochs=30.0
--do_lower_case=true
--data_dir= $DATASET_DIR
--output_dir= $OUTPUT_DIR
Le nom de la tâche peut être
bc5cdr
: tâche chimique ou pathologique BC5CDRclefe
: tâche SHARe/CLEFEpython bluebert /run_ bluebert .py
--do_train=true
--do_eval=false
--do_predict=true
--task_name= " chemprot "
--vocab_file= $ bluebert _DIR /vocab.txt
--bert_config_file= $ bluebert _DIR /bert_config.json
--init_checkpoint= $ bluebert _DIR /bert_model.ckpt
--num_train_epochs=10.0
--data_dir= $DATASET_DIR
--output_dir= $OUTPUT_DIR
--do_lower_case=true
Le nom de la tâche peut être
chemprot
: tâche BC6 ChemProtddi
: tâche DDI 2013i2b2_2010
: tâche I2B2 2010python bluebert /run_ bluebert _multi_labels.py
--task_name= " hoc "
--do_train=true
--do_eval=true
--do_predict=true
--vocab_file= $ bluebert _DIR /vocab.txt
--bert_config_file= $ bluebert _DIR /bert_config.json
--init_checkpoint= $ bluebert _DIR /bert_model.ckpt
--max_seq_length=128
--train_batch_size=4
--learning_rate=2e-5
--num_train_epochs=3
--num_classes=20
--num_aspects=10
--aspect_value_list= " 0,1 "
--data_dir= $DATASET_DIR
--output_dir= $OUTPUT_DIR
python bluebert /run_ bluebert .py
--do_train=true
--do_eval=false
--do_predict=true
--task_name= " mednli "
--vocab_file= $ bluebert _DIR /vocab.txt
--bert_config_file= $ bluebert _DIR /bert_config.json
--init_checkpoint= $ bluebert _DIR /bert_model.ckpt
--num_train_epochs=10.0
--data_dir= $DATASET_DIR
--output_dir= $OUTPUT_DIR
--do_lower_case=true
Nous fournissons des textes PubMed prétraités qui ont été utilisés pour pré-entraîner les modèles bluebert . Le corpus contient environ 4 000 millions de mots extraits de la version du code PubMed ASCII. D'autres opérations comprennent
x00
- x7F
Vous trouverez ci-dessous un extrait de code pour plus de détails.
value = value . lower ()
value = re . sub ( r'[rn]+' , ' ' , value )
value = re . sub ( r'[^x00-x7F]+' , ' ' , value )
tokenized = TreebankWordTokenizer (). tokenize ( value )
sentence = ' ' . join ( tokenized )
sentence = re . sub ( r"s'sb" , "'s" , sentence )
Ensuite, nous avons utilisé le code suivant pour générer des données de pré-entraînement. Veuillez consulter https://github.com/google-research/bert pour plus de détails.
python bert/create_pretraining_data.py
--input_file=pubmed_uncased_sentence_nltk.txt
--output_file=pubmed_uncased_sentence_nltk.tfrecord
--vocab_file=bert_uncased_L-12_H-768_A-12_vocab.txt
--do_lower_case=True
--max_seq_length=128
--max_predictions_per_seq=20
--masked_lm_prob=0.15
--random_seed=12345
--dupe_factor=5
Nous avons utilisé le code suivant pour entraîner le modèle BERT. Veuillez ne pas inclure init_checkpoint
si vous effectuez une pré-formation à partir de zéro. Veuillez consulter https://github.com/google-research/bert pour plus de détails.
python bert/run_pretraining.py
--input_file=pubmed_uncased_sentence_nltk.tfrecord
--output_dir= $ bluebert _DIR
--do_train=True
--do_eval=True
--bert_config_file= $ bluebert _DIR /bert_config.json
--init_checkpoint= $ bluebert _DIR /bert_model.ckpt
--train_batch_size=32
--max_seq_length=128
--max_predictions_per_seq=20
--num_train_steps=20000
--num_warmup_steps=10
--learning_rate=2e-5
@InProceedings{peng2019transfer,
author = {Yifan Peng and Shankai Yan and Zhiyong Lu},
title = {Transfer Learning in Biomedical Natural Language Processing: An Evaluation of BERT and ELMo on Ten Benchmarking Datasets},
booktitle = {Proceedings of the 2019 Workshop on Biomedical Natural Language Processing (BioNLP 2019)},
year = {2019},
pages = {58--65},
}
Ce travail a été soutenu par les programmes de recherche intra-muros des National Institutes of Health, de la National Library of Medicine et du Clinical Center. Ce travail a été soutenu par la Bibliothèque nationale de médecine des National Institutes of Health sous le numéro de récompense K99LM013001-01.
Nous remercions également les auteurs de BERT et ELMo d’avoir rendu les données et les codes accessibles au public.
Nous tenons à remercier le Dr Sun Kim pour le traitement des textes PubMed.
Cet outil montre les résultats des recherches menées dans la Direction de la biologie computationnelle, NCBI. Les informations produites sur ce site Web ne sont pas destinées à un usage diagnostique direct ou à une prise de décision médicale sans examen et surveillance par un professionnel clinique. Les individus ne doivent pas modifier leur comportement en matière de santé uniquement sur la base des informations produites sur ce site Web. Le NIH ne vérifie pas de manière indépendante la validité ou l'utilité des informations produites par cet outil. Si vous avez des questions sur les informations produites sur ce site Web, veuillez consulter un professionnel de la santé. Plus d’informations sur la politique de non-responsabilité de NCBI sont disponibles.