GliNER2でCPUで動く高精度構造化情報抽出が可能に
GliNER2は、テキストから構造化情報を抽出するための軽量で効率的なNLPフレームワークとして注目されている。SpaCyに次ぐ次世代ツールとして、大規模言語モデル(LLM)の「過剰な力」に代わる、専門性の高い小規模モデルの復活を象徴している。特にGliNER2は、名前付きエンティティ抽出(NER)、関係抽出、テキスト分類、そして構造化JSON出力の4つを1つのインファレンスで実行可能にした点で、大きな進化を遂げた。このモデルはCPU上で動作可能でありながら、高精度な抽出が可能で、知識グラフ構築に最適とされる。 テストでは、アダ・ラヴェルスのWikipedia記事(322トークン)を対象に、複数の抽出タスクを検証。エンティティ抽出では、人名、場所、発明物、イベントといったカテゴリを明示的に定義することで、曖昧性を解消し、正確な抽出を実現。関係抽出では、「親である」「結婚している」「開発した」などの関係を定義し、アダ・ラヴェルスとルイ・バロン、ウィリアム・キング、チャールズ・バベッジとの関係を正しく検出。ただし、同じ意味の「alias」と「same_as」の関係では、モデルが一方のみを抽出するなど、ラベル名の違いによる感度の違いが確認された。 最も注目すべきは「extract_json」機能。任意のスキーマを定義し、JSON形式で構造化データを直接抽出できる点。例えば、人物の名前、誕生日、配偶者、別名などを一括取得可能。ただし、性別や詳細説明の推論には弱く、実際には「チャールズ・バベッジがアダの親」と誤って抽出されるなど、推論能力に限界があることが明らかになった。これは、モデルが直接的な抽出に特化しており、推論や背景知識の統合には向かないことを示している。 それでも、エンティティと関係を同時に抽出できるため、知識グラフへのインポートが非常にスムーズ。実際のNeo4jへのインポートにはCypherクエリを用いて、テキストチャンク、エンティティノード、関係、プロパティを一括登録。さらに原文の参照も保持することで、出典追跡が可能になり、信頼性が向上。 結論として、GliNER2はLLMに頼る必要のない、軽量かつ高精度な構造化情報抽出ツールとして、知識グラフ構築や情報抽出の現場で非常に有用。特に「過剰な力」を必要としないケースでは、CPUで動作するこのモデルが、コストとパフォーマンスのバランスにおいて優位性を持つ。開発者は、用途に応じて「大きなモデルを使うか、小さな専門モデルを使うか」を意識すべきであり、GliNER2はその選択肢の一つとして、明確な価値を示している。
