Lost in the Middle 은 거대 언어 모델(LLM) 이 긴 입력의 양 끝 정보는 잘 찾고 가운데에 묻힌 정보는 자주 지나치는 현상이다. 2023년 넬슨 리우(Nelson Liu) 등의 동명 논문이 처음 정량적으로 측정해 보였고, 이후 긴 컨텍스트 모델 평가의 출발점이 됐다.
2024년 작은 사내 RAG(Retrieval-Augmented Generation, 외부 문서를 검색해서 그걸 보고 답을 만드는 방식) 프로젝트를 마무리하다 리랭킹(re-ranking) 을 찾아보던 중 이 개념을 처음 만났다. 모델이 받은 프롬프트 안에 정답 문장이 분명히 있는데도 답을 못 하는 일이 자꾸 생겼고, 처음엔 검색이 잘못된 줄 알았다. 정작 문제는 모델이 가운데에 놓인 정보를 지나친다는 데 있었다. 그 뒤로 컨텍스트 길이를 보는 시각이 조금 달라졌다.

원논문이 그린 두 갈래의 U자 곡선

긴 책을 한 번에 끝까지 읽는 학생을 떠올려 보자. 첫 장과 마지막 장은 또렷이 기억하는데, 가운데 챕터들은 흐릿하게 남는다. 사람만 그런 게 아니다. LLM 도 긴 입력을 받으면 똑같이 가운데를 흐려 놓는다는 사실이 2023년에 논문으로 정리됐다.
2023년 7월 넬슨 리우 등이 발표한 "Lost in the Middle: How Language Models Use Long Contexts" 논문(출처)이 이 현상을 처음 정량적으로 측정했다. 자연어처리 분야 학술지 TACL 에 게재됐고, 코드와 데이터는 깃허브 nelson-liu/lost-in-the-middle 에 공개돼 누구나 재현해 볼 수 있다.
멀티 도큐먼트 QA 가 그린 U자

실험 자체는 단순했다. 여러 문서를 모델에게 한꺼번에 입력으로 주고, 정답이 들어 있는 문서의 위치를 첫 번째 자리부터 마지막 자리까지 옮겨 가며 정답률을 쟀다.
정답이 맨 앞이나 맨 뒤일 때는 잘 맞혔지만, 가운데로 옮길수록 점수가 푹 꺼졌다. 그래프가 양 끝은 높고 가운데는 꺼지는 U자 모양으로 나왔다.
키-밸류 검색에서도 같은 모양이 나왔다
추론이 거의 들어가지 않는 단순한 과제, 즉 큰 사전에서 키 하나를 골라 그 값을 답하는 과제에서도 같은 U자가 반복됐다. 추론이 어려워서 그런 게 아니라, 가운데 위치의 정보를 꺼내 오는 일 자체를 모델이 어려워한다는 신호였다.
인코더-디코더는 조금 낫지만 한계는 같다
T5 같은 인코더-디코더 모델 — 입력을 한 번 요약·정리한 뒤 답을 만드는 구조 — 은 디코더-온리 모델(GPT 처럼 토큰을 하나씩 이어 붙여 답하는 구조) 보다 위치 변화에 덜 흔들렸다. 다만 학습 단계에서 본 시퀀스 길이를 넘어가면 역시 똑같이 무너졌다. 결국 한 아키텍처의 결함이라기보다 트랜스포머 계열 전반에 걸린 패턴이라는 결론이 자연스럽게 나왔다.
가운데가 흐려지는 이유 — 어텐션이 한 곳으로 몰린다

현재 LLM 은 거의 모두 트랜스포머(transformer) 라는 신경망 구조를 쓴다. 그 한복판에 어텐션(attention) 이라는 동작이 있는데, 가운데 정보를 지나치는 현상은 이 어텐션 안에서 시작된다.
어텐션 점수가 평탄해지는 일이 먼저 생긴다
어텐션은 입력을 잘게 쪼갠 단위, 즉 토큰(token) 들이 서로에게 얼마나 주목해야 하는지를 점수로 환산한다. 본래 서로 다른 토큰은 서로 다른 점수 패턴을 가져야 한다.
그런데 컨텍스트가 길어질수록 토큰들이 받는 점수가 비슷비슷해지는 일이 생긴다. 모델 입장에서 누구에게 집중해야 하는지 흐릿해진다는 뜻이다.
토큰의 표현 벡터가 점점 서로 닮아 간다
이 평탄화가 신경망 층마다 누적되면, 깊은 층으로 갈수록 토큰들이 들고 있는 정보가 한 점으로 수렴해 간다. 여러 색의 물감을 한 통에 부으면 결국 한 가지 갈색이 되듯, 토큰들의 색이 점점 비슷해진다는 뜻이다. 학술 용어로는 랭크 붕괴(rank-collapse) 라고 부른다(출처)
이렇게 되면 가운데에 묻힌 토큰은 양 끝의 강한 토큰들에게 자기 정보를 빼앗기듯 흐려진다. U자 곡선의 한 축이 여기서 나온다.
위치 인코딩의 외삽 실패가 또 한 축
여기에 위치 인코딩(positional encoding, 토큰의 순서를 모델에게 알려 주는 추가 신호) 자체의 문제가 겹친다. 모델이 학습 단계에서 본 적 없는 길이까지 들어가면 위치 정보가 흐트러진다. 두 갈래가 동시에 가운데를 흐리게 만든다.
스펙상 32K, 실제로 쓸 수 있는 건 8K — RULER 가 드러낸 격차

