language:
- en
license: apache-2.0
pipeline_tag: fill-mask
注意:bioformer-cased-v1.0
已更名为bioformer-8L
。所有指向bioformer-cased-v1.0
的链接将自动重定向至bioformer-8L
,包括git操作。为避免混淆,建议更新现有本地克隆仓库以指向新的存储库URL。
Bioformer-8L是一款专为生物医学文本挖掘设计的轻量化BERT模型。该模型采用生物医学专用词汇表,并完全基于生物医学领域语料从头预训练。实验表明,Bioformer-8L的运行速度是BERT-base的3倍,在下游NLP任务中表现与BioBERT/PubMedBERT相当甚至更优。
Bioformer-8L包含8层(Transformer模块),隐藏层维度为512,自注意力头数为8,参数总量42,820,610个。
使用方法与标准BERT模型完全一致,BERT文档详见此处。
词汇表构成
Bioformer-8L采用基于生物医学语料训练的大小写敏感WordPiece词汇表,语料包含截至2021年2月1日的全部PubMed摘要(3300万篇)及经下采样处理的100万篇PMC全文(PMC总文献量360万篇,采样后与PubMed摘要数据量基本持平)。为减少未登录词问题并涵盖生物医学文献中的特殊符号(如性别符号),我们基于Unicode文本训练词汇表。最终词汇表大小为32768(2^15),与原始BERT相当。
预训练细节
Bioformer-8L在与词汇表相同的语料上从头预训练。掩码语言建模(MLM)任务采用全词掩码策略,掩码率15%。虽然下一句预测(NSP)任务对下游任务的增益存在争议,为满足潜在需求仍保留该任务。所有文本使用SciSpacy进行分句处理。
预训练在单台Cloud TPU设备(TPUv2,8核,每核8GB内存)上完成。最大序列长度固定为512,批次大小设为256。经过200万步训练(约8.3天)后完成预训练。
使用指南
环境要求:python3、pytorch、transformers及datasets库
以下命令已在Python v3.9.16、PyTorch v1.13.1+cu117、Datasets v2.9.0和Transformers v4.26环境测试通过。
PyTorch安装参考官方指南
安装依赖库:
pip install transformers
pip install datasets
掩码填充示例
from transformers import pipeline
unmasker8L = pipeline('fill-mask', model='bioformers/bioformer-8L')
unmasker8L("[MASK]指一组影响人体利用血糖(葡萄糖)的疾病")
unmasker16L = pipeline('fill-mask', model='bioformers/bioformer-16L')
unmasker16L("[MASK]指一组影响人体利用血糖(葡萄糖)的疾病")
bioformer-8L
输出结果:
[{'score': 0.3207533359527588,
'token': 13473,
'token_str': '糖尿病',
'sequence': '糖尿病指一组影响人体利用血糖(葡萄糖)的疾病'},
{'score': 0.19234347343444824,
'token': 17740,
'token_str': '肥胖症',
'sequence': '肥胖症指一组影响人体利用血糖(葡萄糖)的疾病'},
{'score': 0.09200277179479599,
'token': 10778,
'token_str': '2型糖尿病',
'sequence': '2型糖尿病指一组影响人体利用血糖(葡萄糖)的疾病'},
{'score': 0.08494312316179276,
'token': 2228,
'token_str': '它',
'sequence': '它指一组影响人体利用血糖(葡萄糖)的疾病'},
{'score': 0.0412776917219162,
'token': 22263,
'token_str': '高血压',
'sequence': '高血压指一组影响人体利用血糖(葡萄糖)的疾病'}]
bioformer-16L
输出结果:
[{'score': 0.7262957692146301,
'token': 13473,
'token_str': '糖尿病',
'sequence': '糖尿病指一组影响人体利用血糖(葡萄糖)的疾病'},
{'score': 0.124954953789711,
'token': 10778,
'token_str': '2型糖尿病',
'sequence': '2型糖尿病指一组影响人体利用血糖(葡萄糖)的疾病'},
{'score': 0.04062706232070923,
'token': 2228,
'token_str': '它',
'sequence': '它指一组影响人体利用血糖(葡萄糖)的疾病'},
{'score': 0.022694870829582214,
'token': 17740,
'token_str': '肥胖症',
'sequence': '肥胖症指一组影响人体利用血糖(葡萄糖)的疾病'},
{'score': 0.009743048809468746,
'token': 13960,
'token_str': 'T2D',
'sequence': 'T2D指一组影响人体利用血糖(葡萄糖)的疾病'}]
荣誉奖项
Bioformer-8L在BioCreative VII新冠肺炎多标签主题分类挑战赛中取得最佳性能(最高微平均F1值),详见:https://doi.org/10.1093/database/baac069
相关链接
Bioformer-16L模型
致谢
Bioformer-8L的训练与评估工作获得Google TPU研究云计划(TRC)、美国国立医学图书馆(NLM)院内研究计划、美国国立卫生研究院(NIH)以及NIH/NLM基金LM012895和1K99LM014024-01的支持。
问题反馈
如有疑问请提交issue至:https://github.com/WGLab/bioformer/issues
或联系李方(fangli9@mail.sysu.edu.cn,个人主页:https://fangli80.github.io/)
引用方式
请引用我们的arXiv预印本:
李方, 陈庆宇, 魏志轩等: Bioformer:面向生物医学文本挖掘的高效Transformer语言模型。arXiv预印本 arXiv:2302.01588 (2023). DOI: https://doi.org/10.48550/arXiv.2302.01588
BibTeX格式:
@ARTICLE{fangli2023bioformer,
author = {{李方} and {陈庆宇} and {魏志轩} and {陆志勇} and {王凯}},
title = "{Bioformer:面向生物医学文本挖掘的高效Transformer语言模型}",
journal = {arXiv预印本 arXiv:2302.01588},
year = {2023}
}