GEO

컨텍스트 로트

컨텍스트 로트(Context Rot)는 입력 컨텍스트가 길어질수록 LLM의 정확도·지시 준수·인용 충실도가 점진적으로 떨어지는 현상입니다. 컨텍스트 윈도가 100만 토큰까지 늘어났어도 실제 가용 정확도는 수만 토큰 이상에서 빠르게 무너지고, 32k·128k·1M 사이의 차이는 마케팅이 시사하는 것보다 훨씬 작습니다.

컨텍스트 로트(Context Rot)는 입력 컨텍스트가 길어질수록 LLM의 정확도·지시 준수·인용 충실도가 점진적으로 떨어지는 현상입니다. 컨텍스트 윈도가 100만 토큰까지 늘어났어도 실제 가용 정확도는 수만 토큰 이상에서 빠르게 무너지고, 32k·128k·1M 사이의 차이는 마케팅이 시사하는 것보다 훨씬 작습니다.

왜 중요한가

벤치마크 점수는 컨텍스트 100만 토큰을 광고하지만, 2025년부터 누적된 실측 연구는 다른 그림을 보여줍니다 — Chroma·Anthropic·Databricks의 평가에서 동일 모델이 8k에서 95% 정확도를 내던 작업을 64k에서 60%대로 떨어뜨리는 결과가 일관되게 관찰됐습니다. 검색 증강 생성(RAG)에서 30개 청크를 한꺼번에 던지면 첫·마지막 청크만 활용되고 중간이 무시되며(lost-in-the-middle), 답변에 반영되지 않은 채로 "참고했음"이라고 주장하기도 합니다. 컨텍스트 로트는 GEO와 RAG 시스템 설계의 가장 큰 숨은 함정이고, "더 큰 컨텍스트 = 더 좋은 결과"라는 직관을 정면으로 부정합니다.

컨텍스트 로트의 주요 증상

중간 정보 무시: 컨텍스트 중간에 있는 핵심 사실이 답변에 반영되지 않음. 시작과 끝에 있는 정보는 살아남지만 중간은 사라짐.

지시 표류(Instruction drift): 시스템 프롬프트의 지시가 긴 사용자 메시지 이후 무시되기 시작. 톤·포맷·금지 사항이 누수.

인용 환각: "위 문서의 5번째 단락에 따르면..."이라고 답하지만 실제로는 그런 단락이 없거나 다른 문서에서 가져온 내용.

리텐션 붕괴: 멀티턴 대화에서 초반 컨텍스트가 사실상 잊힘. 4~5턴 후 모델이 이전 합의를 기억 못함.

도구 호출 누락: 긴 컨텍스트에서 정의된 도구의 사용 빈도가 떨어지거나, 잘못된 인자로 호출.

왜 발생하는가

어텐션 분산(Attention dilution): 모든 토큰이 다른 모든 토큰을 어텐션으로 봐야 하므로 컨텍스트가 길어질수록 개별 토큰의 신호가 희석.

위치 인코딩 한계: 모델이 학습된 길이를 넘어가면 위치 정보의 의미가 약해짐. RoPE·ALiBi 같은 기법은 일정 부분 완화하지만 완전 해결은 아님.

훈련 데이터 분포: 학습 시 본 문서 길이가 대부분 짧음. 100만 토큰 윈도라 해도 100만 토큰 길이 문서로 학습된 건 아님.

Needle-in-haystack의 한계: 단순 검색 작업은 긴 컨텍스트에서도 잘 통과하지만, 추론·합성·다중 사실 통합은 빠르게 무너짐.

GEO에 미치는 영향

앤서 엔진은 검색·청킹·합성을 거치고, 검색 단계에서 가져온 청크들을 LLM의 컨텍스트에 쌓아 답을 생성합니다. 컨텍스트 로트가 의미하는 바:

상위 청크가 압도적: 리랭킹에서 1~3위에 들지 못하면 컨텍스트에 들어가도 사실상 인용되지 않음.

짧고 자기완결적 청크 우위: 청크 하나가 길수록 어텐션이 분산. 100~300단어 단위가 살아남기 좋음.

도입부 직답력: 본문 첫 문단에 답이 있으면 컨텍스트의 어느 위치에 있어도 살아남을 가능성이 큼.

인용 충실도 검증 필요: 답에 등장한 인용이 실제로 본문 근거에서 왔는지 후처리로 확인하지 않으면 환각이 통과.

완화 전략

컨텍스트 압축: 검색된 문서를 그대로 넣지 않고 query-aware 요약을 거쳐 핵심만 전달.

리랭킹 강화: 검색 단계에서 3050개를 가져와 reranker로 510개로 좁힌 뒤 컨텍스트에 투입.

핵심 정보 위치 조정: 가장 중요한 청크를 시작 또는 끝에 배치(중간을 피함).

계층적 합성: 청크들을 하위 그룹으로 합성한 뒤 최종 합성. map-reduce 패턴.

컨텍스트 예산 설정: "최대 8k 토큰만 사용" 같은 의도적 상한을 두고 그 안에서 최적화.

RAG 평가 자동화: 답변과 출처 청크 간 사실 정합성을 LLM-as-judge나 임베딩 유사도로 자동 검증.

흔한 오해

"컨텍스트가 클수록 좋다": 가용 컨텍스트와 광고 컨텍스트는 다름. 명시된 윈도의 10~30%가 신뢰 가능한 실용 한계.

"Needle-in-a-haystack 통과 = 긴 컨텍스트 OK": 단일 사실 검색은 쉬움. 다중 사실 추론·합성은 훨씬 빨리 무너짐.

"파인튜닝으로 해결됨": 일부 완화는 가능하나 구조적 한계는 남음. 시스템 설계로 우회하는 게 더 효과적.

"새 모델은 다 해결됨": 2026년 기준 최신 모델도 32k~64k 이후 점진적 저하가 측정됨.

흔한 실수

모든 검색 결과를 컨텍스트에 투입: top-30 청크를 그대로 넣으면 lost-in-the-middle이 보장.

시스템 프롬프트를 사용자 메시지 끝에 두기: 긴 사용자 입력 다음 시스템 지시는 무시되기 쉬움. 시작에 두기.

컨텍스트 윈도 자랑을 마케팅 신호로 신뢰: 1M 토큰 광고 ≠ 1M 토큰 사용 가능.

RAG 결과 검증 부재: "근거 있어 보인다"로 끝내면 환각이 누적.

청크 크기 일률 적용: 모든 문서를 같은 길이로 자르면 의미 단위가 깨짐. semantic chunking 사용.

Sources:

관련 인블로그 게시물

inblog에서 활용하기

inblog는 블로그 콘텐츠를 앤서 엔진의 컨텍스트 로트에 강건하도록 설계합니다 — 짧고 자기완결적인 섹션, 도입부 직답형 문장, 명료한 청킹 경계가 자동 권장됩니다. AI 검색 인용 추적은 어느 청크가 실제 답변에 인용됐는지 분석해, 컨텍스트 로트 환경에서도 살아남는 콘텐츠 패턴을 데이터로 보여줍니다.