GLiNER: 양방향 트랜스포머를 사용한 개체명 인식을 위한 범용 모델
개체명 인식(NER)은 텍스트에서 이름, 위치, 조직과 같은 엔터티를 식별하고 분류하는 중요한 자연어 처리(NLP) 작업입니다. 이를 통해 다양한 애플리케이션을 위한 구조화된 정보 추출이 가능해집니다. NER은 지식 그래프 구축, 정보 검색, 콘텐츠 분석과 같은 작업도 처리할 수 있습니다.
기존 NER 모델은 사전 정의된 엔터티를 식별하는 데 뛰어납니다. 반면, 대규모 언어 모델(LLMs)은 더 복잡하고 다양한 엔터티를 처리할 수 있습니다. 그러나 LLMs는 종종 리소스를 많이 소모하여 실제 배포에 어려움을 초래합니다. InstructUIE, UniNER, GoLLIE와 같은 개체명 인식(NER)을 위한 기존의 미세 조정된 오픈 소스 LLMs는 효과적이지만, 큰 크기, 느린 토큰 생성, 제한적인 병렬 엔터티 추출과 같은 문제에 직면해 있습니다. 이러한 문제를 해결하기 위해 연구자들은 정확성을 유지하면서 효율성, 확장성, 다국어 성능을 개선하도록 설계된 작고 효율적인 NER 모델인 GLiNER를 개발했습니다.
GLiNER는 양방향 transformer 인코더를 사용하는 오픈 소스 NER 모델입니다. 이는 병렬 엔터티 추출을 가능하게 하며 기존 및 LLM 기반 NER 접근 방식의 한계를 해결합니다. 여러 언어를 포함한 다양한 NER 벤치마크의 zero-shot 평가에서 ChatGPT와 UniNER 같은 미세 조정된 LLMs를 모두 능가합니다. GLiNER의 가장 작은 버전조차도 zero-shot 설정에서 InstructUIE 같은 대형 모델을 능가합니다.
그림: 오픈 NER을 위한 BiLM
그림: 오픈 NER을 위한 BiLM | 출처
이 블로그에서는 GLiNER, NER에 대한 접근 방식, 그리고 NLP 분야에 미치는 영향에 대해 논의합니다. 자세한 내용은 논문 GLiNER에서 확인할 수 있습니다.
개체명 인식 개요
개체명 인식(NER)은 텍스트 내의 명명된 엔터티를 식별하고 분류하는 자연어 처리(NLP)의 기본 작업입니다. 이러한 엔터티는 사람, 조직, 위치, 날짜 등과 같은 현실 세계의 객체를 나타냅니다.
NER의 핵심 구성 요소
엔터티 감지: 텍스트에서 명명된 엔터티의 경계를 찾는 것(예: "Albert Einstein"을 관심 범위로 식별).
엔터티 분류: 감지된 각 엔터티에 올바른 레이블을 할당하는 것(예: "Albert Einstein"을 Person으로 레이블링).
GLiNER의 아키텍처와 기능 이해하기
GLiNER는 BERT 및 DeBERTa와 같은 양방향 언어 모델(BiLMs)을 사용합니다. 이러한 모델은 텍스트에서 풍부한 문맥 표현을 포착하는 것으로 알려져 있습니다. GLiNER의 핵심 개념은 NER 작업을 엔터티 유형 임베딩을 공유 잠재 공간에서 텍스트 범위 표현과 비교하는 매칭 문제로 구성하는 것입니다. 이는 NER을 생성 작업으로 다루는 기존 접근 방식과 대조됩니다.
GLiNER는 세 가지 주요 구성 요소로 이루어져 있습니다:
사전 학습된 텍스트 인코더: GLiNER의 기반은 DeBERTa와 같은 사전 학습된 BiLM으로, 텍스트 인코더 역할을 합니다. BiLM은 입력 시퀀스를 처리하여 단어 간의 문맥 관계를 포착하고 각 토큰에 대한 문맥화된 표현(임베딩)을 생성합니다.
스팬 표현 모듈: 이 구성 요소는 입력 텍스트 내의 가능한 각 스팬(연속된 단어 시퀀스)에 대한 표현을 계산하는 역할을 합니다. 스팬 표현은 각 스팬의 시작 및 끝 토큰에 대한 BiLM의 출력을 결합하여 도출됩니다. 이러한 임베딩은 관련 엔티티 유형의 표현과 밀접하게 정렬되도록 최적화됩니다.
엔티티 표현 모듈: 이 구성 요소는 모델이 추출하려는 각 엔티티 유형에 대한 임베딩을 생성합니다. 엔티티 유형을 나타내는 특수 토큰이 BiLM을 통과하고, 그 출력은 피드포워드 네트워크를 사용해 정제됩니다. 그런 다음 이러한 엔티티 임베딩은 스팬 임베딩과 비교되어 일치 여부를 결정합니다.
그림: GLiNER 아키텍처
그림: GLiNER 아키텍처 | 출처
GLiNER의 작동 방식은 다음과 같습니다.
입력 형식 지정
GLiNER는 엔티티를 추출할 텍스트와 잠재적 엔티티 유형 목록을 모두 입력으로 받습니다. 이러한 요소는 하나의 통합된 시퀀스로 결합됩니다. [ENT] 및 [SEP]를 포함한 특수 토큰은 이 시퀀스에서 중요한 역할을 합니다:
[ENT]토큰은 목록의 각 엔티티 유형 앞에 옵니다.[SEP]토큰은 엔티티 유형 목록과 입력 텍스트 사이의 구분자 역할을 합니다.[ENT]및[SEP]토큰은 모두 학습 프로세스 시작 시 무작위로 초기화됩니다.
그림: 입력 형식 예시
그림: 입력 형식 예시 | 출처
BiLM을 사용한 토큰 표현
그런 다음 사전 학습된 BiLM이 통합 입력 시퀀스를 처리합니다. BiLM은 전체 시퀀스를 분석하고, 모든 토큰 간의 관계를 이해하며, 각 토큰에 대한 문맥화된 벡터 표현을 출력합니다.
- 엔티티 유형 토큰(
[ENT]와 관련된 토큰)에 대한 출력은 p로 표현됩니다.
- 입력 텍스트의 각 단어에 대한 출력은 h로 표현됩니다.
- 토큰화 중 하위 단어로 분해된 단어의 경우, GLiNER는 NER에서 일반적으로 사용되는 방식인 첫 번째 하위 단어의 표현을 사용합니다.
엔티티 및 스팬 임베딩 생성
GLiNER는 엔티티 유형과 텍스트 스팬을 모두 효과적으로 비교할 수 있는 통합 잠재 공간으로 인코딩하는 것을 목표로 합니다. 여기에는 다음이 포함됩니다:
- 엔티티 표현 정제: 엔티티 유형의 초기 표현(p)은 2계층 피드포워드 네트워크(FFN)를 사용하여 정제됩니다. 그 결과 q로 표시되는 새로운 표현이 생성되며, 이는 엔티티 유형을 잠재 공간에 매핑합니다.
- 스팬 표현 계산: 스팬은 입력 텍스트 내의 연속된 단어 시퀀스입니다. GLiNER는 또 다른 2계층 FFN을 사용하여 가능한 각 스팬에 대한 임베딩을 계산합니다. 이 FFN은 스팬의 시작 및 끝 토큰 표현을 연결한 것에 대해 작동합니다. 이 프로세스를 통해 GLiNER는 스팬 전체의 의미를 포착할 수 있습니다.
엔티티 유형과 스팬 매칭
엔티티 유형과 스팬을 모두 동일한 잠재 공간으로 인코딩한 후, GLiNER는 해당 임베딩 간의 매칭 점수를 계산하여 스팬이 특정 엔티티 유형에 속할 가능성을 결정합니다. 매칭 점수는 스팬 임베딩 Sij와 엔티티 임베딩 qt의 내적을 사용하여 계산한 뒤, 시그모이드 활성화 함수를 적용합니다. 결과 점수(i, j, t)는 스팬(i, j)이 유형 t일 확률로 해석될 수 있습니다.
훈련 중 Binary Cross-Entropy Loss를 사용하여 모델은 올바른(양성) span-entity 쌍에 대한 매칭 점수를 최대화하고, 잘못된(음성) 쌍에 대해서는 최소화합니다.
양성 쌍은 훈련 데이터에서 해당 span이 실제로 엔터티 유형으로 라벨링된 경우입니다.
음성 쌍은 동일한 배치 내 다른 예시에서 엔터티를 무작위로 샘플링하여 생성됩니다. 이를 통해 모델은 참 엔터티 할당과 거짓 엔터티 할당을 효과적으로 구별할 수 있습니다.
개별 예시에 대한 훈련 손실은 다음과 같이 정의됩니다:
개별 예시에 대한 훈련 손실
Greedy Span Selection을 사용한 디코딩
GLiNER는 디코딩 단계에서 입력 텍스트로부터 가장 가능성 높은 엔터티를 추출하기 위해 greedy span selection 알고리즘을 사용합니다. 이 알고리즘은 가장 높은 매칭 점수를 가진 겹치지 않는 span을 우선시합니다. 이는 두 가지 NER 모드를 지원합니다:
Flat NER: 이 모드는 겹치지 않는 span만 선택하며, 가장 높은 점수를 가진 span을 우선시합니다.
Nested NER: 이 모드는 부분적 겹침을 피하면서 중첩된 span(다른 엔터티 안에 완전히 포함된 span)의 선택을 허용합니다.
이 greedy 접근 방식은 GLiNER가 관련 엔터티를 효율적으로 추출하면서도 작업별 제약 조건을 준수하도록 보장합니다.
GLiNER의 실험 및 하이퍼파라미터 설정
GLiNER의 효과를 평가하기 위해 신중하게 설계된 실험 설정과 견고한 하이퍼파라미터 구성이 구현되었습니다. 모델은 240,000개의 엔터티 span과 13,000개의 고유 엔터티 유형을 포함한 44,889개의 passage 모음인 Pile-NER 데이터셋에서 훈련됩니다. 이 데이터셋은 Pile corpus에서 파생되었으며, 50,000개의 텍스트를 샘플링하고 ChatGPT를 사용해 주석을 달았습니다. 주석은 사전 정의된 유형 제약 없이 생성되어, 데이터셋이 다양한 엔터티를 포착할 수 있도록 했습니다.
엔터티 추출을 위해 ChatGPT에 프롬프트 제공
그림: 엔터티 추출을 위해 ChatGPT에 프롬프트 제공 | 출처
GLiNER는 검증된 경험적 성능으로 인해 deBERTa-v3 모델을 backbone으로 사용합니다. 이 모델은 차원 폭이 768인 비사전훈련 레이어를 통합하고, 과적합을 완화하기 위해 dropout rate 0.4를 적용합니다.
훈련 과정은 최대 30,000 step 동안 계속되며, 10% warmup phase로 시작한 뒤 cosine scheduler가 제어하는 decay phase가 이어집니다. 특정 엔터티 유형이 없는 경우를 처리하는 모델의 능력을 향상시키기 위해 훈련 중 동일한 배치 내 다른 예시에서 음성 엔터티 유형을 무작위로 샘플링합니다.
모델의 견고성을 높이고 과적합을 방지하기 위해 여러 regularization 전략이 구현됩니다. 이러한 전략에는 다음이 포함됩니다:
엔터티 순서 섞기: 이는 입력 내 위치와 관계없이 모델이 엔터티를 식별하는 데 도움이 됩니다.
엔터티 무작위 제거: 이는 정보가 누락되었거나 불완전한 경우를 모델이 처리하도록 강제합니다.
훈련 중 계산 복잡성을 관리하기 위해 문장당 처리되는 엔터티 유형 수에 제약이 부과됩니다. 이 한계는 25로 설정됩니다.
GLiNER의 성능 분석
훈련이 완료되면 GLiNER의 성능을 다양한 NER 벤치마크에서 테스트하고, 그 효과에 기여하는 요인을 분석했습니다.
영어 데이터셋에서의 Zero-Shot 성능
GLiNER는 zero-shot 설정에서 평가되었는데, 이는 Pile-NER 데이터셋으로 훈련된 후 추가 fine-tuning 없이 보지 못한 데이터셋에서 바로 테스트되었음을 의미합니다.
OOD NER 벤치마크
7개의 다양한 NER 데이터셋으로 구성된 OOD(Out-of-Domain) NER 벤치마크는 GLiNER가 서로 다른 도메인으로 일반화할 수 있는 능력을 평가하는 데 사용되었습니다. GLiNER는 모든 크기 변형(소형, 중형, 대형)에서 인상적인 성능을 보였으며, ChatGPT, Vicuna, 심지어 훨씬 더 큰 InstructUIE와 같은 모델들을 능가했습니다.
특히, 중형 GLiNER는 140배 더 작음에도 불구하고 13B UniNER 모델과 비슷한 결과를 달성했습니다. 가장 큰 GLiNER 모델은 GoLLIE(최고 성능의 LLM)와 USM을 포함한 경쟁 모델들을 일관되게 능가했습니다.
그림: Out-of-Domain NER 벤치마크의 Zero-Shot 점수
그림: Out-of-Domain NER 벤치마크의 Zero-Shot 점수 | 출처
20 NER 벤치마크
GLiNER는 다양한 도메인에 걸친 20개의 NER 데이터셋 벤치마크에서 추가로 평가되었습니다. GLiNER는 이러한 데이터셋 대부분에서 ChatGPT와 UniNER를 모두 능가하여, 서로 다른 도메인 전반에서의 견고성과 적응성을 입증했습니다. 그러나 트윗 기반 NER 데이터셋에서는 UniNER에 비해 성능이 낮았으며, 이는 비공식적이고 노이즈가 많은 텍스트 처리에서 개선이 필요한 잠재적 영역을 보여줍니다.
20개 NER 데이터셋에서의 Zero-shot 성능
20개 NER 데이터셋에서의 Zero-shot 성능 | 출처
Zero-Shot 다국어 평가
GLiNER의 보지 못한 언어에 대한 일반화 가능성을 평가하기 위해, 11개 언어의 데이터를 포함하는 Multiconer 데이터셋에서 평가되었습니다. GLiNER의 두 가지 변형이 사용되었습니다:
영어 DeBERTa 백본을 사용하는 하나(GLiNER-En).
다국어 DeBERTa 백본을 사용하는 하나(GLiNER-Multi).
GLiNER-Multi는 대부분의 언어에서 ChatGPT를 능가하며 매우 뛰어난 성능을 보였습니다. 이는
해당 언어들로 학습되지 않았음에도 교차 언어 전이 능력을 입증했습니다. 심지어 스페인어에서는 영어보다 약간 더 나은 성능을 보였습니다.
서로 다른 언어에서의 Zero-Shot 점수
서로 다른 언어에서의 Zero-Shot 점수 | 출처
도메인 내 지도 미세 조정
GLiNER는 지도 학습 환경에서 LLM과 성능을 비교하기 위해 20개의 NER 데이터셋에서도 미세 조정되었습니다. 두 가지 변형이 테스트되었는데, 하나는 zero-shot 모델(Pile-NER에서 사전 학습됨)의 가중치로 초기화되었고, 다른 하나는 처음부터 학습되었습니다. 사전 학습된 변형은 비사전 학습 변형을 일관되게 능가하여, 다양한 데이터셋에서의 사전 학습이 주는 이점을 보여주었습니다.
서로 다른 데이터셋 크기 전반의 지도 학습 성능
서로 다른 데이터셋 크기 전반의 지도 학습 성능 | 출처
사전 학습된 GLiNER는 또한 훨씬 더 큰 InstructUIE를 능가하여 GLiNER 아키텍처의 효율성을 부각했습니다. UniNER에 비해서는 뒤처졌지만, GLiNER는 여전히 20개 데이터셋 중 7개에서 최고 점수를 달성했습니다.
그림: 도메인 내 지도 미세 조정
그림: 도메인 내 지도 미세 조정 | 출처
w/ 약어는 "with"를 의미하며, GLiNER 모델이 20개 NER 데이터셋에서 미세 조정되기 전에 먼저 Pile-NER 데이터셋으로 학습되었음을 나타냅니다.
w/o 약어는 "without"을 의미하며, GLiNER 모델이 Pile-NER 데이터셋에서 사전 학습되지 않았음을 나타냅니다.
다양한 아키텍처 선택과 학습 전략
GLiNER의 성능을 최적화하고 다양한 시나리오 전반에서 적응성을 보장하기 위해 여러 아키텍처 및 학습 전략이 탐구되었습니다.
다양한 백본 평가
GLiNER가 성능에 어떤 영향을 미치는지 확인하기 위해 다양한 BiLM 백본을 사용하여 추가로 조사되었습니다. BERT, RoBERTa, ALBERT, ELECTRA와 같은 다양한 모델이 테스트되었으며, DeBERTa-v3가 일관되게 최고의 성능을 보였습니다. 그러나 모든 백본은 기존 모델과 비교해 강력한 결과를 보였습니다. 이는 GLiNER의 아키텍처가 다양한 BiLM 전반에서 효과적임을 시사했습니다.
그림: 다양한 백본에 대한 제로샷 성능
그림: 다양한 백본에 대한 제로샷 성능 | 출처
부정 엔터티 샘플링의 영향 평가
부정 엔터티 샘플링은 실제 데이터에 특정 엔터티 유형이 없는 경우가 많다는 점을 인식하도록 학습 중에 도입됩니다. 그런 다음 모델의 성능은 서로 다른 부정 샘플링 비율(0%, 50%, 75%)을 사용하여 평가되며, 50% 비율이 정밀도와 재현율 사이에서 최상의 균형을 제공합니다. 긍정 엔터티만으로 학습하면 더 많은 거짓 양성(낮은 정밀도)이 발생하는 반면, 높은 부정 샘플링 비율은 모델을 지나치게 신중하게 만들어 엔터티를 놓치게 합니다(낮은 재현율).
그림: 부정 엔터티 유형 샘플링의 효과
그림: 부정 엔터티 유형 샘플링의 효과 | 출처
무작위 엔터티 유형 드롭의 이점 평가
학습 중 엔터티 유형 프롬프트를 무작위로 드롭하면 실제 시나리오에서 다양한 수의 엔터티에 대한 모델의 견고성과 적응성이 향상됩니다. 이 기법은 도메인 외 평가에서 평균 1.4포인트의 향상을 가져옵니다.
그림: 엔터티 유형 무작위 드롭
그림: 엔터티 유형 무작위 드롭 | 출처
GLiNER 개발의 시사점
GLiNER의 개발은 개체명 인식(NER) 분야에 중요한 시사점을 갖습니다:
NER을 위한 리소스 효율성: GLiNER는 대형 LLM보다 작은 모델 크기로 강력한 성능을 달성함으로써 NER을 발전시킵니다. 이러한 효율성은 리소스가 제한된 환경에서 유용하며, 다양한 애플리케이션에서 NER을 더 쉽게 활용할 수 있게 합니다. GLiNER는 NER을 잠재 공간에서 엔터티 유형 임베딩과 텍스트 스팬 표현 간의 매칭 작업으로 구성함으로써 LLM의 계산 오버헤드 없이 BiLM을 효과적으로 사용합니다.
도메인과 언어 전반의 제로샷 일반화: GLiNER는 제로샷 설정에서 매우 우수하게 수행되며, 작업별 미세 조정 없이 NER 벤치마크에서 최첨단 결과를 달성합니다. 다양한 도메인과 언어 전반에 걸쳐 일반화할 수 있는 능력은 제한된 레이블 데이터가 있는 시나리오에서 유망한 솔루션이 되게 합니다.
사전 학습을 통한 성능 향상: 도메인 내 작업을 위해 미세 조정하기 전에 Pile-NER 데이터셋에서 사전 학습하면 주목할 만한 성능 향상으로 이어집니다. 이는 지도 데이터의 양이 제한적일 때 특히 그렇습니다. 향상 폭은 더 작은 데이터셋에서 가장 큽니다. 이는 사전 학습이 효과적인 지식 전이를 촉진하여 새로운 도메인과 엔터티 유형에 일반화하고 적응하는 모델의 능력을 향상시킨다는 것을 시사합니다.
향후 연구 방향
GLiNER의 역량을 더욱 향상시키기 위해 여러 연구 경로를 탐색할 수 있습니다:
대안 아키텍처 탐색: GLiNER의 현재 아키텍처는 효과적이지만, 다양한 BiLM(양방향 언어 모델) 변형을 실험하거나 새로운 스팬 표현 기법을 도입함으로써 개선의 여지가 있습니다. 이러한 혁신은 추가적인 성능 향상으로 이어지고 GLiNER가 더 높은 효율성으로 더 복잡한 작업을 처리할 수 있게 할 수 있습니다.
노이즈가 많고 비격식적인 텍스트 처리: GLiNER는 많은 맥락에서 우수한 성능을 보이지만, 노이즈가 많고 비격식적인 텍스트를 처리하는 능력은 개선이 필요합니다. 소셜 미디어 콘텐츠에는 종종 속어, 약어, 비표준 문법이 포함되어 고유한 과제를 제기합니다. 향후 연구는 GLiNER가 이러한 미묘한 차이를 더 잘 포착하고, 이처럼 비정형 텍스트를 처리할 때의 견고성을 향상하도록 개선하는 데 집중할 수 있습니다.
외부 지식 통합: 지식 그래프나 도메인별 gazetteer와 같은 외부 지식 소스를 통합하면 엔터티 중의성 해소에서 GLiNER의 정확도를 높일 수 있습니다. 이러한 리소스를 모델 아키텍처에 임베딩함으로써 연구자들은 명명된 엔터티에 대해 더 정밀하고 맥락을 인식하는 표현을 개발하여 성능을 개선할 수 있습니다.
도메인별 사용 사례를 위한 파인튜닝: GLiNER의 제로샷 성능은 인상적이지만, 도메인별 파인튜닝을 통해 추가 개선의 잠재력이 있습니다. 생의학 텍스트 마이닝이나 법률 문서 분석과 같은 분야가 이 접근 방식의 이점을 얻을 수 있습니다. 이는 엔터티 인식이 복잡하고 기술적인 언어 패턴을 포착해야 하는 전문 분야에 GLiNER를 더 잘 적응할 수 있게 합니다.
결론
GLiNER는 NER에서 중요한 발전을 나타냅니다. 컴팩트한 양방향 transformer models를 통해 효율성, 적응성, 접근성을 결합합니다. 더 큰 모델의 계산 비용 없이 강력한 제로샷 및 다국어 성능을 달성하며, ChatGPT와 UniNER 같은 대안보다 뛰어난 성능을 보입니다.
향후 연구는 대안 아키텍처를 탐색하고, 노이즈가 많고 비격식적인 텍스트에서의 견고성을 개선하며, 더 나은 엔터티 중의성 해소를 위해 외부 지식을 통합하고, 도메인별 데이터셋에 맞춰 파인튜닝하며, 교차 언어 전이를 통해 저자원 언어에서 성능을 향상하는 방향을 모색할 수 있습니다. 이러한 방향은 다양한 NER 작업 전반에서 GLiNER의 효과를 더욱 개선할 큰 잠재력을 지니고 있습니다.
추가 자료
계속 읽기

Zilliz Cloud Enterprise Vector Search Powers High-Performance AI on AWS
Zilliz Cloud on AWS powers secure, scalable, ultra-fast vector search for enterprise AI apps, with BYOC, sub-10ms latency, and zero-DevOps simplicity.

Vector Databases vs. Document Databases
Use a vector database for similarity search and AI-powered applications; use a document database for flexible schema and JSON-like data storage.

Bringing AI to Legal Tech: The Role of Vector Databases in Enhancing LLM Guardrails
Discover how vector databases enhance AI reliability in legal tech, ensuring accurate, compliant, and trustworthy AI-powered legal solutions.



