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;未添加任何外部假设。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目