Intelligence Architect's Log

수십 쪽 넘는 문서만 넣으면 바보가 된다고요? 몬이쌤이 알려주는 AI 컨텍스트 손실(Lost in the Middle) 탈출법

딥 스카이블루 테일러드 블레이저를 입은 몬이쌤이 대용량 문서 처리 시 발생하는 AI 에이전트의 중간 내용 유실 현상(Lost in the Middle)을 해결하고 계층적 세그먼트 인덱싱 파이프라인을 구축하는 방법을 소개하는 썸네일 이미지

"실전 자동화 파이프라인을 구축해 운영하던 중, 처리해야 할 문서나 수집 데이터의 길이가 조금만 길어지면 에이전트가 문맥의 중간 내용을 무시하거나 엉뚱한 결론을 내놓는 컨텍스트 손실 현상 때문에 밤샘 수정 작업을 반복해야 했습니다."

AI 에이전트 시스템에 수십 쪽짜리 PDF 문서나 긴 대화 이력, 혹은 복잡한 규정집을 입력 데이터로 밀어 넣어 자동화 처리를 시도하다 보면 개발자를 가장 당혹스럽게 만드는 현상이 있습니다. 바로 '긴 컨텍스트 유실(Lost in the Middle) 및 지능 저하 현상'입니다.

LLM의 컨텍스트 창(Context Window) 스펙이 수십만 토큰으로 늘어났다고 해서, 들어간 데이터의 모든 내용을 똑똑하게 기억하고 이해하는 것은 아닙니다. 실제로는 프롬프트의 맨 앞부분과 맨 뒷부분만 강하게 기억하고, 정작 중요한 핵심 정보가 수천 줄의 중간 데이터 속에 묻히면 에이전트가 이를 전혀 찾지 못하고 건너뛰어 버리는 심각한 허점이 존재합니다. 오늘은 제가 직접 겪었던 '중간 데이터 유실로 인한 잘못된 자동 분석 잔혹사'와 이를 완벽하게 해결해 낸 '슬라이딩 윈도우 & 세그먼트 인덱싱(Segment Indexing) 파이프라인' 구축기를 이야기해 볼게요.

1. "방대한 문서를 다 넣어줬는데 왜 핵심을 못 찾지?" - 컨텍스트 손실의 비극

기업의 긴 연간 사업 보고서와 내부 운영 규정집을 에이전트에 한꺼번에 집어넣고, "올해 특정 사업 부문의 특이사항과 예산 집행 지침을 정리해 줘"라는 추출 업무를 맡겼을 때였습니다. 모델의 입력 한도 용량이 충분했기에 아무런 의심 없이 파일 전체 텍스트를 프롬프트 중간에 직렬로 연결해 넘겨주었지요.

하지만 출력된 결과물은 기가 막혔습니다. 문서의 가장 앞부분에 나온 개요와 맨 끝부분에 나온 결론만 대충 조합했을 뿐, 보고서 45쪽 중간에 명확히 명시되어 있던 예산 집행 규칙과 주의사항은 완벽하게 누락되어 있었기 때문입니다. 정작 업무에 꼭 필요한 알맹이 정보가 중간 데이터의 거대한 바다속에 침몰해 버린 셈이죠.

AI의 거대한 컨텍스트 창 스펙만 믿고 긴 텍스트를 통째로 넘겨버리면, LLM의 주의력(Attention)이 중앙부에서 급격히 떨어져 치명적인 판단 오류를 만든다는 사실을 뼈저리게 깨달았습니다.

2. 시행착오: 무작정 텍스트를 짧게 조각(Chunk) 내어 넘겼더니...

중간 내용 누락을 막기 위해, 다음으로 시도한 방법은 텍스트를 500자 단위로 무작정 잘게 조각(Chunking) 내어 검색(RAG)을 거쳐 에이전트에 전달하는 방식이었습니다.

