***** الجديد في 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
: المهمة الكيميائية أو المرضية BC5CDRclefe
: مهمة 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 2013i2b2_2010
: مهمة 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
نحن نقدم نصوص PubMed المُجهزة مسبقًا والتي تم استخدامها للتدريب المسبق لنماذج bluebert . تحتوي المجموعة على 4000 مليون كلمة تقريبًا مستخرجة من إصدار كود PubMed ASCII. وتشمل العمليات الأخرى
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. المعلومات الواردة في هذا الموقع ليست مخصصة للاستخدام التشخيصي المباشر أو اتخاذ القرارات الطبية دون مراجعة ومراقبة من قبل أخصائي سريري. لا ينبغي للأفراد تغيير سلوكهم الصحي على أساس المعلومات الواردة في هذا الموقع فقط. لا تتحقق المعاهد الوطنية للصحة بشكل مستقل من صحة أو فائدة المعلومات التي تنتجها هذه الأداة. إذا كانت لديك أسئلة حول المعلومات الواردة في هذا الموقع، يرجى مراجعة أخصائي الرعاية الصحية. يتوفر المزيد من المعلومات حول سياسة إخلاء المسؤولية الخاصة بـ NCBI.