Lost in the Middle: LLM의 위치 편향과 금융 AI에 미치는 영향
검색 기반 파이프라인과 긴 컨텍스트 LLM 모두 123K 토큰 컨텍스트의 SEC 공시 자료에서 무너졌던 DocFinQA 사례를 되돌아볼 때, 제가 남겨두었던 질문은 '왜'였습니다. Liu 등(TACL 2024, arXiv:2307.03172)의 이 논문은 그 메커니즘에 대한 해답을 제시하며, 실패 양상이 제가 예상했던 것보다 더 단순하고 고질적이라는 사실을 보여줍니다.
논문 요약
Nelson F. Liu 등이 집필한 "Lost in the Middle: How Language Models Use Long Contexts"는 두 가지 목표 실험을 수행합니다. 하나는 NaturalQuestions-Open에 대한 다중 문서 질의응답(검색된 문서 10개, 20개, 30개 사용)이고, 다른 하나는 합성 키-값(key-value) 검색(75개, 140개, 300개 쌍 사용)입니다. 각 실험에서 연구진은 다른 모든 조건은 고정시킨 채 관련 문서나 키-값 쌍이 입력 컨텍스트의 어디(시작, 중간, 끝)에 위치하는지를 체계적으로 변화시켰습니다. 결과는 명확했습니다. 성능은 컨텍스트 중간에서 최저점을 찍는 U자형 곡선을 그리며, 이 곡선은 테스트된 모든 모델에서 나타났습니다.
주요 개념
- U자형 현상은 실재하며 일관적입니다. 20개 문서 QA 설정에서 첫 번째 위치에서의 성능은 약 75%였으나, 10번째 위치에서는 약 55%로 저하되었다가 20번째 위치에서 다시 약 72%로 회복되었습니다. 양 끝과 중앙 사이에 약 20포인트의 격차가 발생한 것입니다.
- 모든 모델이 동일한 패턴을 따릅니다. 테스트된 모델은 폐쇄형과 오픈 소스, 소형과 대형을 망라합니다. GPT-3.5-Turbo(4K 및 16K), GPT-4, Claude-1.3(8K 및 100K), MPT-30B-Instruct, LongChat-13B가 포함되었습니다. 확장된 컨텍스트 창을 강점으로 내세운 모델들을 포함하여 모든 모델에서 U자형 곡선이 나타났습니다.
- Claude-1.3-100K조차 예외가 아닙니다. 100K 컨텍스트 변체도 다른 모델들과 마찬가지로 동작했습니다. 긴 컨텍스트 창이 있다고 해서 모델이 실제로 그 전체를 균일하게 주의(attention) 깊게 살피는 것은 아닙니다.
- 폐쇄형 문서(closed-book) 기준선은 냉혹한 하한선을 제시합니다. 문서가 없는 GPT-3.5-Turbo는 NaturalQuestions의 56.1%를 맞혔고, 관련 문서 하나에만 접근할 수 있을 때는 88.3%를 기록했습니다. 그러나 20개 문서 설정의 최악인 중간 위치에서는 성능이 폐쇄형 기준선 아래로 떨어졌습니다. 즉, 컨텍스트를 더 많이 추가하는 것이 오히려 독이 된 셈입니다.
- 인코더-디코더 모델(Flan-T5-XXL, Flan-UL2)은 훈련 길이 내에서는 더 견고하지만, 컨텍스트가 이를 초과하면 다시 성능이 저하됩니다. 아키텍처의 차이가 영향을 미치지만, 규모가 커지면 둘 다 성능이 떨어지는 것은 마찬가지입니다.
- 근본 원인은 인과적 어텐션 마스킹(causal attention masking)입니다. 각 토큰은 이전 토큰에만 주의를 기울일 수 있으므로, 맨 앞의 위치는 중간 위치보다 모델 전체에서 더 많은 총 어텐션 가중치를 축적하게 됩니다. 또한 최신성 효과(recency effects)로 인해 컨텍스트의 끝부분도 주의를 더 많이 받게 됩니다.
유효한 점과 그렇지 않은 점
이 논문의 실험 설계는 훌륭할 정도로 깔끔합니다. 위치가 유일하게 조작된 변수이고, 작업은 표준 벤치마크이며, 결과는 광범위한 모델 제품군에서 재현되었습니다. 핵심 결과에 대해서는 이견의 여지가 없습니다.
다만 키-값 검색 작업을 실제 사용 사례의 유의미한 대리 지표로 설정한 프레임워크는 다소 설득력이 떨어집니다. UUID 대 UUID 조회는 모델이 암기된 문자열을 그대로 따라 할 수 있는지를 테스트하는 것이지, 추론이 필요한 작업을 수행할 수 있는지를 테스트하는 것이 아닙니다. 여기서도 U자형 곡선이 나타난다는 점은 위치 편향 주장을 강화하지만, 한편으로는 논문이 '정확한 일치(exact-match) 작업에서의 검색 정확도'와 '관련 구절에 대한 추론 품질'이라는 두 가지 서로 다른 현상을 혼동하고 있다는 의미이기도 합니다. 관련 문서가 최종 답변을 내기 전 다단계 추론을 요구할 때 U자형 곡선이 더 악화되는지 혹은 개선되는지를 알고 싶어지는 대목입니다.
또한 저자들이 어느 정도 인정하면서도 해결하지 못한 공백이 있습니다. 이들은 지시어 미세 조정(instruction fine-tuning)이나 RLHF가 위치 민감도를 변화시키는지 테스트하지 않았고, 단지 더 큰 컨텍스트 창의 영향만을 확인했습니다. 근본 원인이 아키텍처(인과적 마스킹)에 있다는 점을 감안할 때 지시어 튜닝이 이를 해결하지 못할 것으로 의심되지만, 논문에서 이를 확증하지는 않았습니다.
금융 AI에 이것이 중요한 이유
이 논문은 제가 현장에서 계속 접하는 실증적 패턴에 대한 기계적인 설명을 제공합니다. DocFinQA는 긴 SEC 공시 자료에서 무너졌습니다. IRCoT와 FLARE는 모두 여러 구절을 검색하여 추론 전에 이를 연결(concatenate)합니다. 제가 살펴본 금융 컨텍스트의 모든 RAG 파이프라인은 검색된 구절을 순차적으로 프롬프트에 집어넣고 모델이 적절한 구절에 주의를 기울이기를 기대합니다.
Beancount 에이전트에게 주는 시사점은 구체적입니다. 에이전트가 컨텍스트로 10개의 장부 항목(ledger entries)을 가져온다면, 3~7번째 위치에 있는 항목은 무시되거나 환각(hallucination)이 발생할 위험이 가장 큽니다. 이는 검색의 문 제가 아니라 제시(presentation)의 문제입니다. 이 논문으로부터 도출할 수 있는 대응책은 두 가지입니다. 가장 진단적으로 가치 있는 항목을 맨 앞(또는 맨 뒤)에 배치하거나, 아예 연결하지 않고 한 번에 하나의 구절에 대해서만 추론하게 하는 것입니다.
또한 이 결과는 긴 컨텍스트 LLM에 대한 서사를 복잡하게 만듭니다. 매 분기마다 새로운 모델이 더 큰 컨텍스트 창을 발표합니다. 하지만 이 논문은 증거를 컨텍스트 전체에 균등하게 분산시킨다면 창의 길이가 생각만큼 중요하지 않을 수 있다고 말합니다. 관련 거래 내역을 60K 위치에 묻어버리는 128K 컨텍스트 모델은 정확히 필요한 구절만 검색하는 4K 컨텍스트 모델보다 성능이 떨어집니다.
라이트백(write-back) 안정성 측면에서도 우려되는 점이 있습니다. 모델에게 장부 세션을 요약하도록 요청했는데, 관련 "이 거래를 게시하지 마시오"라는 정책 규칙이 긴 시스템 프롬프트 중간에 나타난다면, 모델은 그 규칙을 읽지 않은 것처럼 행동할 수 있습니다.
더 읽어보기
- "Found in the Middle: How Language Models Use Long Contexts Better via Plug-and-Play Positional Encoding" (Zhang et al., arXiv:2403.04797) — RoPE 스케일링을 통한 훈련 없는 수정안인 Ms-PoE를 제안하며, Zero-SCROLLS에서 최대 3.8포인트 개선을 통해 U자형 곡선 문제를 직접 해결한다고 주장합니다.
- "Never Lost in the Middle: Mastering Long-Context Question Answering with Position-Agnostic Decompositional Training" (arXiv:2311.09198) — 반대의 접근 방식을 취하여 모델이 명시적으로 위치와 무관하게 학습되도록 훈련합니다. Ms-PoE와의 비교를 통해 미세 조정과 추론 시점의 기교 중 어느 것이 더 나은 수단인지 명확히 해줍니다.
- "Mitigate Position Bias in Large Language Models via Scaling a Single Dimension" (arXiv:2406.02536) — 편향을 유발하는 특정 위치 숨겨진 상태(positional hidden states) 차원을 식별하고 재학습 없이 이를 스케일링합니다. 현재까지 제안된 가장 정밀한 수정 방식이며, 재학습 없이 기존 모델을 배포하는 데 유용합니다.
