[논문] 모호한 참조가 RAG를 망친다 코리퍼런스 해소(Coreference Resolution)로 검색 정확도를 높이는 법
AI

[논문] 모호한 참조가 RAG를 망친다 코리퍼런스 해소(Coreference Resolution)로 검색 정확도를 높이는 법

블로그로 돌아가기

RAG 시스템에서 대명사와 지시사로 인한 참조 모호성이 검색과 생성 품질을 저하시킨다. 8개 임베딩 모델, 7개 LLM, 4개 데이터셋에 걸친 실험으로 공지시 해소(CR)가 Mean pooling 모델의 검색 성능을 향상시키고, 소형 LLM의 QA 성능을 극적으로 개선함을 증명한다. Qwen2.5-7B의 SQuAD F1이 0.40에서 0.80으로 두 배 향상.

CortexysCortexys2026.03.12RAGCoreference ResolutionNLPEmbeddingLLM논문리뷰

모호한 참조가 RAG를 망친다: 코리퍼런스 해소(Coreference Resolution)로 검색 정확도를 높이는 법

논문: "From Ambiguity to Accuracy: The Transformative Effect of Coreference Resolution on Retrieval-Augmented Generation systems" 저자: Youngjoon Jang*, Seongtae Hong* (공동 1저자), Junyoung Son — Korea University; Sungjin Park — Naver Corp; Chanjun Park†, Heuiseok Lim† — Korea University arXiv: 2507.07847v3


RAG는 왜 여전히 실수를 할까?

Retrieval-Augmented Generation(RAG)은 LLM의 환각(hallucination)을 줄이고 최신 지식을 활용할 수 있게 해주는 강력한 프레임워크다. 벡터 DB에서 관련 문서를 검색해 LLM의 컨텍스트에 주입하는 방식으로, 현재 AI 시스템의 사실성을 크게 향상시킨다.

하지만 RAG 파이프라인에는 종종 간과되는 약점이 있다: 문서 내 참조 모호성(referential ambiguity), 즉 대명사나 지시사로 인한 공지시 문제다.

예를 들어 다음 문장을 보자.

"Einstein developed general relativity. GR fundamentally changed our understanding of gravity. It showed that its effects could bend light."

이 텍스트에서 GR, It, its는 모두 general relativity를 가리키지만, 임베딩 모델은 이 연결을 얼마나 잘 파악할까? 그리고 LLM이 이런 텍스트를 기반으로 답을 생성할 때 혼란이 발생하지는 않을까?

이 논문은 그 질문에 정면으로 답한다.


공지시 해소(Coreference Resolution)란?

공지시 해소(Coreference Resolution, CR) 는 텍스트에서 동일한 실체를 가리키는 여러 표현을 명시적으로 연결하는 NLP 태스크다. 위 예시에서 GRgeneral relativity, Itgeneral relativity, itsgeneral relativity로 명확하게 치환하는 것이 CR이다.

수식으로 표현하면.

di=fcoref(di)d'_i = f_{\text{coref}}(d_i)

여기서 did_i는 원본 문서, did'_i는 공지시 해소가 적용된 문서, fcoreff_{\text{coref}}는 CR 함수다. 본 연구에서는 GPT-4o-mini를 CR 엔진으로 활용한다.


실험 설계: 8개 임베딩 모델 × 7개 LLM × 4개 데이터셋

이 연구의 강점은 광범위한 실험 설계에 있다.

임베딩 모델 (검색)

폴링 방식모델
Mean pooling (encoder)e5-large-v2, stella_en_400M_v5
[CLS] token pooling (encoder)gte-modernbert-base, bge-large-en-v1.5
Mean pooling (decoder)NV-Embed-v2, LLM2Vec
Last token pooling (decoder)gte-Qwen2-1.5B-instruct, Linq-Embed-Mistral

QA 생성 모델

Llama3.2-3B, Llama3.1-8B, Qwen2.5-3B, Qwen2.5-7B, gemma-2-2b, gemma-2-9b, Mistral-7B-Instruct-v0.3

데이터셋

  • BELEBELE: 다국어 독해(MRC) 태스크
  • SQuAD2.0: Wikipedia 기반 QA (F1 점수)
  • BoolQ: 예/아니오 QA (정확도)
  • NanoSCIDOCS: 과학 논문 검색 태스크

평가 지표

검색 성능은 nDCG@k\text{nDCG@}k (k=1,3,5k = 1, 3, 5)로, QA 성능은 로그우도 정확도(BELEBELE, BoolQ)와 F1 점수(SQuAD2.0)로 측정한다.


Figure 1: 공지시 해소가 가져오는 변화

공지시 해소 전후 비교 — NV-Embed-v2 유사도 점수와 Llama-3.2-1B-Instruct 응답 변화 예시

