HuggingFace镜像/distilbert-NER
模型介绍文件和版本分析
下载使用量0

distilbert-NER

如果我的开源模型对您有所帮助,请考虑支持我为大家构建小型、实用的 AI 模型(也帮我负担医学院的学费/在经济上帮助我的父母)。谢谢!

模型说明

distilbert-NER 是 DistilBERT 的微调版本,而 DistilBERT 是 BERT 模型的蒸馏变体。与 BERT 相比,DistilBERT 参数更少,因此体积更小、速度更快、效率更高。distilbert-NER 是专门针对命名实体识别(NER) 任务进行微调的。

该模型能准确识别与 BERT 同类模型相同的四种实体类型:地点(LOC)、组织(ORG)、人物(PER)和其他(MISC)。尽管是一个更紧凑的模型,distilbert-NER 在 NER 任务中表现出稳健的性能,在体积、速度和准确性之间取得了平衡。

该模型是在 CoNLL-2003 命名实体识别 数据集的英文版本上进行微调的,该数据集因其全面且多样化的实体类型而广受认可。

预期用途和局限性

如何使用

可通过 Transformers 的 pipeline 来使用此模型进行 NER,与 BERT 模型的使用方式类似。

import argparse
import torch
from openmind import pipeline,is_torch_npu_available
from openmind import AutoTokenizer
from openmind_hub import snapshot_download
from transformers import AutoModelForTokenClassification

def parse_args():
	parser = argparse.ArgumentParser()
	parser.add_argument( "--model_name_or_path", type=str, help="Path to model", default=None)
	args = parser.parse_args()
	return args

if __name__ == '__main__':
    if is_torch_npu_available():
        device = "npu:0"
    else:
        device = "cpu"
    args = parse_args()
    if args.model_name_or_path:
	    model_path = args.model_name_or_path
    else:
	    model_path = snapshot_download(
		"ChongqingAscend/distilbert-NER",
		revision="main",
		resume_download=True,
		ignore_patterns=["*.h5", "*.ot", "*.msgpack"]
	)

    tokenizer = AutoTokenizer.from_pretrained(model_path)
    model = AutoModelForTokenClassification.from_pretrained(model_path).to(device)
    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 数据集上的训练紧密相关。因此,对于与该训练集存在显著差异的文本数据,其效果可能有限。用户应注意训练数据中固有的潜在偏差,以及在复杂句子中可能出现实体分类错误的情况。