14. 긴 컨텍스트와 중간 소실
- "중간 소실(lost in the middle)" 현상과 그 실무적 함의를 안다
- 자료의 배치 순서가 왜 결과를 바꾸는지 이해한다
- 긴 컨텍스트에서 핵심 정보를 살리는 배치·질문 전략을 익힌다
같은 정보, 다른 위치, 다른 결과
12·13장에서 "무엇을 넣을까"를 다뤘다면, 이 장은 "어디에 둘까"입니다. 놀랍게도, 같은 정보라도 긴 컨텍스트의 어느 위치에 두느냐에 따라 모델의 활용도가 달라집니다.
이 현상을 흔히 중간 소실(lost in the middle)이라 부릅니다. 긴 컨텍스트의 한가운데에 둔 정보는, 맨 앞이나 맨 뒤에 둔 정보보다 활용도가 떨어지는 경향이 관찰됩니다. 모델이 시작과 끝에 상대적으로 더 주의를 기울이고, 중간을 흘리기 쉽다는 것입니다.
flowchart LR
subgraph CTX["긴 컨텍스트"]
start["앞부분<br/>주의 높음"]
mid["중간<br/>주의 낮음 ⚠️"]
end1["뒷부분<br/>주의 높음"]
end
classDef high fill:#dcfce7,stroke:#22c55e,color:#14532d
classDef low fill:#fee2e2,stroke:#ef4444,color:#7f1d1d
class start,end1 high
class mid low
📌 핵심: 긴 컨텍스트에서 가장 중요한 정보는 한가운데 묻지 마세요. 앞이나 뒤, 특히 질문과 가까운 곳에 두는 것이 안전합니다.
왜 이런 일이 — 원리
4장의 "유한한 attention 예산"으로 설명됩니다. 모델은 컨텍스트의 모든 위치에 균일하게 주의를 분배하지 못합니다. 그 분배가 위치에 따라 편향되어 있고, 특히 길이가 길수록 중간 부분이 손해를 봅니다. 이는 모델이 게을러서가 아니라, 긴 시퀀스를 처리하는 메커니즘의 구조적 경향입니다.
여기에 더해, 일부 연구·실무 보고는 추론 품질이 기술적 최대 길이보다 훨씬 못 미치는 지점부터 떨어지기 시작한다고 말합니다. 즉 윈도우에 들어간다고 모두 동등하게 활용되는 게 아닙니다(12장).
⚠️ 흔한 실수·미신: "윈도우 한도 안에 들어가면 모델이 다 똑같이 본다"는 가정은 틀립니다. 한도는 담을 수 있는가의 문제이고, 중간 소실은 담은 것을 잘 쓰는가의 문제입니다. 둘은 별개입니다.
실무 전략 1: 중요한 것을 끝(또는 앞)에
가장 직접적인 대응은 배치입니다. 핵심 지시·핵심 자료·핵심 질문을 중간에 묻지 말고 가장자리로 옮기세요.
특히 여러 가이드가 공통으로 권하는 패턴: 자료를 먼저 주고, 질문을 맨 끝에. 한 제공자(Google) 가이드는 "구체적 질문을 데이터 컨텍스트 뒤, 맨 끝에 두라"고 명시합니다. 모델이 자료를 다 읽은 직후 질문을 만나, 방금 본 내용을 신선하게 활용하도록 하는 것입니다.
권장 배치 ✅ [배경·자료를 먼저] <자료> ...긴 자료... </자료> [질문은 맨 끝에] 위 자료에 근거해, 환불 절차를 3단계로 요약해줘.
💡 팁: 반대로 시스템 프롬프트의 핵심 규칙이나 역할은 맨 앞이 자연스럽습니다. 정리하면, 변하지 않는 지시·역할은 앞에, 작업 대상 자료는 가운데, 구체적 질문·지시는 뒤에 — 이렇게 "중요한 것을 양 끝에" 배치하는 것이 안전한 기본형입니다.
실무 전략 2: 긴 자료엔 "길잡이"를 달기
자료가 길어 어쩔 수 없이 중간에 중요한 내용이 들어간다면, 모델이 그것을 찾도록 도울 수 있습니다.
- 질문에서 위치를 지목: "자료의 '환불' 섹션을 중심으로 답해줘"
- 자료에 구조 부여: 11장의 구분자·소제목으로 자료를 구획해, 모델이 해당 부분을 식별하기 쉽게
- 핵심을 별도로 발췌: 긴 자료를 다 넣되, 정말 중요한 한 문단은 질문 근처에 한 번 더 요약해 두기
[길잡이 부여 예] <전체자료>...긴 매뉴얼...</전체자료> <핵심발췌> (특히 주목할 환불 조항: 구매 후 14일 이내, 미개봉 시 전액 환불) </핵심발췌> 질문: 20일 전 구매한 미개봉 상품, 환불 가능한가?
실무 전략 3: 애초에 짧게 — 가장 근본적인 해법
중간 소실의 가장 확실한 대응은, 13장으로 돌아가 컨텍스트 자체를 줄이는 것입니다. 중간에 묻힐 만큼 길지 않다면 중간 소실도 없습니다. 긴 자료를 통째로 넣고 배치를 고민하기 전에, "이 자료를 핵심만 추리면 안 되나?"를 먼저 물으세요.
🧪 직접 검증법: 긴 자료의 중간쯤에 특정 사실(예: "담당자는 김OO")을 심어두고, 끝에서 그걸 물어보세요. 모델이 자주 놓친다면 중간 소실을 직접 확인한 것입니다. 그 사실을 자료 끝으로 옮기거나 질문 근처에 발췌해 두면 적중률이 오르는지 비교해보세요.
모델마다 정도가 다르다
중간 소실의 정도는 모델·버전마다 다릅니다. 긴 컨텍스트 처리에 특화된 최신 모델은 이 문제가 덜할 수 있습니다. 하지만 "최신 모델이니 괜찮겠지"라고 가정하지 말고, 길고 중요한 작업이라면 직접 검증하세요.
🔧 개발자 노트: 긴 문서 다수를 다루는 시스템(RAG 등)에서는, 검색된 문단을 어떤 순서로 배치할지가 성능에 영향을 줍니다. 관련성 높은 문단을 양 끝(특히 질문 직전)에 배치하는 재정렬(re-ranking) 전략이 쓰입니다. 또한 한 번에 다 넣는 대신, 긴 작업을 여러 단계로 쪼개 각 단계에 필요한 부분만 주는 방식(5부 프롬프트 체이닝, 13장 select 전략)이 중간 소실과 attention 분산을 동시에 완화합니다.
이 장에서 배운 것
- 중간 소실은 긴 컨텍스트의 한가운데 정보가 양 끝보다 덜 활용되는 경향으로, 유한한 attention 예산의 위치 편향에서 비롯된다.
- 윈도우 한도 안에 들어가는 것과 그것이 잘 활용되는 것은 별개 문제다.
- 핵심 정보·질문은 중간에 묻지 말고 가장자리에 둔다. "변하지 않는 지시는 앞, 자료는 가운데, 구체적 질문은 뒤"가 안전한 기본형이다.
- 어쩔 수 없이 중간에 중요한 내용이 있으면 질문에서 위치를 지목하거나, 구조를 부여하거나, 핵심을 질문 근처에 발췌한다.
- 가장 근본적 해법은 컨텍스트를 애초에 짧게 만드는 것이다. 정도는 모델마다 다르니 중요한 작업은 직접 검증한다.
✍️ 확인 문제
- "긴 자료를 넣었는데 모델이 중간에 있는 중요한 조건을 자꾸 놓친다." 이 현상의 이름과 원인, 그리고 두 가지 대응책을 적어보세요.
- 다음 두 배치 중 어느 것이 더 안전한지 고르고 이유를 설명해보세요.
- (a) 질문 → 긴 자료 → (끝)
- (b) 긴 자료 → 질문 → (끝)
- (실습) 20페이지 계약서에서 "위약금 조항"에 대해 질문하려 합니다. 중간 소실을 완화하는 세 가지 전략(배치·길잡이·축소)을 각각 어떻게 적용할지 구체적으로 적어보세요.
다음 → 15. 대화 누적과 컨텍스트 관리
이전 ← 13. 무엇을 넣고 무엇을 뺄까 · 목차