项目介绍:gliner_large-v2.1
gliner_large-v2.1
是GLiNER项目中一个重要的版本,它是一个命名实体识别(NER)模型,采用类似BERT的双向Transformer编码器来识别各种实体类型。与传统的NER模型相比,GLiNER具有超越预定义实体类型限制的能力,同时在处理资源受限的场景中也比大型语言模型(LLM)更具经济性和实用性。
背景介绍
GLiNER模型最主要的特点是其灵活性和高效性。传统的NER模型通常只能识别事先定义好的实体类型,而大型语言模型虽然具备极高的灵活性但资源消耗巨大,不适合在资源紧张的环境中使用。GLiNER则很好地平衡了这两者的优势,既能识别多种实体类型又节省资源。
项目相关信息
为了便于研究和使用,项目相关文献可通过此链接获取,GLiNER项目的代码库则托管在GitHub上,感兴趣的用户可以访问进行查看和贡献。
可用模型版本
GLiNER提供了多个版本的模型,以满足不同语言和性能需求。以v2.1版本为例,提供的模型包括:
urchade/gliner_small-v2.1
urchade/gliner_medium-v2.1
urchade/gliner_large-v2.1
urchade/gliner_multi-v2.1
其中,gliner_large-v2.1
版本拥有459M参数,支持英语命名实体识别,并在Apache-2.0许可下发布。
安装与使用
要使用GLiNER模型,首先需要安装相关Python库:
!pip install gliner
安装完成后,就可以通过以下方式来加载和使用模型进行实体预测:
from gliner import GLiNER
model = GLiNER.from_pretrained("urchade/gliner_large-v2.1")
text = """
Cristiano Ronaldo dos Santos Aveiro (Portuguese pronunciation: [kɾiʃˈtjɐnu ʁɔˈnaldu]; born 5 February 1985) is a Portuguese professional footballer...
"""
labels = ["person", "award", "date", "competitions", "teams"]
entities = model.predict_entities(text, labels)
for entity in entities:
print(entity["text"], "=>", entity["label"])
该代码段将文本中符合预定义标签的实体进行识别并打印输出。
例如,模型能识别“Cristiano Ronaldo dos Santos Aveiro”作为“person”,“5 February 1985”作为“date”,以及一些奖项名和球队名分别作为“award”和“teams”。
作者与引用
GLiNER由Urchade Zaratiana、Nadi Tomeh、Pierre Holat及Thierry Charnois等人开发。如果需要在学术和技术上引用此项目,可以使用如下的Bibtex:
@misc{zaratiana2023gliner,
title={GLiNER: Generalist Model for Named Entity Recognition using Bidirectional Transformer},
author={Urchade Zaratiana and Nadi Tomeh and Pierre Holat and Thierry Charnois},
year={2023},
eprint={2311.08526},
archivePrefix={arXiv},
primaryClass={cs.CL}
}
总结
gliner_large-v2.1在简化复杂语言任务方面具备显著的能力。通过它,用户可以在多个语言环境下,灵活高效地进行命名实体识别,是研究人员和开发者值得关注和使用的工具之一。