**GLiNER2:統一スキーマベース情報抽出**

2026/03/06 5:18

**GLiNER2:統一スキーマベース情報抽出**

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

## Summary:
GLiNER2は、205 Mパラメータのコンパクトで統一されたモデルであり、名前付きエンティティ認識(Named Entity Recognition)、テキスト分類(Text Classification)、構造化データ抽出(Structured Data Extraction)および関係抽出(Relation Extraction)をすべて1回の前方パスで実行できます。GPUや外部APIに依存せず、CPU上で効率的に動作します。より大きなワークロードには340 Mの「fastino/gliner2-large-v1」バリアントが利用可能であり、さらに別途1Bモデル(GLiNER XL)はクラウドAPI経由でアクセスできます。

典型的な使用方法は次のとおりです:
```python
extractor = GLiNER2.from_pretrained("fastino/gliner2-base-v1")
entities = extractor.extract_entities(text, ["company","person","product","location"])

モデルはオプションで信頼度スコア、文字列範囲データを出力し、多ラベル分類の閾値もサポートします。構造化抽出はJSONスキーマ構文(

field::type::description
)によって駆動され、製品や金融取引などの複雑なエンティティを解析できます。関係抽出では方向付きタプル(例:
works_for
located_in
)が返され、説明、信頼度、および範囲情報も付随します。

バッチ機能(

batch_extract_entities
batch_extract_relations
)により、多数のドキュメントに対して効率的な推論が可能です。トレーニングパイプラインはJSONLデータセットまたはLoRAアダプターを使用したドメイン適応による完全なファインチューニングをサポートします。RegexValidatorを添付することで、メールアドレス、URL、電話番号などの抽出フィールドをカスタム正規表現ルールでフィルタリングできます。

GLiNER2はApache License 2.0の下でリリースされ、EMNLP‑2025論文に記載されています。そのシングルパスかつCPUフレンドリーな設計は、金融・eコマース・エンタープライズ検索など、費用対効果の高いNLPパイプラインにとって魅力的です。

本文

GLiNER 2 – 統合抽出ツールキット

GLiNER 2 は 名前付きエンティティ認識(NER)テキスト分類構造化データ抽出、そして 関係抽出 を 1 つの 205 M パラメータモデルで統合し、CPU 上でも効率的に動作します。


すぐにインストール&インポート

pip install gliner2
from gliner2 import GLiNER2

ワンライナーでの使用例

extractor = GLiNER2.from_pretrained("fastino/gliner2-base-v1")

text = "Apple CEO Tim Cook announced iPhone 15 in Cupertino yesterday."
result = extractor.extract_entities(
    text,
    ["company", "person", "product", "location"]
)
print(result)
# {'entities': {'company': ['Apple'], 'person': ['Tim Cook'],
#               'product': ['iPhone 15'], 'location': ['Cupertino']}}

API アクセス(GPU 不要)

extractor = GLiNER2.from_api()   # PIONEER_API_KEY 環境変数を使用

result = extractor.extract_entities(
    "OpenAI CEO Sam Altman announced GPT-5 at their San Francisco headquarters.",
    ["company", "person", "product", "location"]
)

利用可能なモデル(Hugging Face)

モデルパラメータ数用途
fastino/gliner2-base-v1
205 M抽出 / 分類
fastino/gliner2-large-v1
340 M抽出 / 分類

コア機能

1. エンティティ抽出

extractor.extract_entities(
    text,
    ["medication", "dosage", "symptom", "time"],
    include_confidence=True,  # 任意
    include_spans=True        # 任意
)

2. テキスト分類

# 単一ラベル
extractor.classify_text(text, {"sentiment": ["positive","negative","neutral"]})

# 閾値付きマルチラベル
schema = extractor.create_schema().classification(
    "topics",
    ["technology", "business", "health"],
    multi_label=True,
    cls_threshold=0.3
)

3. 構造化データ抽出

extractor.extract_json(
    text,
    {
        "product": [
            "name::str",
            "storage::str",
            "processor::str",
            "price::str",
            "colors::list"
        ]
    },
    include_confidence=True,
    include_spans=True
)

4. 関係抽出

extractor.extract_relations(
    text,
    ["works_for", "lives_in"],
    include_confidence=True,
    include_spans=True
)

マルチタスクスキーマ構成

すべての抽出タイプを網羅する単一スキーマを作成します。

schema = (
    extractor.create_schema()
    .entities({
        "person": "人名、経営者、個人",
        "company": "組織名",
        "product": "製品またはサービス"
    })
    .classification("sentiment", ["positive","negative","neutral"])
    .relations(["works_for","located_in"])
    .structure("product_info")
        .field("name", dtype="str")
        .field("price", dtype="str")
        .field("features", dtype="list")
)

results = extractor.extract(text, schema)

事例シナリオ

ドメインサンプルテキスト抽出結果
金融“Transaction Report: Goldman Sachs processed a $2.5M equity trade for Tesla Inc.”ブローカー、金額、証券等を含む構造化 JSON
医療“Patient Sarah Johnson prescribed Lisinopril 10mg daily.”患者情報 + 処方箋
法務“Service Agreement between TechCorp LLC and DataSystems Inc., effective January 1, 2024.”エンティティ、契約種別、関係、条項

高度な設定

カスタム信頼度閾値

extractor.extract_json(
    text,
    {"financial_data": ["account_number::str", "amount::str"]},
    threshold=0.9   # すべてのフィールドに適用
)

スキーマ別フィールドごとの閾値

schema = (
    extractor.create_schema()
    .structure("sensitive_data")
        .field("ssn", dtype="str", threshold=0.95)
        .field("email", dtype="str", threshold=0.8)
)

正規表現バリデータ(データ品質)

from gliner2 import RegexValidator

email_validator = RegexValidator(r"^[\w.-]+@[\w.-]+\.\w+$")
schema = (
    extractor.create_schema()
    .structure("contact")
        .field("email", dtype="str", validators=[email_validator])
)

複数のバリデータをチェーン可能で、すべてが合格しなければ失敗します。


バッチ処理

texts = ["Google's Sundar Pichai...", "Microsoft CEO Satya..."]
results = extractor.batch_extract_entities(
    texts,
    ["company","person"],
    include_confidence=True,
    batch_size=8
)

関係抽出やその他タスク用の同様の関数も利用可能です。


自分でモデルを学習させる

from gliner2.training.trainer import GLiNER2Trainer, TrainingConfig
from gliner2.training.data import InputExample

examples = [
    InputExample(
        text="John works at Google in California.",
        entities={"person": ["John"], "company": ["Google"], "location": ["California"]}
    ),
    # 追加例...
]

model = GLiNER2.from_pretrained("fastino/gliner2-base-v1")
config = TrainingConfig(output_dir="./output", num_epochs=10, batch_size=8)
trainer = GLiNER2Trainer(model, config)
trainer.train(train_data=examples)

LoRA(パラメータ効率の高いファインチューニング)がサポートされており、アダプタは約5 MBで済みます(450 MB ではなく)。


ライセンス & 引用

  • ライセンス: Apache 2.0
  • 引用例:
@inproceedings{zaratiana-etal-2025-gliner2,
  title={GLiNER2: Schema‑Driven Multi‑Task Learning for Structured Information Extraction},
  author={Zaratiana, Urchade and Pasternak, Gil and Boyd, Oliver and Hurn‑Maloney, George and Lewis, Ash},
  booktitle={Proceedings of the 2025 Conference on Empirical Methods in Natural Language Processing: System Demonstrations},
  year=2025,
  pages={130--140}
}

データから洞察を抽出する準備はできましたか?

pip install gliner2

同じ日のほかのニュース

一覧に戻る →

2026/03/06 1:04

多数の管理者アカウントが侵害された後、ウィキペディアは読み取り専用モードになった。

## Japanese Translation: **概要:** 本書は、2026年2月20日から3月5日にかけて Wiki サービスに影響を与えた一連の技術的インシデントを記録しています。 - **2月20日:** 19:28 UTC に問題が確認され、19:44 UTC に修正が適用されました。23:33 UTC に監視を再開しました。 - **2月25日:** 16:40 UTC に調査が開始され、17:24 UTC に解決しました。 - **2月26日:** 16:25 UTC に修正で問題が解消され、16:58 UTC に監視を開始しました。 - **3月3日:** 10:09 UTC にデータベースサーバーの問題が検知され、10:24 UTC に修正が適用されました。10:17 UTC に監視更新が行われました。 - **3月5日:** 16:11 UTC に問題が確認され、17:09 UTC に初期修正(読み書き復旧)が実施されました。さらに編集は17:36 UTC の追加修正まで無効のままでした。18:36 UTC に監視を継続し更新しました。 3月4日、2月1–2、2月27–28、2月22–24、または2月21日はインシデントが報告されていません。 インシデントは運用上の問題、性能低下、一部停止、大規模停止、およびメンテナンスカテゴリにわたります(ただし各イベントに対する具体的なカテゴリは割り当てられていません)。 すべての修正後、チームは安定性を確認するために継続的監視を実施し、完全回復を宣言しました。ユーザーは一時的な読み取り専用アクセスと編集制限を経験し、継続的な Wiki 利用が必要な企業や教育グループの協力に影響を与える可能性があります。新たな症状が出現した場合に備えて、引き続き観測が行われることが示唆されています。 *この拡張版がご要望に合致する場合は、元の概要を置き換えることができます。*

2026/03/06 2:44

**「ブランドの時代」**

## 日本語訳: **要約:** スイスの時計業界は、1970年代に起こったクォーツ危機によって軌道を変えました。この危機は日本企業の競争とフランス・米ドル為替レートの急騰が引き金となり、ユニット販売数は1970年代初頭から1980年代初頭にかけて約3分の2減少しました。その結果、多くのメーカーは破綻または買収を余儀なくされました。残存した数社は純粋な技術的精密さから**ブランド主導のラグジュアリー**へとシフトしました。 視覚的マイルストーンがこの転換を確固たるものにしました:パテック・フィリップの1968年「ゴールデン・エリプス」ケース、オーデム・ピゲの1972年ロイヤルオーク(ジェラルド・ゲンタ設計)、そして1976年のノーティラスはすべて技術的洗練よりも瞬時に認識できるデザインを強調しました。1984年にはパテックの広告代理店長レネ・ビッテルが「ホブナイル・カラトラバ」(3919)を提唱し、手巻き機構と独特な模様が投資銀行家の注目を集め、1987年までに売上を急増させました。 メカニカル時計は**高級アクセサリー**として再登場しました。大きさと視覚的インパクトが男性の「ユーピー」(若手社会人)に富を披露するために理想的だったためです。ブランド時代は現在、オーバーサイズで独特な形状のケース、人工的希少性、および二次市場(例:パテックの時計買い戻し)の積極的管理によって定義されます。 主要ブランドは階層化された製品ラインを割り当てる持株会社に統合されました。独立ブティックは、パテック・オーデム・ピゲ、ロレックスなどの数少ないフラッグシップハウスでのみ存続しています。業界がステータスシンボルに焦点を当てることで、メーカーによって管理される**資産バブルに似たビジネスモデル**が生まれました。 **教訓:** ブランド力は収益性を推進しますが、過度の依存はイノベーションを抑制するリスクがあります。次の「黄金時代」は、名声を売るだけでなく、本当に興味深い問題に取り組むことで生まれる可能性が高いです。

2026/03/02 18:26

**Linuxにおけるハードウェア・ホットプラグイベント ― 詳細解説**

## Japanese Translation: **概要:** Libusb の Linux ホットプラグシステムは、`linux_netlink.c` と `linux_udev.c` という 2 つのバックエンドに依存しています。デフォルトでは `--with-udev=yes` が設定されており、udev を無効にするとプレーンな netlink バックエンドが使用されます。 カーネルデバイスイベントは Netlink プロトコル 15(`NETLINK_KOBJECT_UEVENT`)を介して到達し、ヌル終端文字列として `add@/devices/...` のようなアクション行から始まり、`ACTION=add`、`SUBSYSTEM=usb` などのキー/バリュー ペアが続きます。udev はこれらのメッセージを受信し解析して、カスタムパケット形式でマルチキャストグループ 2(`MONITOR_GROUP_UDEV`)に再送信します。 udev パケットは `"libudev"` というマジック文字列から始まり、ビッグエンディアンのバージョンワード `0xfeedcafe` を持ち、次にネイティブエンディアンで格納された複数フィールド(`header_sz`、`properties_off`、`properties_len`、`subsystem_hash`、`devtype_hash`、`tag_bloom_hi`、`tag_bloom_lo`)が続きます。ハッシュは `SUBSYSTEM=` と `DEVTYPE=` の値に対して MurmurHash2 を用いて計算され、2 つの Bloom フィルタワードは `TAGS=` キーから導出されたビットをエンコードします。その後パケットには元のキー/バリュー文字列と、`SO_PASSCRED` 経由で送られる Unix 認証情報(pid/uid/gid)が含まれます。カーネルメッセージはゼロ認証情報を持つため、libudev は有効な認証情報がないパケットを拒否します。 プロトコルバージョンは固定で `0xfeedcafe` となっており、後方互換性や前方互換性に関する保証は文書化されていません。そのため、パケットレイアウト、フィルタリングロジック、または認証情報処理の変更は libusb と udev の両方で協調して更新を行う必要があり、ホットプラグイベントに依存するアプリケーションのデバイス検出、安定性、セキュリティに影響を与える可能性があります。

**GLiNER2:統一スキーマベース情報抽出** | そっか~ニュース