모델별 실행 레시피

최종 업데이트

GLiNER2.5로 영어 문장에서 필드를 JSON으로 추출하기

영어 문의에서 정해 둔 필드를 추출해 원문과 함께 저장해요.

GLiNER2.5는 문장과 찾을 항목의 이름을 입력받아 해당 항목과 원문 일부를 돌려줘요. 이 예제는 영어 고객지원 문장에서 제품명·오류 코드·문제 내용을 찾아 JSON 레코드로 저장해요.

실행 조건과 핵심 내용
  • 모델 카드가 안내하는 base 체크포인트는 영어용이에요.
  • 이 예제는 필드 추출을 다루며 관계를 추출하지 않아요.

생성 대신 구조화 추출을 해요

GLiNER2.5는 문장과 찾을 항목의 이름을 입력받아, 해당 항목과 원문에서의 위치를 돌려주는 정보 추출 모델이에요. 이 예제는 영어 고객지원 문장에서 제품명·오류 코드·문제 내용을 찾아 JSON 레코드로 저장해요.

공식 저장소는 fastino/gliner2.5-base-v1를 권장 영어 체크포인트1로 안내하고, 설치는 pip install "gliner2[local]" 예제를 제공합니다. 이 체크포인트를 한국어 문장에 적용해도 같은 품질이 나온다고 추정하지 말고 영어 표본으로 먼저 검증하세요.

문서가 여러 검색 조각으로 나뉘고 일부가 로컬 컴퓨터로 향하는 장면
먼저 추출할 문서 유형과 질문을 좁혀요.

스키마를 작게 시작해요

문서 한 종류를 고르고 추출할 엔티티 이름과 관계 방향을 정합니다. 실행 예시는 AutoExtractor.from_pretrained("fastino/gliner2.5-base-v1")로 모델을 불러온 뒤, field·relation·attribute 정의를 넣어 구조를 지정해요.

아래 Python 코드를 extract.py로 저장하세요. source_id, 원문, 모델 반환값을 한 객체에 담아 파일로 저장하므로, 결과를 원문과 함께 검수할 수 있어요.

extract.py — 필드를 추출하고 JSON 저장
import json
from gliner2 import AutoExtractor

model = AutoExtractor.from_pretrained("fastino/gliner2.5-base-v1")
source_id = "ticket-001"
text = "The Atlas 14 laptop stopped charging with error E-204 after the March update."
schema = {"product": [
    "name::str::Product name and model",
    "error_code::str::Error code mentioned in the report",
    "issue::str::What went wrong",
]}
result = model.extract_json(text, schema)
record = {"source_id": source_id, "text": text, "extraction": result}
with open("extraction.json", "w", encoding="utf-8") as f:
    json.dump(record, f, ensure_ascii=False, indent=2)
print(json.dumps(record, ensure_ascii=False, indent=2))
GLiNER2.5 로컬 설치
python -m venv .venv
source .venv/bin/activate
python -m pip install -U "gliner2[local]"
필드 추출 실행
python extract.py
실행하면 원문과 모델 반환값을 담은 `extraction.json`을 저장합니다.
질문별 기대 근거가 카드로 정리된 모습
고정된 예시 집합에서 누락·오탐을 기록하세요.

속성별로 추출 결과를 점검해요

사람이 라벨한 문장 100개를 준비해 entity span의 precision·recall, 관계의 precision·recall, JSON 파싱 성공률을 각각 계산하세요. 전체 점수 하나로 합치면 어떤 필드가 자주 빠지거나 잘못 연결되는지 숨겨질 수 있습니다.

오탐 수정 시간과 잘못된 관계가 후속 검색·업무 처리에 미치는 비용도 기록합니다. 문서가 영어가 아니거나 표·레이아웃이 복잡하면, 먼저 OCR2로 추출한 텍스트가 모델의 입력 가정에 맞는지 따로 확인하세요.

표 구조를 그대로 살려야 하거나 문서 전체를 한 번에 옮겨야 한다면, 항목 추출 모델보다 문서 파서를 먼저 비교하세요. 여기서는 정해 둔 항목만 찾으므로 표의 칸과 읽는 순서는 별도로 확인해야 해요.

두 장비에서 문서 색인과 검색 결과를 비교하는 장면
추출 정확도와 후속 검색 성능은 나눠 평가해요.

용어 각주

  1. 체크포인트 — 학습된 모델의 가중치 등을 저장한 파일입니다. 같은 모델 계열도 버전이나 용도에 따라 다른 체크포인트를 쓸 수 있습니다.

    본문으로 돌아가기
  2. OCR — 이미지나 스캔 문서에서 글자를 인식해 텍스트로 바꾸는 처리입니다. 표 배치나 읽기 순서는 원본 이미지를 함께 봐야 판단할 수 있습니다.

    본문으로 돌아가기

자주 묻는 질문

이 글에서 가장 먼저 확인할 것은 무엇인가요?
GLiNER2.5는 문장과 찾을 항목의 이름을 입력받아 해당 항목과 원문 일부를 돌려줘요. 이 예제는 영어 고객지원 문장에서 제품명·오류 코드·문제 내용을 찾아 JSON 레코드로 저장해요.