그러나 이번엔 '문맥 끊김으로 인한 정보의 파편화'라는 다른 문제가 터졌습니다. 자라난 문장들이 앞뒤 문맥을 잃어버리는 바람에, 에이전트는 "이것은 해당 규정에 따른다"라는 문장에서 '이것'과 '해당 규정'이 무엇을 의미하는지 파악하지 못해 완전히 왜곡된 요약본을 만들어냈던 것입니다. 너무 긴 텍스트도 문제지만, 문맥이 끊긴 파편화된 데이터 역시 에이전트를 바보로 만드는 원인이었던 것이지요.

💡 몬이쌤의 생각: 학원에서 아이들에게 두꺼운 위인전 한 권을 통째로 주고 "중간에 나오는 사건 다 외워봐"라고 하면 기억하지 못합니다. 그렇다고 책을 한 쪽씩 찢어서 보여주면 전체 줄거리를 이해하지 못하죠. 장마다 주요 요약표(목차)를 먼저 보여주고, 필요한 장을 펼쳐 앞뒤 맥락과 함께 읽게 만드는 '목차 기반 읽기 전략'이 필요한 이유입니다.

3. 해결책: '슬라이딩 오버랩 & 계층적 세그먼트(Hierarchical Segment)' 3단계 프로토콜

긴 문맥 속에서도 단 하나의 핵심 지식도 놓치지 않고 완벽하게 추론할 수 있도록, 저는 파이프라인 전반에 '3단계 계층적 컨텍스트 인덱싱 & 라우팅 아키텍처'를 구축했습니다.

  1. 1단계 [슬라이딩 오버랩 청킹(Sliding Overlap Chunking)]: 긴 문서를 분할할 때 문맥이 끊어지지 않도록, 앞뒤 조각이 20~30%씩 서로 중섭(Overlap)되도록 슬라이딩 기법을 적용했습니다. 이를 통해 문장과 단락 사이의 맥락 고리가 완벽히 유지되었습니다.
  2. 2단계 [계층적 요약 인덱스 구축(Hierarchical Summary Indexing)]: 전체 문서에 대한 1차 대형 요약(Parent) 노드를 만들고, 그 아래에 상세 슬라이딩 조각(Child) 노드를 나무 구조로 연결했습니다. 에이전트는 먼저 전체 지도를 보고 관련 있는 세부 단락으로 정확히 접근합니다.
  3. 3단계 [양끝 배치 프롬프트 재구성(Needle-in-a-Haystack Optimization)]: 에이전트 추론 시, 가장 결정적인 추출 지시문과 추출된 핵심 데이터 조각을 프롬프트의 맨 앞(Top)과 맨 뒤(Bottom)에 배치하여 LLM의 주의력(Attention) 집중도를 극대화했습니다.

4. 결과: 긴 문서 핵심 추출 정확도 99% 달성 & 정보 누락 0건!

계층적 세그먼트 인덱싱과 양끝 배치 프로토콜을 도입한 이후, 100쪽이 넘는 방대한 분량의 복잡한 서류나 대용량 데이터가 입력되더라도 중간에 위치한 미세한 핵심 정보까지 100% 완벽하게 찾아내 분석해 냈습니다!

더 이상 중간 내용이 무시되거나 왜곡된 가짜 결론이 나오는 일이 완전히 사라졌고, 에이전트는 문서의 길이와 상관없이 항상 배포 첫날처럼 정교하고 안정적인 분석 성능을 보여주었지요.

성공적인 AI 에이전트 자동화 시스템을 만든다는 것은 단지 모델의 입력 용량 크기에 의존하는 것이 아닙니다. '방대한 입력 데이터 속에서도 LLM이 주의력을 잃지 않도록 문맥을 계층화하고, 가장 중요한 핵심 지식을 시각적/구조적으로 부각시켜주는 정교한 컨텍스트 전달 기술'이 핵심입니다.

여러분의 AI 에이전트도 긴 글이나 문서를 입력했을 때 중간 내용을 자꾸 까먹거나 엉뚱한 소리를 한다면, 무작정 프롬프트 길이만 늘리지 말고 슬라이딩 오버랩과 계층적 인덱싱 파이프라인을 도입해 보세요. 거대한 데이터 속에서도 보석 같은 정답을 명확히 집어내는 명품 에이전트를 완성하게 되실 겁니다. 

같이 보면 좋은 글

PREV REPORT 이전 리포트 읽기