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 模型。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案