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_text、extract_json 以及 README 中所示的长文档 API。
安装附加项
| 附加项 | 添加的功能 |
|---|---|
gliner2[local] |
PyTorch、模型权重、用于设备端推理的 AutoExtractor |
gliner2[train] |
训练工具、LoRA 适配器、配方配置 |
gliner2[test] / gliner2[dev] |
测试套件、代码检查、基准测试工具 |
社区与资源
- Discord – https://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 模型。
相关
- 项目
- 项目
- 项目
- 项目
- 项目