项目介绍:distilbert-NER
项目背景
distilbert-NER 项目是一个专注于命名实体识别(Named Entity Recognition, NER)任务的开源深度学习模型。该模型衍生自 DistilBERT,而 DistilBERT 是 BERT 模型的蒸馏版本。相比原始 BERT 模型,DistilBERT 拥有更少的参数,使其更小巧、更快速且更高效。因此,distilbert-NER 在保证准确性的基础上,同时实现了模型的尺寸小、运行速度快。
模型功能与特点
distilbert-NER 模型可以精确识别四种重要类型的命名实体:地点(LOC)、组织(ORG)、人名(PER)和其他(MISC)。尽管是一个更为紧凑的模型,distilbert-NER 在命名实体识别任务中表现出色,它在体积、速度和精度之间找到了良好的平衡。
该模型是在广受认可的 CoNLL-2003 Named Entity Recognition 数据集的英文版本上进行微调的,该数据集以其全面和多样化的实体类型著称。
可用的命名实体识别模型
模型名称 | 描述 | 参数量 |
---|---|---|
distilbert-NER | 微调后的DistilBERT - 更小、更快、更轻的BERT版本 | 66M |
bert-large-NER | 微调后的bert-large-cased - 较大型的模型,具有略优的性能 | 340M |
bert-base-NER-(uncased) | 微调后的bert-base,提供大写敏感和大写不敏感版本 | 110M |
使用方法与局限性
如何使用
用户可以通过Transformers库的pipeline输入管道轻松应用该模型进行NER任务。以下Python代码展示了其使用方法:
from transformers import AutoTokenizer, AutoModelForTokenClassification
from transformers import pipeline
tokenizer = AutoTokenizer.from_pretrained("dslim/distilbert-NER")
model = AutoModelForTokenClassification.from_pretrained("dslim/distilbert-NER")
nlp = pipeline("ner", model=model, tokenizer=tokenizer)
example = "My name is Wolfgang and I live in Berlin"
ner_results = nlp(example)
print(ner_results)
局限性和偏见
distilbert-NER 的性能与其训练的 CoNLL-2003 数据集密切相关,因此在与该训练集显著不同的文本数据上,可能效果有限。用户应意识到训练数据中可能存在的偏见,以及在处理复杂句子时可能出现的实体识别错误。
训练数据
distilbert-NER 在标准的英文版本 CoNLL-2003 命名实体识别数据集上进行了微调训练。该数据集区分了实体的起始和延续位置,以便在同种类型的实体接连出现时,模型能准确识别每个实体的开始位置。数据集中每个标记将归类为以下类别之一:
缩写 | 描述 |
---|---|
O | 非命名实体 |
B-MISC | 紧跟在另一个非名词实体之后一个新的非名词实体的开始 |
I-MISC | 非名词实体内部 |
B-PER | 紧跟在另一个人名之后一个新的人名的开始 |
I-PER | 人名内部 |
B-ORG | 紧跟在另一个组织名之后一个新的组织名的开始 |
I-ORG | 组织名内部 |
B-LOC | 紧跟在另一个地点之后一个新的地点的开始 |
I-LOC | 地点名内部 |
CoNLL-2003 数据集统计
该数据集由路透社新闻组成,详细了解数据集创建过程可参考 CoNLL-2003 论文。
各实体类型的训练样例数
数据集 | LOC | MISC | ORG | PER |
---|---|---|---|---|
训练集 | 7140 | 3438 | 6321 | 6600 |
验证集 | 1837 | 922 | 1341 | 1842 |
测试集 | 1668 | 702 | 1661 | 1617 |
数据集中的文章/句子/标记数量
数据集 | 文章数 | 句子数 | 标记数 |
---|---|---|---|
训练集 | 946 | 14,987 | 203,621 |
验证集 | 216 | 3,466 | 51,362 |
测试集 | 231 | 3,684 | 46,435 |
训练程序
该模型在一块 NVIDIA V100 GPU 上进行训练,使用了来自 原始 BERT 论文 中的推荐超参数,在 CoNLL-2003 NER 任务上对模型进行了训练和评估。
评估结果
指标 | 得分 |
---|---|
损失 | 0.0710 |
精确率 | 0.9202 |
召回率 | 0.9232 |
F1分数 | 0.9217 |
准确率 | 0.9810 |
该模型在训练和验证阶段展示了损失的递减趋势,显示了有效的学习能力。其精确率、召回率和F1分数都具有竞争力,彰显了在命名实体识别任务中的可靠性。