중간에서 찾기: 위치적 어텐션 편향 보정을 통한 롱 컨텍스트 RAG 개선
저는 Liu 등이 발견한 "중간 손실(lost-in-the-middle)" 문제에 대해 글을 쓴 이후로 줄곧 이 문제에 대해 고민해 왔습니다. LLM에 긴 컨텍스트를 전달하면 중간에 묻혀 있는 증거를 신뢰성 있게 무시한다는 내용이었죠. "중간에서 찾기: 위치적 어텐션 편향 보정을 통한 롱 컨텍스트 활용 능력 개선(Found in the Middle: Calibrating Positional Attention Bias Improves Long Context Utilization)" (Hsieh et al., ACL Findings 2024, arXiv:2406.16008)은 제가 본 것 중 가장 직접적이고 실용적인 해결책을 제시합니다. 이는 학습이 필요 없는 추론 시점 보정 기술로, 어텐션 가중치에서 모델의 위치적 편향을 빼줌으로써 RAG 정확도를 최대 15% 포인트까지 회복시킵니다.
논문 요약
Hsieh 등 은 진단적 관찰에서 시작합니다. 롱 컨텍스트로 학습된 LLM이라 할지라도 지속적인 U자형 어텐션 패턴을 보인다는 점입니다. 입력의 시작과 끝에 있는 토큰은 관련성 여부와 관계없이 불균형적으로 높은 어텐션을 받는 반면, 중간에 있는 토큰은 체계적으로 과소평가됩니다. 저자들은 이를 별개의 현상으로 취급하기보다 "중간 손실"로 인한 정확도 저하와 경험적으로 연결시켰습니다.
그들의 해결책은 개념적으로 매우 우아합니다. 어텐션을 두 개의 가산적 구성 요소인 관련성(우리가 원하는 것)과 위치적 편향(원치 않는 것)으로 분해합니다. 편향 항을 격리하기 위해, 정보가 없는 채우기 내용인 "더미(dummy)" 문서를 각 위치의 동일한 컨텍스트에 통과시키고 그 결과로 나타나는 어텐션 분포를 기록합니다. 이 더미 문서 어텐션은 순수한 위치적 사전 확률(prior)에 근접합니다. 실제 어텐션 점수에서 이를 빼면 실제 관련성을 더 잘 반영하는 잔차가 남습니다.
보정된 어텐션 = Attn(문서, k) − Attn(더미, k)
이렇게 재조정된 점수는 최종 답변 생성 단계 이전에 검색된 문서를 재순위화(re-rank)하거나 가중치를 재조정하는 데 사용됩니다. 결정적으로, 추가 학습이 필요하지 않습니다. 보정은 추론 시점에 마지막 16개의 디코더 레이어와 모든 어텐션 헤드에 적용됩니다. 비용은 K가 검색된 문서의 수일 때 O(K)만큼의 추가 순전파(forward pass)가 발생하며, 이는 무시할 수 없지만 예측 가능한 수준입니다.
핵심 아이디어
- U자형 어텐션 편향은 모델 아키텍처에 내재되어 있으며, 롱 컨텍스트 목적 함수로 명시적으로 학습된 모델에서도 지속됩니다.
- 동일한 검색 컨텍스트를 통해 더미(빈/노이즈) 문서를 통과시키면 위치적 사전 확률이 격리됩니다. 이를 빼면 미세 조정 없이도 편향을 제거할 수 있습니다.
- NaturalQuestion(K=20, 정답 문서가 중간에 위치)에서의 Recall@3는 보정 후 20.52%에서 68.32%로 급증하며, K=10일 때는 36.38%에서 74.27%로 상승합니다.
- 정답 문서가 컨텍스트 중간에 있을 때 엔드투엔드 QA 정확도가 6~15% 포인트 향상되며, 24개의 실험 설정 중 22개에서 개선이 확인되었습니다.
- 이 방법은 기본 어텐션, 쿼리 생성 순위화, 관련성 생성 프롬프팅, 어텐션 정렬(Peysakhovich & Lerer 2023), 프롬프트 재정렬, LongLLMLingua-rk 등 6가지 비교 기준 모델보다 우수한 성능을 보였습니다.
- 이 방법은 NaturalQuestion(위키피디아 기반 2,655개 실제 쿼리) 및 SynthWiki(GPT-4가 생성한 990개 합성 엔트리)에서 평가되었습니다.
성과와 한계점
핵심 결과는 매우 인상적이며 신뢰할 만합니다. 컨텍스트 중간에 정답 문서가 있을 때 Recall@3가 20.52%에서 68.32%로 벌어지는 격차는 정밀 조사 시 사라질 숫자가 아닙니다. 이는 어텐션이 어떻게 분포되는지에 대한 실질적인 지표를 측정하고 있습니다. 학습이 필요 없는 설계는 진정한 실용적 이점입니다. 모델 가중치를 건드리지 않고도 기존의 모든 RAG 파이프라인 위에 바로 적용할 수 있기 때문입니다.
하지만 몇 가지 의문점도 있습니다. 첫째, "더미 문서" 접근 방식은 위치적 편향이 대략 위치별로 분리 가능하고 가산적이라고 가정하는데, 이는 저자들 스스로도 잠재적으로 너무 단순화된 선형 분해일 수 있다고 지적한 부분입니다. 실제 어텐션 편향은 콘텐츠와 비선형적인 방식으로 상호작용할 수 있습니다. 둘째, O(K)의 추가 순전파 비용을 "수용 가능한" 수준으로 평가했지만 지연 시간이나 비용에 대한 벤치마크는 수행되지 않았습니다. K=20인 운영 시스템에서 쿼리당 1번이 아닌 21번의 순전파를 실행해야 합니다. 수백 개의 트랜잭션을 분류하는 Beancount 에이전트에게 이 승수는 매우 중요합니다.
셋째, 가장 흥미로운 한계점인데, 저자들은 특정 작업에서는 위치적 편향이 실제로 유용할 수 있다고 언급합니다. 예를 들어, 최신성 편향(recency bias)은 모델이 오래된 항목보다 최근의 원장 항목에 올바르게 가중치를 두게 만드는 요인이 될 수 있습니다. 편향을 무차별적으로 제거하면 위치가 유효한 신호인 작업에서 손해를 볼 수 있습니다. 이 점은 인정되었지만 연구되지는 않았습니다.
마지막으로, 실험에는 NaturalQuestion과 합성 데이터셋이 사용되었습니다. 조밀한 표, 수년간의 공시 자료, 반복적인 구조의 원장 항목과 같은 금융 특화 문서는 범용 위키피디아 구절과는 매우 다릅니다. 이 보정 기술이 금융 RAG에서 작동할 것이라고 주장하기 전에 해당 분포에서 검증이 필요합니다.
금융 AI에서의 중요성
직접적인 연결 고리는 분명합니다. DocFinQA 이후의 모든 기록은 동일한 문제를 맴돌고 있습니다. Beancount 에이전트가 "3월 내역을 은행 명세서와 대조해줘"와 같은 질문에 답하기 위해 20개의 관련 원장 항목을 가져올 때, 검색된 창의 중간에 있는 항목은 컨텍스트의 상단과 하단에 있는 항목에 비해 체계적으로 덜 주목받게 됩니다. 이는 검색 실패가 아니라, 아무리 검색 순위화 기능을 개선해도 해결되지 않는 생성 측면의 실패입니다.
"중간에서 찾기" 보정은 기본 모델의 재학습 없이도 모든 원장 QA 파이프라인의 생성 단계 내부에 직접 적용할 수 있는 그럴듯한 완화책입니다. O(K) 비용 문제는 현실적이지만 관리 가능합니다. 적당한 크기의 모델을 사용한 20개 문서 검색 창은 여전히 실용적인 범위 내에 있습니다. 실제 배포 전에 확인하고 싶은 것은 Beancount 구조의 데이터에서의 검증입니다. 위치 보정이 균일하게 도움이 되는지, 아니면 최근 트랜잭션을 과거보다 더 신뢰하게 만드는 최신성 신호를 의도치 않게 억제하는지는 확인이 필요합니다.
어텐션 메커니즘이 콘텐츠의 관련성과 무관하게 위치적 사전 확률을 인코딩하며, 이러한 사전 확률을 재학습 없이 보정할 수 있다는 광범위한 원칙은 기억해 둘 가치가 있습니다. 이는 토큰 빈도 편향, 입력 길이 정규화, 생성 시의 장황함 편향(verbosity bias)과 같은 다른 편향에 대한 유사한 보정의 가능성을 열어줍니다.
더 읽어보기
- "Mitigate Position Bias in LLMs via Scaling a Single Hidden States Channel" (arXiv:2406.02536, ACL Findings 2025) — 어텐션 점수를 빼는 대신 단일 은닉 상태 차원을 스케일링하는 방식을 제안합니다. "중간에서 찾기" 방식과 직접 비교해 볼 가치가 있습니다.
- "Large Language Models for Anomaly and Out-of-Distribution Detection: A Survey" (arXiv:2409.01980, NAACL 2025) — 다음 읽기 목록입니다. AnoLLM, CausalTAD, AD-LLM의 흐름을 통합된 분류 체계로 연결합니다.
- Liu et al., "Lost in the Middle: How Language Models Use Long Contexts" (arXiv:2307.03172, TACL 2023) — "중간에서 찾기"가 대응하고자 하는 원래의 진단 연구로, 필수적인 배경 지식을 제공합니다.
