fastino-ai/GLiNER2
Unified Schema-Based Information Extraction
GLiNER2 – 統一されたスキーマ駆動の情報抽出
概要 – GLiNER2 は、固有表現認識、マルチラベル分類、構造化レコード抽出、関係抽出、さらにはスパンレベルの属性(例:検出されたエンティティの感情)など、多くのテキスト理解タスクを単一のローカルモデルで実行できる Python ライブラリです。このモデルはスキーマ条件付きです。取得したいフィールド(「スキーマ」)を記述すると、同じフォワードパスで要求されたすべての出力が返されます。
重要性 – ほとんどのツールキットでは、NER、分類、または JSON スタイルの抽出に個別のモデルが必要です。GLiNER2 はこれらをバンドルし、2 つのアーキテクチャ(従来の固定グリッド span モデルと、任意の長さのスパンを処理できる新しい boundary モデル)をサポートし、CPU 専用ハードウェアで効率的に実行されるため、プライバシー重視またはエッジデプロイメントに適しています。
コア機能
| 機能 | 呼び出し方法 | ハイライト |
|---|---|---|
| エンティティ抽出 | model.extract_entities(text, labels, …) |
ラベルごとにエンティティを返し、オプションで信頼度スコアと文字オフセットを返します。 |
| テキスト分類 | model.classify_text(text, schema, …) |
単一またはマルチラベル、しきい値と信頼度をサポート。 |
| 構造化 JSON 抽出 | model.extract_json(text, schema, …) |
ネストされたレコード(例:製品仕様)を dict/list 構造に抽出します。 |
| 関係抽出 | model.extract_relations(...) (スキーマ経由) |
型付きのエンティティ-関係トリプルを生成します。 |
| スパン属性 | model.extract_entities(..., include_attributes=True) |
感情などの追加タグを各スパンに付加します。 |
| 長文書処理 | extract_entities_long / batch_extract_entities_long |
モデルのコンテキストウィンドウを超える場合、自動的にチャンク化、オーバーラップ、結果をマージします。 |
2 つのモデルファミリー
| アーキテクチャ | チェックポイント例 | サイズ | 典型的な用途 |
|---|---|---|---|
| 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 モデルを提供します。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト