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(...) (스키마를 통해) |
타입화된 엔티티-관계 트리플을 생성합니다. |
| 스팬 속성 | 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 모델을 제공합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트