***** 2020년 11월 1일 신규: bluebert 허깅페이스에서 만나보실 수 있습니다 *****
***** 2019년 12월 5일 신규: NCBI_BERT가 bluebert 로 이름이 변경되었습니다 *****
***** 2019년 7월 11일 신규: 전처리된 PubMed 텍스트 *****
bluebert 모델을 사전 훈련하는 데 사용된 사전 처리된 PubMed 텍스트를 업로드했습니다.
이 저장소는 PubMed 초록 및 임상 노트(MIMIC-III)에 대해 사전 훈련된 bluebert 의 코드와 모델을 제공합니다. 자세한 내용은 생물 의학 자연어 처리의 전이 학습: 10가지 벤치마킹 데이터 세트에 대한 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/CLEFE 작업python 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 ChemProt 작업ddi
: 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
우리는 bluebert 모델을 사전 훈련하는 데 사용된 사전 처리된 PubMed 텍스트를 제공합니다. 이 말뭉치에는 PubMed ASCII 코드 버전에서 추출된 ~4000M 단어가 포함되어 있습니다. 기타 작업에는 다음이 포함됩니다.
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 텍스트를 처리해 주신 Sun Kim 박사님께 감사드립니다.
이 도구는 NCBI의 전산 생물학 부서에서 수행된 연구 결과를 보여줍니다. 본 웹사이트에서 생성된 정보는 임상 전문가의 검토 및 감독 없이 직접적인 진단 용도나 의학적 의사 결정을 위한 것이 아닙니다. 개인은 이 웹사이트에 제공된 정보만을 토대로 자신의 건강 행동을 바꿔서는 안 됩니다. NIH는 이 도구에서 생성된 정보의 유효성이나 유용성을 독립적으로 확인하지 않습니다. 이 웹사이트에 제공된 정보에 대해 질문이 있는 경우 의료 전문가에게 문의하시기 바랍니다. NCBI의 고지 사항 정책에 대한 자세한 내용을 확인할 수 있습니다.