fastino-ai/GLiNER2

Unified Schema-Based Information Extraction

GLiNER2 – 统一、模式驱动的信息提取

它是什么 – GLiNER2 是一个 Python 库,让您能为许多文本理解任务运行单一的本地模型:命名实体识别、多标签分类、结构化记录提取、关系提取,甚至跨度级别的属性(例如,在检测到的实体上进行情感分析)。该模型是模式条件化的:您描述所需的字段(即“模式”),同一次前向传递就会返回所有请求的输出。

为何重要 – 大多数工具包需要为 NER、分类或 JSON 风格提取准备单独的模型。GLiNER2 将它们捆绑在一起,支持两种架构(一个经典的固定网格 span 模型和一个较新的 boundary 模型,可以处理任意长度的跨度),并且在纯 CPU 硬件上高效运行,使其适用于对隐私敏感或边缘部署。


核心能力

能力 如何调用 亮点
实体提取 model.extract_entities(text, labels, …) 返回每个标签的实体,可选的置信度分数和字符偏移量。
文本分类 model.classify_text(text, schema, …) 单标签或多标签,支持阈值和置信度。
结构化 JSON 提取 model.extract_json(text, schema, …) 将嵌套记录(例如,产品规格)提取到 dict/list 结构中。
关系提取 model.extract_relations(...) (通过 schema) 产生类型化的实体-关系三元组。
跨度属性 model.extract_entities(..., include_attributes=True) 将情感等额外标签附加到每个跨度。
长文档处理 extract_entities_long / batch_extract_entities_long 在超出模型上下文窗口时自动分块、重叠和合并结果。

两种模型家族

架构 检查点示例 大小 典型用途
Span (GLiNER2) – 固定宽度网格 fastino/gliner2-base-v1 205 M (DeBERTa-v3-base) 传统模型,中小型任务。
Boundary (GLiNER2.5) – 稀疏开始/结束配对,任意跨度长度 fastino/gliner2.5-base-v1 194 M (DeBERTa-v3-base) 默认英文多任务,最佳 CPU/边缘性能。
多语言 fastino/gliner2-multi-v1 / gliner2.5-multi-v1 205-287 M (mDeBERTa-v3) 适用于非英文文本。
安全 / PII fastino/gliguard-LLMGuardrails-300M, gliner2-privacy-filter-PII-multi ~300 M 检测有毒内容或个人数据;可通过相同的 AutoExtractor 加载。

快速开始(纯 CPU)

# Core library – no torch needed (schema validation, API client)
pip install gliner2

# Add local inference (torch & model weights)
pip install "gliner2[local]"
from gliner2 import AutoExtractor
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"],
    include_confidence=True,
    include_spans=True,
)
print(result)
# → {'entities': {'company':[{'text':'Apple','confidence':0.95,'start':0,'end':5}], ...}}

同样的 model 对象也支持 classify_textextract_json 以及 README 中所示的长文档 API。


安装附加项

附加项 添加的功能
gliner2[local] PyTorch、模型权重、用于设备端推理的 AutoExtractor
gliner2[train] 训练工具、LoRA 适配器、配方配置
gliner2[test] / gliner2[dev] 测试套件、代码检查、基准测试工具

社区与资源

  • Discordhttps://discord.gg/fastino (实时帮助)
  • Reddit – r/GLiNER (讨论、用例)
  • 文档 – 涵盖分类、NER、JSON 提取、关系提取、长上下文处理、安全/PII 模型和 LoRA 微调的教程。
  • 模型中心 – 所有检查点都托管在 Hugging Face 的 fastino/gliner2-family 集合下。

何时使用 GLiNER2

  • 您需要从同一文本中进行多个 IE 任务,而无需加载多个模型。
  • 您偏好本地、对 CPU 友好的推理,以用于隐私或边缘设备。
  • 您的数据遵循定义明确的模式(例如,“提取产品名称、价格和颜色”)。
  • 您想通过提供的 LoRA 适配器,使用自己的数据来扩展或微调模型。

TL;DR

GLiNER2 是一个模式驱动、单一模型的库,用于提取实体、分类、结构化记录、关系和跨度属性。它附带 span-grid 和 boundary 两种架构,在 CPU 上高效运行,提供隐私优先的本地推理路径,并提供现成的多语言检查点以及安全/PII 模型。

相关

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