***** Новинка от 1 ноября 2020 г.: bluebert можно найти на сайтеhuggingface *****
***** Новое от 5 декабря 2019 г.: NCBI_BERT переименован в bluebert *****
***** Новое от 11 июля 2019 г.: предварительно обработанные тексты PubMed *****
Мы загрузили предварительно обработанные тексты PubMed, которые использовались для предварительного обучения моделей bluebert .
В этом репозитории представлены коды и модели bluebert , предварительно обученные на рефератах и клинических заметках PubMed (MIMIC-III). Для получения более подробной информации обратитесь к нашему документу «Передача обучения в биомедицинской обработке естественного языка: оценка BERT и ELMo на десяти наборах данных сравнительного анализа».
Предварительно обученные веса, словарный запас и файлы конфигурации bluebert можно загрузить по адресу:
Предварительно обученные веса также можно найти на Huggingface:
Наборы эталонных данных можно загрузить с https://github.com/ncbi-nlp/BLUE_Benchmark.
Мы предполагаем, что модель bluebert была загружена по адресу $ bluebert _DIR
, а набор данных — по адресу $DATASET_DIR
.
При необходимости добавьте локальный каталог в $PYTHONPATH
.
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
Имя задачи может быть
bc5cdr
: химическая задача BC5CDR или болезнь.clefe
: задача 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
Имя задачи может быть
chemprot
: задача BC6 ChemProtddi
: задача DDI 2013.i2b2_2010
: Задача I2B2 2010.python 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
Мы предоставляем предварительно обработанные тексты PubMed, которые использовались для предварительного обучения моделей bluebert . Корпус содержит около 4000 миллионов слов, извлеченных из версии кода ASCII PubMed. Другие операции включают в себя
x00
- x7F
Ниже приведен фрагмент кода для более подробной информации.
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 )
После этого мы использовали следующий код для генерации данных перед обучением. Дополнительную информацию см. на странице 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
Мы использовали следующий код для обучения модели BERT. Пожалуйста, не включайте init_checkpoint
, если вы проходите предварительное обучение с нуля. Дополнительную информацию см. на странице 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},
}
Эта работа поддерживалась программами внутренних исследований Национальных институтов здравоохранения, Национальной медицинской библиотеки и Клинического центра. Эта работа была поддержана Национальной медицинской библиотекой национальных институтов здравоохранения под номером K99LM013001-01.
Мы также благодарны авторам BERT и ELMo за то, что они сделали данные и коды общедоступными.
Мы хотели бы поблагодарить доктора Сан Кима за обработку текстов PubMed.
Этот инструмент показывает результаты исследований, проведенных в Отделении вычислительной биологии NCBI. Информация, представленная на этом веб-сайте, не предназначена для прямого диагностического использования или принятия медицинских решений без проверки и контроля со стороны клинического специалиста. Люди не должны менять свое поведение в отношении здоровья исключительно на основе информации, представленной на этом веб-сайте. NIH не проверяет независимо достоверность или полезность информации, полученной с помощью этого инструмента. Если у вас есть вопросы по поводу информации, представленной на этом веб-сайте, обратитесь к врачу. Дополнительную информацию о политике отказа от ответственности NCBI можно найти.