원논문이 나온 뒤 몇 년 사이 평가 도구가 한 단계씩 정교해졌다. 모델 카드(model card, 모델의 사양과 한계를 적어 둔 공식 설명서) 에 적힌 컨텍스트 길이가 그대로 믿을 만한 숫자가 아니라는 사실이 공식 평가로도 잇따라 확인됐다.
NIAH 는 첫 걸음일 뿐이다
니들 인 어 헤이스택(Needle in a Haystack, NIAH) 은 가장 널리 알려진 첫 평가다. 긴 입력 한가운데에 짧은 사실 하나를 심어 두고, 모델이 그걸 끄집어내는지 본다. 단순한 만큼 거의 모든 최신 모델이 만점에 가까운 점수를 받는다.
RULER 가 NIAH 만점의 거품을 걷어냈다
엔비디아 연구팀이 2024년에 공개한 룰러(RULER, ICLR 2024) 는 17개 모델을 4가지 카테고리·13개 태스크로 평가했다(출처) 결과는 제법 충격적이었다. NIAH 점수와 달리, 여러 정보를 동시에 추적하거나 종합해야 하는 태스크에서는 스펙상 최대 컨텍스트 길이의 절반 아래에서 이미 점수가 무너졌다.
논문이 강조하는 표현으로 옮기면, 모델이 스펙으로 내건 컨텍스트 길이와 실제로 의미 있게 쓸 수 있는 길이 사이에 큰 격차가 있다는 사실이 17개 모델 전반에서 관찰됐다.
NoLiMa 와 BABILong 이 더 깊은 시험을 던진다
NoLiMa(출처) 는 단어가 그대로 일치하는 검색이 아니라 의미만 같은 정보를 찾게 만든다. BABILong 은 긴 입력 안에서 다단계 추론을 시킨다. 둘 다 모델 카드에 적힌 숫자와 실제 사용성 사이의 거리를 더 크게 벌려 놓는 평가들이다.
사내 RAG 는 답을 보고도 답하지 않았다

2024년 작은 사내 RAG 프로젝트가 마무리되기 직전에 이상한 현상을 만났다. 사용자가 질문하면 검색은 정확히 됐고, 모델에게 들어가는 프롬프트 안에 정답 문장이 분명히 들어 있었다. 그런데도 모델은 "문서에서 찾을 수 없습니다" 라고 답하는 일이 잦았다.
답이 뒤죽박죽이 아니라, 답을 아예 안 했다
처음엔 환각(hallucination, 모델이 없는 사실을 그럴듯하게 만들어 내는 현상) 인 줄 알았다. 환각이라면 답을 만들어 내기라도 했을 텐데, 이쪽은 정반대였다. 답이 눈앞에 있는데도 모델이 단호하게 "없다" 고 단언했다.
검색 결과 10개를 다 넣어 줄 때 더 자주 그랬고, 상위 3개만 넣으면 잘 답했다. 원인을 한참 못 잡고 있었다.
리랭킹을 찾아보다 이 개념을 만났다
리랭킹은 검색이 1차로 가져온 문서들을 다시 정렬해서 핵심 문서를 가장 위로 올리는 단계다. 이 키워드를 검색하다 처음 lost in the middle 이라는 표현을 봤다. 검색이 정답 문서를 7번째 자리에 두면, 모델은 그걸 거의 무시한다는 얘기였다.
지금 우리가 겪던 게 정확히 이 패턴이었다. 컨텍스트 가운데에 묻힌 문서는 모델 입장에서 거의 없는 것과 비슷한 취급을 받고 있었다.
MS MARCO 크로스 인코더로 순서만 바꿨다
해결책은 의외로 단순했다. 검색 결과를 그대로 넘기지 않고 크로스 인코더(cross-encoder, 질문과 문서를 함께 입력으로 받아 적합도 점수를 매기는 작은 모델) 로 한 번 더 점수를 매겨 재정렬했다. 센텐스-트랜스포머스(sentence-transformers) 라이브러리에 들어 있는 cross-encoder/ms-marco-MiniLM-L-6-v2 — 마이크로소프트 검색 데이터셋 MS MARCO 로 학습된 가벼운 모델 — 을 썼다.
핵심 문서가 1~2번 자리로 올라오자 답을 안 하던 케이스가 눈에 띄게 줄었다. 모델을 바꾼 게 아니라 입력 순서만 바꿨을 뿐인데 출력 품질이 달라졌다.
요즘은 컨텍스트를 적게 넣는 쪽으로
최근 모델은 사정이 많이 다르다. 제미나이 3.1(Gemini 3.1)·지피티 5.5(GPT-5.5) 같은 최신 세대를 쓰면서 가운데를 지나치는 현상이 예전만큼 두드러지지는 않는다.
그래도 가능하면 컨텍스트를 많이 넣지 않으려 한다. 짧게 넣을수록 출력이 안정적이고 비용도 줄기 때문이다. 긴 컨텍스트가 곧 좋은 컨텍스트는 아니라는 감각이 그때 사내 RAG 의 경험에서 자리 잡았다.
결국 남는 건
긴 컨텍스트 모델이 컨텍스트를 다 잘 읽어 준다는 보장은 없다. 모델 카드의 숫자는 상한이고, 실제로 잘 쓰이는 영역은 그보다 좁을 수 있다.
가능하면 짧게 자르고, 핵심을 양 끝으로 옮기고, 리랭킹 한 단계를 한 번 더 끼워 본다. 이 세 동작이 모델 한 세대를 건너뛰는 것보다 더 큰 차이를 만들 때가 많았다.