***** Neu ab 01.11.2020: bluebert ist bei Huggingface zu finden *****
***** Neu 5. Dezember 2019: NCBI_BERT wird in bluebert umbenannt *****
***** Neu ab 11. Juli 2019: vorverarbeitete PubMed-Texte *****
Wir haben die vorverarbeiteten PubMed-Texte hochgeladen, die zum Vortraining der bluebert -Modelle verwendet wurden.
Dieses Repository stellt Codes und Modelle von bluebert bereit, die auf PubMed-Abstracts und klinischen Notizen (MIMIC-III) vorab trainiert sind. Weitere Einzelheiten finden Sie in unserem Artikel „Transfer Learning in Biomedical Natural Language Processing: An Evaluation of BERT and ELMo on Ten Benchmarking Datasets“.
Die vorab trainierten bluebert Gewichte, Vokabeln und Konfigurationsdateien können heruntergeladen werden von:
Die vortrainierten Gewichte finden Sie auch bei Huggingface:
Die Benchmark-Datensätze können unter https://github.com/ncbi-nlp/BLUE_Benchmark heruntergeladen werden
Wir gehen davon aus, dass das bluebert -Modell unter $ bluebert _DIR
heruntergeladen wurde und der Datensatz unter $DATASET_DIR
heruntergeladen wurde.
Fügen Sie bei Bedarf ein lokales Verzeichnis zu $PYTHONPATH
hinzu.
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
Der Aufgabenname kann sein
bc5cdr
: BC5CDR-Chemie- oder Krankheitsaufgabeclefe
: ShARe/CLEFE-Aufgabepython 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
Der Aufgabenname kann sein
chemprot
: BC6 ChemProt-Aufgabeddi
: DDI 2013-Aufgabei2b2_2010
: I2B2 2010-Aufgabepython 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
Wir stellen vorverarbeitete PubMed-Texte bereit, die zum Vortraining der bluebert -Modelle verwendet wurden. Das Korpus enthält etwa 4000 Millionen Wörter, die aus der PubMed-ASCII-Codeversion extrahiert wurden. Andere Operationen umfassen
x00
- x7F
Unten finden Sie einen Codeausschnitt für weitere Details.
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 )
Anschließend haben wir den folgenden Code verwendet, um Vortrainingsdaten zu generieren. Weitere Informationen finden Sie unter https://github.com/google-research/bert.
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
Wir haben den folgenden Code verwendet, um das BERT-Modell zu trainieren. Bitte schließen Sie init_checkpoint
nicht ein, wenn Sie das Training von Grund auf durchführen. Weitere Informationen finden Sie unter https://github.com/google-research/bert.
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},
}
Diese Arbeit wurde durch die intramuralen Forschungsprogramme der National Institutes of Health, der National Library of Medicine und des Clinical Center unterstützt. Diese Arbeit wurde von der National Library of Medicine der National Institutes of Health unter der Preisnummer K99LM013001-01 unterstützt.
Wir sind auch den Autoren von BERT und ELMo dankbar, dass sie die Daten und Codes öffentlich zugänglich gemacht haben.
Wir danken Dr. Sun Kim für die Bearbeitung der PubMed-Texte.
Dieses Tool zeigt die Ergebnisse der in der Computational Biology Branch des NCBI durchgeführten Forschung. Die auf dieser Website bereitgestellten Informationen sind nicht für den direkten diagnostischen Gebrauch oder die medizinische Entscheidungsfindung ohne Prüfung und Aufsicht durch einen klinischen Fachmann bestimmt. Einzelpersonen sollten ihr Gesundheitsverhalten nicht allein aufgrund der auf dieser Website bereitgestellten Informationen ändern. NIH überprüft nicht unabhängig die Gültigkeit oder Nützlichkeit der von diesem Tool erzeugten Informationen. Wenn Sie Fragen zu den auf dieser Website bereitgestellten Informationen haben, wenden Sie sich bitte an einen Arzt. Weitere Informationen zur Haftungsausschlussrichtlinie von NCBI finden Sie hier.