fastino-ai/GLiNER2
Unified Schema-Based Information Extraction
GLiNER2 – 统一的基于模式的信息提取与分类
它的功能(通俗解释)
GLiNER2 是一个本地、基于 Python 的库,让您可以从原始文本中提取结构化信息——从传统的命名实体识别(人物、公司、日期)到完整的记录提取、关系检测和文本分类。所有这些任务都共享您定义的单一 schema,并且同一个模型可以在一次前向传递中处理它们。
为什么它很重要
- 一个模型,多种工作 – 无需训练单独的 NER、分类或关系提取模型。定义一次 schema,库就会预测所有请求的字段。
- 两种推理风格 –
- Span (GLiNER2) – 固定宽度的网格,适用于旧版检查点。
- Boundary (GLiNER2.5) – 一种稀疏的开始/结束对架构,可以表示任何长度的 span,为长实体提供更好的覆盖范围。
- CPU 优先 – 设计用于在普通 CPU 上快速运行;GPU 是额外速度的可选配置。
- 隐私优先 – 所有处理都在本地进行,没有数据会离开您的机器。
如何使用(快速入门)
# 核心库 – 无繁重依赖
pip install gliner2
# 加入本地推理 (PyTorch + 可选的 flash-attention)
pip install "gliner2[local]"
from gliner2 import AutoExtractor
# 加载现成的英文模型 (boundary 架构)
model = AutoExtractor.from_pretrained("fastino/gliner2.5-base-v1")
text = "Apple CEO Tim Cook announced iPhone 15 in Cupertino yesterday."
result = model.extract_entities(text, ["company", "person", "product", "location"])
print(result)
# → {'entities': {'company': ['Apple'], 'person': ['Tim Cook'], ...}}
相同的 AutoExtractor 也可加载仅限 span 的检查点、安全/PII 模型以及专注于分类的检查点。
主要功能(来自 README)
| 功能 | 提供的价值 |
|---|---|
| 统一 schema API | 在单一类似 JSON 的 schema 中定义实体、分类、记录、关系和 span 属性。 |
| 约束解码 | Classifier 强制执行跨任务标签规则;JointIE 建立类型化的实体-关系图。 |
| 长文档支持 | 分块与重叠 API (extract_entities_long) 让您在处理超过模型上下文窗口的文本时,仍能保留全局字符偏移量。 |
| 自定义分词器 | 在空白与字符级分词之间切换(对中文或其他非空格语言很有用)。 |
| 量化与编译 | 可选的 fp16 量化与 torch.compile 以实现更快的 GPU 推理。 |
| 安全与 PII 模型 | 预先微调的检查点 (gliguard-LLMGuardrails, gliner2-privacy-filter-PII) 用于编辑个人资料或应用防护栏。 |
| LoRA 适配器 | 通过 [train] 额外功能进行参数高效微调。 |
可用模型(摘要)
| 模型 | 参数 | 架构 | 语言 | 典型用途 |
|---|---|---|---|---|
gliner2-base-v1 |
205 M | Span | 英文 | 通用 IE (旧版) |
gliner2.5-base-v1 |
194 M | Boundary | 英文 | 默认多任务 IE |
gliner2.5-multi-v1 |
287 M | Boundary | 多语言 | 多语言 IE |
GLiNER2.5-Decide |
340 M | Span | 英文 | 纯文本分类 |
gliguard-LLMGuardrails-300M |
~300 M | Span | – | 安全 / 有害内容过滤 |
gliner2-privacy-filter-PII-multi |
205 M | Span | 多语言 | PII 检测 |
何时选择 GLiNER2
- 您需要本地推理(无云端 API,符合 GDPR)。
- 您的下游任务混合了实体提取、分类与关联数据 – 例如,从手册中提取产品目录同时标记情绪。
- 您在仅 CPU 服务器或边缘设备上运行,且仍希望有不错的速度。
- 您想要一个单一、模式驱动的接口,而不是拼凑单独的 NER、分类器与关系提取管线。
限制(如所述)
- Boundary 架构 (
GLiNER2.5) 需要[local]额外功能 (PyTorch) – 核心gliner2包本身仅提供 schema 工具与云端 API 客户端。 - 在推理时切换分词器可能会降低准确度,除非模型是用相同的分词器训练的。
- 为了在英文 IE 上获得最高准确度,README 建议使用
gliner2.5-base-v1检查点;较小的模型会以性能换取速度。
以上所有细节均直接取自项目的 README;未添加任何外部假设。
相关
- 项目
- 项目
- 项目
- 项目
- 项目