위 그림은 CR 적용 전후 변화를 극명하게 보여준다. 모호한 참조(GR, it, Its)를 명시적 표현(general relativity, the basketball, The basketball's)으로 치환하면 NV-Embed-v2의 유사도 점수가 올라가고, Llama-3.2-1B-Instruct의 응답 품질도 함께 향상된다.


실험 결과 1: 검색 성능 — Mean Pooling이 CR에서 가장 큰 혜택을 받는다

전체 검색 성능 (nDCG@k)

모델폴링@1 (원본)@1 (+CR)@3 (원본)@3 (+CR)@5 (원본)@5 (+CR)
e5-large-v2Mean0.9220.9230.9520.9480.9550.956
stella_en_400M_v5Mean0.9100.9200.9460.9500.9490.954
gte-modernbert-base[CLS]0.8920.8990.9320.9360.9370.940
bge-large-en-v1.5[CLS]0.9030.9120.9320.9380.9390.944
NV-Embed-v2Mean0.9590.9590.9770.9770.9780.977
LLM2VecMean0.9380.9410.9640.9650.9670.968
gte-Qwen2-1.5BLast0.9380.9400.9610.9590.9630.964
Linq-Embed-MistralLast0.9440.9420.9670.9670.9690.969

핵심 발견:

  • Mean pooling 모델들이 CR 적용 후 가장 명확한 성능 향상을 보인다. 특히 stella_en_400M_v5는 nDCG@1에서 +0.010 향상.
  • Last token pooling 모델들(Linq-Embed-Mistral)은 거의 변화 없거나 소폭 하락. Last token pooling은 문서 마지막 토큰에 집중하므로 전체 문맥의 명확성 향상을 충분히 활용하지 못하는 것으로 해석된다.
  • NV-Embed-v2처럼 이미 높은 성능을 보이는 decoder 기반 mean pooling 모델은 추가적인 CR 효과가 작다 — 천장 효과(ceiling effect) 때문이다.

Mean pooling이 CR에 더 잘 반응하는 이유: Mean pooling은 모든 토큰의 표현을 평균 내어 전체 문맥을 포착한다. 따라서 모호한 대명사가 명시적 명사구로 교체되면 전체 임베딩 공간에서 더 명확한 위치를 차지하게 된다.


실험 결과 2: QA 성능 — 소형 모델이 더 큰 혜택을 받는다

QA 성능 (CR·GPT-4o-mini 적용)

모델BoolQ (원본)BoolQ (+CR)BELEBELE (원본)BELEBELE (+CR)SQuAD (원본)SQuAD (+CR)
Llama3.2-3B0.76360.76420.81220.83890.64370.6888
Llama3.1-8B0.82020.82050.88330.91330.55830.7827
Qwen2.5-3B0.78010.78040.78000.85780.29720.5500
Qwen2.5-7B0.85990.85990.86220.90220.39800.7977
gemma-2-2b0.80060.80150.26330.30670.51850.6209
gemma-2-9b0.86450.86510.54110.54670.76460.8423
Mistral-7B0.83210.83490.85000.85110.40800.4396

놀라운 발견: Qwen2.5-7B의 SQuAD 성능

가장 극적인 변화는 Qwen2.5-7B의 SQuAD F1 점수다.

0.3980+CR0.7977(Δ=+0.3997)0.3980 \xrightarrow{+\text{CR}} 0.7977 \quad (\Delta = +0.3997)

원본 성능이 0.40에 불과했던 모델이 CR 적용 후 0.80으로 껑충 뛰어오른다. 거의 두 배 향상이다. 비교를 위해, CR 없이 Llama3.1-8B(더 큰 모델)의 SQuAD 성능은 0.5583에 불과하다. 소형 모델이 CR을 통해 더 큰 모델을 앞지르는 상황도 발생한다.

왜 소형 모델이 더 많이 이익을 얻을까?

저자들의 해석은 명확하다: 대형 모델은 자체적으로 공지시적 모호성을 처리하는 능력이 더 강하다. 하지만 소형 모델은 그 능력이 제한적이므로, CR이 그 간극을 메워주는 효과가 훨씬 크다.

  • BoolQ: 예/아니오 답변은 공지시 모호성에 덜 민감 → 전 모델 개선폭 미미
  • BELEBELE: 긴 문단 이해 필요 → 소형 모델에서 +0.08 수준의 큰 향상
  • SQuAD: 정확한 스팬 추출 필요 → 가장 극적인 향상

절제 연구: GPT-4o-mini 없이 Qwen2.5-7B로 CR 가능할까?

GPT-4o-mini를 CR 엔진으로 쓰는 건 비용이 발생한다. 저자들은 오픈소스 모델인 Qwen2.5-7B-Instruct로 대체 가능한지 실험했다.

QA 성능 비교

모델데이터셋원본CR·Qwen2.5-7BCR·GPT-4o-mini
Qwen2.5-3BBELEBELE0.78000.84890.8578
SQuAD0.29720.30230.5500
gemma-2-2bSQuAD0.51850.62150.6209
Mistral-7BSQuAD0.40800.57420.7396

검색 성능 비교

모델데이터셋@1 원본@1 CR·Qwen@1 CR·GPT-4o
stella_en_400M_v5BELEBELE0.9100.9200.920
LLM2VecBELEBELE0.9380.9400.941

결론.

  • 검색(retrieval) 성능에서는 Qwen2.5-7B CR과 GPT-4o-mini CR의 차이가 거의 없다. 비용 효율적인 오픈소스 모델로 충분히 대체 가능하다.
  • QA 성능에서는 GPT-4o-mini가 대부분 약간 앞서지만, Qwen2.5-7B도 원본 대비 유의미한 개선을 제공한다.
  • 특히 gemma-2-2b의 SQuAD 성능에서는 Qwen CR이 GPT-4o-mini CR을 약간 앞서는 경우도 있어, 무조건 GPT-4o-mini가 좋은 것은 아니다.

참조 복잡성 분석: 텍스트가 어떻게 변하는가

CR 적용 후 텍스트는 어떻게 변할까? 저자들은 데이터셋별로 상세 분석을 제공한다.

데이터셋총 단어 수 (원본)총 단어 수 (+CR)평균 대명사 청크 (원본)평균 대명사 청크 (+CR)
BELEBELE44,25846,3912.701.39
BoolQ320,991336,6732.361.24
SQuAD v2.0176,918184,3482.851.86
NanoSCIDOCS354,405362,1544.392.96

패턴이 일관적이다.

  1. 총 단어 수 증가 — 대명사가 명사구로 교체되면서 텍스트가 길어진다
  2. 대명사 청크 수 감소 — 참조 모호성이 실제로 줄어든다
  3. 명사 청크 수 소폭 증가 — 명시적 참조가 늘어난다

대명사 밀도 감소가 Mean pooling 임베딩 모델의 검색 성능 향상과 상관관계를 보인다. 대명사가 많을수록 임베딩이 더 많이 "희석"되기 때문이다.


실용적 시사점

이 연구의 결론은 RAG 시스템을 구축하는 실무자에게 명확한 가이드라인을 제공한다.

1. 검색 파이프라인에 CR 전처리 추가

Python
def preprocess_for_rag(documents, cr_model):
    return [cr_model.resolve(doc) for doc in documents]

2. 임베딩 모델 선택 시 폴링 방식 고려

Mean pooling 모델을 쓴다면 CR의 효과가 더 크다. Last token pooling 모델을 사용할 경우 CR 투자 대비 효과가 제한적일 수 있다.

3. 소형 LLM 사용 시 CR 효과 극대화

예산 제약으로 3B~7B 급 소형 모델을 사용한다면, CR 전처리로 훨씬 큰 모델과 유사한 성능을 얻을 수 있다. Qwen2.5-3B + CR은 Llama3.1-8B (CR 없음) 수준에 근접할 수 있다.

4. 오픈소스 CR 모델 활용

GPT-4o-mini 대신 Qwen2.5-7B-Instruct를 CR 엔진으로 활용하면 비용을 절감하면서도 검색 성능에서 동등한 결과를 얻을 수 있다.


결론

이 논문은 RAG 시스템의 성능을 저하시키는 공지시적 모호성이라는 간과된 문제를 체계적으로 분석했다. 주요 결론.

  1. CR은 검색 성능을 향상시킨다 — 특히 Mean pooling 임베딩 모델에서 효과적
  2. CR은 QA 성능을 향상시킨다 — 소형 모델일수록 더 극적인 효과 (Qwen2.5-7B: SQuAD F1 0.40 → 0.80)
  3. Mean pooling이 [CLS] 및 Last token pooling보다 CR 효과를 더 잘 활용
  4. Qwen2.5-7B로 GPT-4o-mini 수준의 CR 가능 — 비용 효율적 대안

단순한 전처리 단계 하나가 RAG 시스템의 전체 파이프라인 성능을 크게 끌어올릴 수 있다. 특히 소형 모델로 비용을 절감하면서도 높은 성능을 유지해야 하는 실무 환경에서, 공지시 해소는 과소평가된 강력한 도구다.

AI 솔루션이 필요하신가요?

cortexys.ai에서 맞춤 AI 개발 서비스를 확인하세요.

컨설팅 신청하기