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 模型。
相關
- 專案
- 專案
- 專案
- 專案
- 專案