语言:
- 英语
缩略图:
标签:
- 标记分类
许可证: agpl-3.0
数据集:
- EMBO/sd-nlp
指标:
sd-ner
模型描述
该模型基于RoBERTa基础模型,在生命科学领域的英文科学文本语料库上通过掩码语言建模任务进一步训练,使用了BioLang数据集。随后针对SourceData的sd-nlp数据集进行标记分类微调,采用NER
配置以实现生物实体的命名实体识别。
预期用途与限制
使用方法
本模型设计用于识别SourceData标注系统(https://sourcedata.embo.org)中的生物实体,包括小分子、基因产物(基因与蛋白质)、亚细胞组分、细胞系与细胞类型、器官与组织、物种以及实验方法。
快速验证模型效果:
from transformers import pipeline, RobertaTokenizerFast, RobertaForTokenClassification
示例文本 = """<s> F. 在Nmd4-HA菌株中Upf1结构域纯化的输入与洗脱产物的Western印迹分析。带#号的条带可能对应Upf1-CH二聚体,星号标记条带为抗HA抗体(Nmd4)的残留信号。洗脱片段因蛋白A标签部分经TEV蛋白酶消化去除而呈现较小尺寸。G6PDH作为输入样本的加载对照</s>"""
分词器 = RobertaTokenizerFast.from_pretrained('roberta-base', max_len=512)
模型 = RobertaForTokenClassification.from_pretrained('EMBO/sd-ner')
实体识别 = pipeline('ner', 模型, tokenizer=分词器)
结果 = 实体识别(示例文本)
for 项 in 结果:
print(项['word'], 项['entity'])
限制与偏差
必须配合roberta-base
分词器使用本模型。
训练数据
模型使用包含人工标注样本的EMBO/sd-nlp数据集进行标记分类训练。
训练流程
训练在配备4台Tesla V100 GPU的NVIDIA DGX Station上完成。
训练代码详见https://github.com/source-data/soda-roberta
- 微调基础模型: EMBO/bio-lm
- 分词器词表大小: 50265
- 训练数据: EMBO/sd-nlp
- 数据集配置: NER
- 训练样本数: 48771
- 验证样本数: 13801
- 识别特征类别(15类): O, I-SMALL_MOLECULE, B-SMALL_MOLECULE, I-GENEPROD, B-GENEPROD, I-SUBCELLULAR, B-SUBCELLULAR, I-CELL, B-CELL, I-TISSUE, B-TISSUE, I-ORGANISM, B-ORGANISM, I-EXP_ASSAY, B-EXP_ASSAY
- 训练轮次: 0.6
- 单设备训练批大小: 16
- 单设备验证批大小: 16
- 学习率: 0.0001
- 权重衰减: 0.0
- Adam参数β1: 0.9
- Adam参数β2: 0.999
- Adam参数ε: 1e-08
- 最大梯度范数: 1.0
评估结果
使用sklearn.metrics
在7178例测试集上的表现:
精确率 召回率 F1值 支持量
细胞 0.69 0.81 0.74 5245
实验方法 0.56 0.57 0.56 10067
基因产物 0.77 0.89 0.82 23587
物种 0.72 0.82 0.77 3623
小分子物质 0.70 0.80 0.75 6187
亚细胞结构 0.65 0.72 0.69 3700
组织 0.62 0.73 0.67 3207
微观平均 0.70 0.79 0.74 55616
宏观平均 0.67 0.77 0.72 55616
加权平均 0.70 0.79 0.74 55616
{'测试损失': 0.1830928772687912, '测试准确率': 0.9334821000160841, '测试精确率': 0.6987463009514112, '测试召回率': 0.789682825086306, '测试F1值': 0.7414366506288511, '测试耗时': 61.0547秒, '测试样本处理速度': 117.567样本/秒, '测试步速': 1.851步/秒}