尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

用BLUE_Benchmark评测NLP模型:BlueBERT十大生物医学基准数据集与ConllEval指标详解

用BLUE_Benchmark评测NLP模型:BlueBERT十大生物医学基准数据集与ConllEval指标详解 用BLUE_Benchmark评测NLP模型BlueBERT十大生物医学基准数据集与ConllEval指标详解【免费下载链接】bluebertBlueBERT, pre-trained on PubMed abstracts and clinical notes (MIMIC-III).项目地址: https://gitcode.com/gh_mirrors/bl/bluebert想检验你的 NLP 模型在生物医学文本上到底行不行BLUE_Benchmark是 NCBI 发布的标准评测工具集配合开源项目BlueBERT在 PubMed 摘要和 MIMIC-III 临床病历上预训练的生物医学语言模型一起使用可以覆盖10 个基准数据集命名实体识别、关系抽取、语义相似度、多标签分类和自然语言推理。本文带你快速看懂每个数据集的任务定义、评测脚本以及 NER 任务最核心的ConllEval 指标是怎么计算的。一、BlueBERT 与 BLUE_Benchmark 是什么BlueBERT 的预训练语料约含40 亿词来自 PubMed 摘要部分版本还加入了 MIMIC-III 临床病历。官方提供 Base / Large 两种规格、PubMed 单语料与 PubMedMIMIC 混合语料共 4 个预训练权重。而 README.md 中提到的 BLUE_Benchmark 则把这 10 个数据集的评测代码统一封装成了 4 个脚本放在bluebert/目录下任务类型基准数据集评测脚本核心指标 命名实体识别 (NER)BC5CDR化学物/疾病run_bluebert_ner.pyConllEvalPrecision / Recall / F1 命名实体识别 (NER)ShARe/CLEFE基因组学实体run_bluebert_ner.pyConllEvalPrecision / Recall / F1 关系抽取BC6 ChemProt化学-蛋白相互作用run_bluebert.pyAccuracy / F1 关系抽取DDI 2013药物-药物相互作用run_bluebert.pyAccuracy / F1 关系抽取I2B2 2010药物不良反应run_bluebert.pyAccuracy / F1⚖️ 语义相似度Biomedical STS生物医学语义相似度run_bluebert_sts.pyPearson / Spearman 相关、MSE️ 文档多标签分类HoCPubMed 文章 20 主题×10 方面run_bluebert_multi_labels.py每个方面的 Accuracy 均值 推理MedNLI医学自然语言推理run_bluebert.pyAccuracy 各数据集的原始文件可从 BLUE_Benchmark 仓库获取放入$DATASET_DIR后即可直接复用上面的脚本。二、十大基准数据集的任务定义源码视角任务与数据集的映射关系写在各个脚本的processors字典里例如 run_bluebert.py 中定义了 4 个处理类ChemProtProcessor6 类标签如CPR:3CPR:6表示不同类型的化学-蛋白相互作用外加false无关系DDI2013ProcessorDDI-advise、DDI-effect、DDI-mechanism等 4 类相互作用关系I2b2_2010_Processor9 类药物不良反应关系如TrAP、TeRPMedNLIProcessorentailment蕴含、neutral中性、contradiction矛盾三类推理标签NER 脚本 run_bluebert_ner.py 则定义了bc5cdr与clefe两个任务标签体系为 BIO 格式B开头、I内部、O实体外并用X标记 WordPiece 子词、[CLS]/[SEP]标记特殊 token。三、ConllEval 指标详解NER 评测的黄金标准 ConllEval 源自 CoNLL-2000 共享任务是 NER 领域的事实标准评测协议。本项目在 bluebert/conlleval.py 中给出了完整的 Python 实现核心逻辑包括按块chunk而非按 token 计分一个实体如aspirin标注为B-chem I-chem被视为一个 chunk只有当模型预测的起点、终点和类型三者全部正确时才记为一个正确识别的实体。整体指标report_notprint输出accuracytoken 级标注准确率precision预测出的实体中正确的比例recall真实实体被找出的比例FB1F1 分数分类型指标对每个实体类型如chemical、disease单独统计 Precision / Recall / F1 及实体数量方便定位模型在哪类实体上薄弱。NER 评测的两层指标BlueBERT 的 NER 脚本实际输出两套指标训练中用 tf_metrics.py 计算 token 级的 macro 平均 Precision / Recall / F1只统计B、I标签忽略O用于选择最优 checkpoint最终评测模型在测试集上的预测结果写入test_labels.txt再由 ConllEval 计算上述实体级 F1结果保存在test_results_conlleval.txt。⚠️ 注意token 级 F1 往往高于实体级 F1论文对比时请务必使用 ConllEval 输出的 F1这才符合 BioNLP 社区惯例。四、快速上手一条命令跑通基准评测 克隆仓库git clone https://link.gitcode.com/i/574ee4addffcc716a80c24bbaefd5775假设预训练权重在$BlueBERT_DIR、数据集在$DATASET_DIR以 BC5CDR 命名实体识别为例python bluebert/run_bluebert_ner.py \ --task_namebc5cdr \ --do_traintrue --do_evaltrue --do_predicttrue \ --vocab_file$BlueBERT_DIR/vocab.txt \ --bert_config_file$BlueBERT_DIR/bert_config.json \ --init_checkpoint$BlueBERT_DIR/bert_model.ckpt \ --data_dir$DATASET_DIR \ --output_dir$OUTPUT_DIR只需替换task_name即可切换数据集bc5cdr、clefeNERchemprot、ddi、i2b2_2010、mednli关系/推理多标签分类用--task_namehoc跑 run_bluebert_multi_labels.py。其余超参如--num_train_epochs30.0均可按 README 调整。五、进阶用官方预处理语料自行预训练 如果你想在自有语料上复现预训练流程仓库提供了处理好的 PubMed 文本下载链接pubmed_uncased_sentence_nltk.txt含小写化、去特殊字符、NLTK Treebank 分词等处理并可用 bert/create_pretraining_data.py 生成 TFRecord、bert/run_pretraining.py 从零训练模型——这也是理解 BERT 式预训练MLM 分词的好教材。总结BLUE_Benchmark 的 10 个数据集覆盖了生物医学 NLP 的五大任务与 BlueBERT 的 4 个微调脚本一一对应开箱即用ConllEval 按实体级计分是 NER 任务最权威的评测协议其分类型报告能精准暴露模型的短板评测 NER 请认准 ConllEval F1评测相似度看 Pearson/Spearman评测分类与推理看 Accuracy——用对指标评测才有效掌握这套评测体系后无论自研模型还是微调 BlueBERT你都能用社区公认的标准给出可复现、可对比的结论。【免费下载链接】bluebertBlueBERT, pre-trained on PubMed abstracts and clinical notes (MIMIC-III).项目地址: https://gitcode.com/gh_mirrors/bl/bluebert创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表