원문: Context Rot: How Increasing Input Tokens Impacts LLM Performance
2025년 7월 14일
Large Language Model(대규모 언어 모델, LLM)은 일반적으로 context(문맥)를 균일하게 처리한다고 가정됩니다. 즉, 모델이 10,000번째 token(토큰)을 100번째 토큰만큼 안정적으로 처리해야 한다는 것입니다. 그러나 실제로는 이러한 가정이 성립하지 않습니다. 간단한 작업에서도 input length(입력 길이)가 변화함에 따라 모델 성능이 크게 달라지는 것을 관찰했습니다.
본 보고서에서는 최신 GPT-4.1, Claude 4, Gemini 2.5, Qwen3 모델을 포함한 18개의 LLM을 평가했습니다. 연구 결과, 모델들은 context를 균일하게 활용하지 않으며, 입력 길이가 증가할수록 성능이 점점 더 불안정해지는 것으로 나타났습니다.
최근 LLM의 발전은 더 긴 context window(문맥 윈도우)를 향한 추세를 보여주며, 최신 모델들의 입력 토큰 수는 수백만 개에 달합니다. 이러한 모델들이 Needle in a Haystack(건초더미 속 바늘 찾기, NIAH) [1]와 같이 널리 채택된 benchmark(벤치마크)에서 거의 완벽한 점수를 달성하기 때문에, long-context(긴 문맥) 작업 전반에 걸쳐 성능이 균일하다고 가정되는 경우가 많습니다.
하지만 NIAH는 근본적으로 단순한 retrieval(검색) 작업입니다. 알려진 문장(“needle”, 바늘)을 관련 없는 텍스트로 구성된 긴 문서(“haystack”, 건초더미)에 배치하고, 모델에게 이를 검색하도록 요청하는 방식입니다. 확장 가능하긴 하지만, 이 벤치마크는 일반적으로 직접적인 lexical matching(어휘 매칭)을 평가하므로, 유연하고 semantic(의미론적) 지향적인 작업을 대표한다고 보기 어렵습니다.

Needle in a Haystack (NIAH) 설정 예시
우리는 표준 NIAH 작업을 확장하여 이전에 충분히 탐구되지 않았던 설정에서 모델 동작을 조사했습니다. 직접적인 어휘 매칭 대신 의미론적 매칭을 사용하는 needle의 효과와 haystack 콘텐츠에 변형을 도입하는 효과를 검토했습니다.
또한 LongMemEval [2]을 사용한 대화형 질의응답 평가와 모델이 일련의 반복 단어를 복제하는 합성 작업도 포함했습니다. 각 작업은 의도적으로 단순하게 유지되었으며, 문맥 길이의 영향만을 분리하기 위해 신중하게 통제되었습니다.
최소한의 조건에서도 입력 길이가 증가함에 따라 모델 성능이 저하되며, 종종 놀랍고 불균일한 방식으로 나타난다는 것을 입증합니다. 실제 애플리케이션은 일반적으로 훨씬 더 복잡하므로, 입력 길이의 영향이 실제로는 더욱 두드러질 수 있습니다.
상세한 기술 보고서는 아래에 이어집니다. 우리 연구가 유용하다면 인용을 고려해 주시기 바랍니다.
AI 애플리케이션의 검색 성능 개선에 관심이 있으신가요? Chroma에서 채용 중입니다
서론
현대 LLM이 수백만 개의 토큰에 달하는 입력 문맥 길이를 갖는 것은 일반적입니다. Gemini 1.5 Pro [3]가 2024년 초에 1M 문맥 윈도우를 처음 도입했고, 최근에는 GPT-4.1의 1M 문맥 윈도우 [4]와 Llama 4의 10M [5]이 뒤를 이었습니다. 긴 문맥의 활용 사례는 매우 설득력이 있습니다. 더 긴 문맥은 LLM이 각 호출에서 더 많은 정보를 처리하고 더 풍부한 정보를 바탕으로 출력을 생성할 수 있음을 의미합니다.
이러한 모델들의 긴 문맥 평가는 종종 입력 길이에 걸쳐 일관된 성능을 보여줍니다. 그러나 이러한 평가는 범위가 좁으며 실제로 긴 문맥이 사용되는 방식을 대표하지 못합니다. 가장 일반적으로 사용되는 테스트인 Needle in a Haystack (NIAH)는 단순한 어휘 검색 작업으로, 모델이 긴 문맥을 안정적으로 처리하는 능력을 일반화하는 데 자주 사용됩니다. 하지만 agent(에이전트) 작업이나 summarization(요약)과 같은 실제 애플리케이션은 더 광범위하고 종종 더 모호한 정보에 대해 훨씬 더 많은 처리와 reasoning(추론)을 요구합니다.
현실적인 긴 문맥 벤치마크를 설계하는 것은 어렵습니다. 입력 길이가 증가함에 따라 작업의 복잡성도 함께 증가하는 경우가 많아, 성능 저하가 더 긴 입력 때문인지 아니면 본질적으로 더 어려운 문제 때문인지 구분하기 어렵습니다. 이를 해결하기 위해 우리의 실험은 작업 복잡성을 일정하게 유지하면서 입력 길이만 변경함으로써 입력 길이 자체의 영향을 직접적으로 측정할 수 있도록 했습니다.
기여
우리는 다음을 제시합니다:
-
선도적인 closed-source(폐쇄형 소스) 및 open-weights(오픈 가중치) 모델을 포함한 18개 LLM에 대한 평가를 통해 입력 길이 증가에 따른 불균일한 성능을 밝혀냈습니다.
-
distractor(방해 요소)를 처리하고 질문-답변 유사도를 변경할 때 관찰된 모델별 행동 패턴에 대한 분석입니다.
-
결과를 재현할 수 있는 전체 코드베이스를 제공합니다.
관련 연구
모델의 긴 문맥 능력을 평가하기 위해 가장 널리 사용되는 벤치마크 중 하나는 Needle in a Haystack (NIAH)입니다. 확장 가능한 테스트로서 유용하지만, 어휘 검색이라는 좁은 능력만을 측정합니다. 모델들은 일반적으로 NIAH에서 좋은 성능을 보이며, 이로 인해 긴 문맥 문제가 대부분 해결되었다는 인식이 생겼습니다.
그러나 NIAH는 실제로 대부분의 긴 문맥 작업이 요구하는 것을 과소평가합니다. NoLiMa [6]와 같은 NIAH의 변형은 non-lexical matching(비어휘적 매칭)이 포함된 needle-question 쌍을 포함하며, 상당한 성능 저하를 보여줍니다. AbsenceBench [7]와 같이 난이도가 유사해 보이는 다른 작업들도 주어진 텍스트 스니펫의 부재를 인식하도록 모델을 테스트하며, 입력 길이가 증가함에 따라 성능 저하를 보여줍니다.
또한 긴 문맥 작업은 종종 작업의 일부로 distractor(방해 요소) 사이에서 구별하는 것을 포함합니다. 한 예로 Multi-round co-reference resolution (MRCR) [8] [9]이 있는데, 이는 다중 턴 대화에서 유사한 사용자 요청들 중에서 특정 사용자 요청의 i번째 인스턴스를 검색하는 것입니다. 그러나 긴 문맥 설정에서 방해 요소의 영향에 대한 조사는 여전히 부족합니다.
긴 문맥 작업에서 중요한 요소는 입력 길이가 어떻게 확장되는가입니다. Latent List [8]는 모델이 다양한 입력 길이에 걸쳐 고정된 수의 Python 리스트 작업을 수행해야 하는 작업입니다. 관련 없는 문맥을 채우는 다양한 방법들이 테스트되며, 이는 모델 성능에 불균일한 영향을 미친다는 것을 보여줍니다 [1]. 예를 들어, 서로 상쇄되는 리스트 작업을 추가하는 것이 print 문을 추가하는 것보다 모델 성능을 더 크게 저하시킵니다. 이는 ‘관련 없는 콘텐츠’의 유형이 중요하다는 것을 강조하며, 일부는 입력 길이와 함께 증가하는 복잡성을 도입할 수 있습니다.
유사하게, Graphwalks [10]는 모델에게 16진수 해시로 구성된 directed graph(방향 그래프)가 주어지고, 임의의 노드에서 시작하는 breadth-first search(너비 우선 탐색)를 수행하도록 요청하는 그래프 순회 작업입니다. 입력 길이를 증가시킨다는 것은 순회할 그래프의 크기를 증가시킨다는 것을 의미하며, 결과적으로 작업 난이도가 증가합니다. 증가하는 작업 복잡성과 입력 길이를 구분하기 어렵기 때문에, 입력 길이만으로 인한 성능 영향을 분리하기 어렵습니다. 이는 입력 길이를 관심 변수로 분리하는 것의 중요성을 지적하며, 이는 LLM이 실제로 긴 입력을 어떻게 처리하는지 이해하는 데 필수적입니다.
Needle in a Haystack 확장
고전적인 Needle in a Haystack 작업은 긴 문맥 윈도우(“haystack”, 건초더미) 중간에 무작위 사실(“needle”, 바늘)을 배치한 다음, 모델에게 그 사실에 대해 질문하는 것입니다.
이 작업의 원래 구현은 어휘 매칭이 있는 needle-question 쌍을 사용합니다. 그러나 실제로 긴 문맥을 사용하려면 종종 모호한 작업에 대한 의미론적 이해가 필요합니다.
어휘 매칭을 사용한 Needle in a Haystack (NIAH) 설정 예시
NoLiMa는 문맥 길이가 증가함에 따라 비어휘적 매칭이 모델에게 도전 과제임을 입증했습니다. 이 작업은 모델이 잠재적 연관성을 추론해야 하는 needle-question 쌍을 활용합니다. 예를 들어:
Question: 어떤 캐릭터가 헬싱키에 갔었나요?
Needle: 사실, Yuki는 Kiasma 박물관 옆에 살아요.
NoLiMa - Needle-Question 쌍 샘플
이 질문에 답하기 위해서는 모델이 먼저 Kiasma 박물관이 헬싱키에 위치한다는 것을 알아야 하고, 그런 다음 잠재적 연관성 링크를 만들어야 합니다. 이는 모델을 비어휘적 매칭 능력뿐만 아니라 세계 지식에 대해서도 테스트합니다. NoLiMa의 needle-question 쌍 중 72.4%가 이러한 외부 지식을 필요로 하므로, 이 벤치마크는 순수한 비어휘적 매칭 단독보다는 모델이 두 작업을 동시에 처리하는 방법에 대한 테스트에 가깝습니다.
비어휘적 매칭의 영향을 독립적으로 테스트하는 것은 여전히 충분히 탐구되지 않았습니다. 더욱이, “어휘적” 대 “비어휘적”이라는 이진 구분은 실제 시나리오에서 질의응답의 복잡성을 지나치게 단순화합니다. Needle-question 쌍은 유사도의 스펙트럼상에 존재하지만, 모두 이러한 광범위한 범주로 분류됩니다.
모델은 또한 방해 요소를 처리해야 하는 경우가 많으며, 이는 성능을 저하시키는 것으로 나타났습니다 [11].
이 보고서 전체에서 우리는 distractor(방해 요소)와 irrelevant content(관련 없는 콘텐츠)를 구분합니다:
비교 - Distractor vs. Irrelevant Context(관련 없는 문맥)
- Distractor는 needle과 주제적으로 관련이 있지만 질문에 완전히 답하지 않습니다
- Irrelevant content는 needle 및 질문과 관련이 없습니다
이전 연구들은 방해 요소가 불균일한 영향을 미친다는 것을 입증했지만, 대부분의 평가는 짧은 입력 길이와 이전 모델들을 포함했습니다. 현재의 최첨단 모델들은 방해 요소에 더 탄력적이라고 주장되지만, 다양한 입력 길이에 걸쳐 그들의 성능은 광범위하게 테스트되지 않았습니다.
NIAH의 또 다른 충분히 탐구되지 않은 측면은 haystack 자체인데, 이는 종종 단순히 입력 길이를 확장하는 수단으로 취급되지만, 이는 haystack 콘텐츠 자체가 작업 성능에 영향을 미치지 않는다고 가정합니다. 모델이 실제로 haystack의 콘텐츠에 민감하지 않다면, 예를 들어 haystack의 주제나 서술 흐름과 같은 이 콘텐츠를 변경하는 것이 결과에 영향을 미치지 않아야 합니다. 그러나 이 가정은 대체로 테스트되지 않은 상태로 남아 있습니다.
우리는 이러한 요인들의 영향을 조사하기 위해 네 가지 통제된 실험을 설계했습니다:
Needle-Question 유사도
우리는 embedding(임베딩)을 사용하여 needle-question 쌍 사이의 cosine similarity(코사인 유사도)를 계산합니다. 견고성을 위해 다섯 가지 임베딩 모델(text-embedding-3-small, text-embedding-3-large, jina-embeddings-v3, voyage-3-large, all-MiniLM-L6-v2)의 평균을 구합니다. 입력 길이가 증가함에 따라 needle-question 유사도가 모델 성능에 어떻게 영향을 미치는지 측정합니다.
Distractor의 영향
높은 유사도의 needle-question 쌍을 사용하여 네 개의 distractor를 작성합니다. 다음과 같은 설정이 있습니다:
- Baseline(기준선): needle만 있고 distractor 없음
- Single distractor(단일 방해 요소): needle + 무작위로 배치된 하나의 distractor
- Multiple distractors(다중 방해 요소): needle + 무작위로 배치된 네 개의 모든 distractor
입력 길이가 증가함에 따라 distractor가 모델 성능에 미치는 영향을 테스트하여 distractor와 입력 길이 간의 불균일성을 측정합니다.
Needle-Haystack 유사도
우리는 두 가지 주제적으로 구별되는 haystack, 즉 Paul Graham 에세이와 arXiv 논문 [12]을 사용하고, 각각에 대한 해당 needle을 작성합니다. Needle-haystack 유사도를 측정하기 위해 haystack을 임베딩하고 각 needle에 대한 상위 5개 청크를 검색한 다음, 코사인 유사도 점수를 평균화합니다. 이 프로세스는 견고성을 위해 다섯 가지 다른 임베딩 모델에 걸쳐 반복됩니다.
Haystack 구조
일반적인 NIAH 설정에서 haystack은 일관된 텍스트들의 연결이며, 각각은 자체적인 논리적 아이디어 흐름을 가지고 있습니다. 예를 들어, 원래 NIAH 벤치마크는 일련의 Paul Graham 에세이를 사용하는데, 각 에세이는 논증을 형성하기 위해 구조화된 아이디어 구성을 따릅니다. 이러한 구조가 모델 성능에 영향을 미치는지 평가하기 위해, 우리는 두 가지 조건을 비교합니다:
- Original(원본): 각 발췌문 내에서 아이디어의 자연스러운 흐름을 보존합니다
- Shuffled(섞임): 논리적 연속성 없이 동일한 전체 주제를 유지하기 위해 haystack 전체에서 문장을 무작위로 재정렬합니다
우리는 다음을 입증합니다:
- 모든 실험에 걸쳐 입력 길이가 증가함에 따라 모델 성능이 일관되게 저하됩니다.
- 낮은 유사도의 needle-question 쌍은 성능 저하 속도를 증가시킵니다.
- Distractor는 서로에 대해 얼마나 방해가 되는지와 관련하여 모델 성능에 불균일한 영향을 미칩니다. 입력 길이가 증가함에 따라 이러한 영향이 더 두드러지며, 다양한 모델이 이에 반응하는 방식에서 차이를 관찰합니다.
- Needle-haystack 유사도는 모델 성능에 균일한 영향을 미치지 않으며, 추가 조사가 필요함을 시사합니다.
- Haystack의 구조적 패턴은 모델이 긴 입력을 처리하는 방식에 일관되게 영향을 미칩니다.
세부 사항
needle 유형, haystack 주제, haystack 구조의 모든 고유한 조합에 대해, 우리는 각 모델을 다음과 같이 테스트합니다:
- 8개의 입력 길이
- 11개의 needle 위치
우리는 해당 설정이 호환되지 않거나(예: o3) 명시적으로 권장되지 않는 경우(예: Qwen의 “thinking mode”)를 제외하고, temperature=0으로 최대 문맥 윈도우에 걸쳐 각 모델을 평가합니다. Qwen 모델의 경우, YaRN 방법 [13]을 적용하여 32,768에서 131,072 토큰으로 확장합니다.
해당되는 경우 표준 및 “thinking mode” 모두에서 모델을 포함합니다.
우리는 부록에 설명된 방법을 사용하여 정렬된 GPT-4.1 judge(판정자)를 사용하여 모델 출력을 평가합니다.
우리는 모델이 작업 시도를 거부하는 드문 사례를 주목합니다(총 194,480개의 LLM 호출 중 69건—0.035%). 예를 들어, Claude Opus 4는 때때로 stop_reason=“refusal”로 빈 출력을 가질 수 있습니다.
Needle-Question 유사도
실제 애플리케이션에서 모델은 종종 모호한 작업을 처리하고 정확한 어휘 매칭에 의존하지 않고 관련 정보를 식별해야 합니다. 예를 들어, 에이전트가 검색할 대규모 corpus(말뭉치)를 포함하는 작업을 받을 때, 사용자는 관련 부분에 대한 정확한 키워드를 거의 지정하지 않습니다. 대신, 모델이 관련성을 추론해야 합니다.
우리는 needle-question 쌍의 유사도를 변경하며, 이는 embedding의 코사인 유사도로 정량화됩니다. Needle-question 유사도가 감소함에 따라, 입력 길이가 증가할 때 모델 성능이 더 크게 저하된다는 것을 발견했습니다. 이는 정확한 질문-답변 매칭이 드물고 의미론적 모호성이 긴 입력 처리의 어려움을 복합시키는 더 현실적인 시나리오를 반영합니다.
실험
우리는 두 가지 도메인에서 haystack 콘텐츠를 소싱합니다: Paul Graham 에세이(원래 NIAH 실험에서와 같이)와 arXiv 논문. 각 haystack 주제(PG 에세이, arXiv)에 대해, 우리는 먼저 질문과 needle 작성을 안내할 공통 주제를 결정합니다.
우리는 clustering(군집화)을 사용하여 주어진 corpus에 나타나는 가장 일반적인 주제를 식별합니다:
-
문서를 1-3개 문장 청크로 나눕니다
-
text-embedding-3-large를 사용하여 각 청크를 임베딩합니다
-
다음 매개변수를 사용하여 차원 축소를 위해 UMAP [14]을 사용합니다: n_neighbors=30, min_dist=0.05, n_components=50, random_state=42
-
다음 매개변수를 사용하여 cluster(클러스터)를 생성하기 위해 HDBSCAN [15]을 사용합니다: min_cluster_size=10, min_samples=15
-
maximal marginal relevance (MMR)를 사용하여 가장 큰 클러스터에 대한 20개의 대표 청크를 얻습니다
-
가장 큰 클러스터를 수동으로 검토하여 주제와 스타일을 결정합니다
이 방법을 사용하여, 우리는 PG 에세이의 공통 주제로 writing advice(글쓰기 조언)를 식별하며, 종종 anecdotal(일화적) 형식으로 나타납니다. arXiv 논문의 경우, information retrieval(정보 검색), 특히 re-ranking(재순위화)을 공통 주제로 식별합니다.
우리는 각 주제에 대한 해당 질문을 작성합니다:
PG 에세이: “대학 동기로부터 받은 최고의 글쓰기 조언은 무엇이었나요?”
arXiv 논문: “과학 도메인에서 선호되는 저지연 reranker는 무엇인가요?”
Paul Graham 에세이 및 arXiv 논문에 대한 질문
needle을 작성하기 전에, 우리는 이러한 질문에 대한 답변이 haystack 콘텐츠에 존재하지 않는다는 것을 검증합니다:
- 이전에 계산된 haystack 청크 임베딩을 vector database(벡터 데이터베이스)에 저장합니다.
- 질문 임베딩으로 해당 벡터 데이터베이스에서 상위 10개 결과를 쿼리합니다.
- 이러한 결과를 수동으로 검토하여 주어진 질문에 답하지 않는다는 것을 검증합니다.
이는 대안 답변이 존재하지 않도록 보장하고, 잘못된 답변은 모델 hallucination(환각) 때문임을 보장하여 공정한 테스트 환경을 설정합니다.
각 질문에 대해, 우리는 approximate prediction(근사 예측)을 사용하여 검증한 대형 클러스터에 각각 속하는 8개의 needle을 작성합니다. 0.9 이상의 확률로 글쓰기/검색 클러스터에 속하는 needle은 haystack에 주제적으로 혼합되는 것으로 간주됩니다. 우리는 data contamination(데이터 오염)을 피하기 위해 이러한 needle을 수동으로 작성합니다.
8개의 needle에 대해, 우리는 또한 다음 방법을 통해 정량화된 모호성 수준을 변경합니다:
- 임베딩 모델을 사용하여 needle과 질문에 대한 임베딩과 그들의 코사인 유사도를 계산합니다.
- 다섯 가지 임베딩 모델(text-embedding-3-small, text-embedding-3-large, jina-embeddings-v3, voyage-3-large, all-MiniLM-L6-v2)에 걸쳐 반복합니다.
PG 에세이 주제의 경우, 우리의 needle은 다섯 가지 임베딩 모델에 걸쳐 <0.1 표준 편차로 0.445-0.775 needle-question 유사도 범위를 가집니다. arXiv 주제의 경우, 역시 <0.1 표준 편차로 0.521-0.829의 needle-question 유사도 범위를 가집니다.
결과
낮은 유사도의 needle-question 쌍에서 입력 길이에 따라 성능이 더 빠르게 저하되는 명확한 패턴을 관찰합니다.

NIAH: Needle-Question 유사도 (동일 모델의 thinking/non-thinking 모드는 별도로 취급됨) - arXiv haystack/arXiv needles High Performance(고성능): 상위 33% 성능 파란색: 높은 유사도 needle(상위 50% 유사도) 빨간색: 낮은 유사도 needle(하위 50% 유사도)
짧은 입력 길이에서는 모델들이 낮은 유사도 쌍에서도 좋은 성능을 보입니다. 우리는 이것을 고/중간 성능 모델에서 가장 명확하게 볼 수 있으며, 이는 이러한 모델들이 모든 needle-question 쌍에 대해 이 작업에 성공할 수 있음을 입증합니다.
더 긴 입력 길이에서 관찰된 성능 저하는 needle-question 쌍의 본질적인 난이도 때문이 아닙니다. Needle-question 쌍을 고정하고 관련 없는 콘텐츠의 양만 변경함으로써, 우리는 입력 크기를 성능 저하의 주요 요인으로 분리합니다.
우리는 또한 needle 위치가 성능에 영향을 미치는지 검토합니다. 11개의 needle 위치에 걸쳐 테스트한 결과, 이 특정 NIAH 작업에 대해 성능의 주목할 만한 변화를 발견하지 못했습니다.
Distractor의 영향
이전 모델들에서 distractor가 모델 성능을 저하시키고 불균일한 영향을 미친다는 것은 이미 확립되었습니다. 새로운 모델들은 어떤 distractor든 안정적으로 처리한다고 주장되지만, 이것이 입력 길이가 증가함에 따라서도 사실일까요?
우리의 실험은 distractor의 영향과 그 불균일성이 최신 최첨단 모델을 포함한 모델 전반에 걸쳐 입력 길이가 증가함에 따라 증폭된다는 것을 밝혀냅니다. 우리는 또한 모델 패밀리 전반에 걸쳐 모호성을 처리하는 방식에서 뚜렷한 행동을 관찰합니다.
실험
각 haystack 주제(PG 에세이 및 arXiv 논문)에서, 우리는 높은 needle-question 유사도(8개 중 두 번째로 높음)를 가진 needle을 선택하고 수동으로 4개의 distractor를 작성합니다:
질문: “대학 동기로부터 받은 최고의 글쓰기 조언은 무엇이었나요?”
Needle: “대학 동기로부터 받은 최고의 글쓰기 팁은 매주 글을 쓰는 것이라고 생각합니다.”
Distractor:
“대학 교수로부터 받은 최고의 글쓰기 팁은 매일 글을 쓰는 것이었습니다.”
“대학 동기로부터 받은 최악의 글쓰기 조언은 각 에세이를 다섯 가지 다른 스타일로 쓰는 것이었습니다.”
“동급생으로부터 받은 최고의 글쓰기 조언은 각 에세이를 세 가지 다른 스타일로 쓰는 것이었는데, 이것은 고등학교 때였습니다.”
“대학 동기로부터 받은 최고의 글쓰기 조언은 각 에세이를 네 가지 다른 스타일로 쓰는 것이라고 생각했었지만, 이제는 아닙니다.”
Paul Graham 에세이 주제 및 높은 Needle-Question 유사도를 가진 Needle에 대한 Distractor
8개의 모든 needle을 distractor와 함께 테스트하는 대신, 우리는 높은 needle-question 유사도를 가진 하나의 needle을 사용하여 needle을 상대적으로 쉽게 식별할 수 있는 조건을 만듭니다. 이전 결과에서 높은 needle-question 유사도로 인해 모델들이 일반적으로 입력 길이에 걸쳐 이 needle에서 좋은 성능을 보인다는 것을 알 수 있으며, 이를 통해 distractor 단독의 영향을 더 잘 분리하고 측정할 수 있습니다.
우리는 세 가지 테스트 조건을 실행합니다:
- No distractor(distractor 없음, 기준선): Needle만
- Single distractor(단일 distractor): Needle + 하나의 distractor (무작위 배치)
- Multiple distractors(다중 distractor): Needle + 네 개의 모든 distractor, haystack 전체에 무작위로 배치

Distractor의 영향 - 세 가지 조건
결과
단일 distractor조차도 기준선(needle만)에 비해 성능을 감소시키며, 네 개의 distractor를 추가하면 이러한 저하가 더욱 복합됩니다.

Distractor의 영향: Distractor 수에 따른 성능 - arXiv haystack/PG 에세이 needles
우리는 또한 distractor가 균일한 영향을 미치지 않는다는 것을 볼 수 있습니다. 예를 들어, arXiv haystack과 PG 에세이 needle 조합에서, distractor 3(빨간색)이 다른 distractor에 비해 더 큰 성능 저하를 일으킨다는 것을 볼 수 있습니다.

Distractor의 영향: 개별 Distractor에 따른 성능 - arXiv haystack/PG 에세이 needles
이러한 불균일한 영향을 더 조사하기 위해, 우리는 4-distractor 조건에서 다양한 모델의 실패 시도를 분석합니다. arXiv haystack과 PG 에세이 needle 조합의 경우, distractor 2와 3이 모델 전반에 걸쳐 환각 응답에서 가장 자주 나타난다는 것을 볼 수 있습니다.

Distractor의 영향: 실패 분석 - arXiv haystack/PG 에세이 needles
이러한 실패는 또한 모호성을 처리하는 모델별 차이를 드러냅니다. Claude 모델은 일관되게 가장 낮은 환각률을 보입니다. 특히 Claude Sonnet 4와 Opus 4는 특히 보수적이며 불확실할 때 기권하는 경향이 있으며, 답변을 찾을 수 없다고 명시적으로 진술합니다. 대조적으로, GPT 모델은 가장 높은 환각률을 보이며, distractor가 있을 때 종종 확신에 찬 그러나 잘못된 응답을 생성합니다.
Needle-Haystack 유사도
긴 문맥 작업에서 관련 없는 문맥은 종종 입력 길이를 확장하는 중립적인 placeholder(자리 표시자)로 취급됩니다. 일반적으로 작업을 직접 방해하지 않는 한 이 관련 없는 문맥의 콘텐츠는 중요하지 않다고 가정됩니다.
그러나 자연스러운 질문이 발생합니다: needle-haystack 유사도가 작업 난이도에 전혀 영향을 미칠까요? 직관적으로, needle이 haystack의 콘텐츠와 혼합되면, 모델이 needle을 추출하는 데 더 큰 어려움을 겪을 수 있습니다.
우리의 발견은 needle-haystack 유사도가 모델 성능에 불균일한 영향을 미친다는 것을 밝혀냅니다.
실험
needle-question 유사도 실험의 needle을 사용하여, 우리는 needle-haystack 유사도의 영향을 테스트하기 위한 실험을 설정합니다.
우리는 haystack을 임베딩하고 각 needle에 대해 가장 유사한 상위 5개 청크를 검색한 다음 코사인 유사도 점수를 평균화하여 needle-haystack 유사도를 측정합니다. 이 프로세스는 견고성을 위해 다섯 가지 다른 임베딩 모델에 걸쳐 반복됩니다.
PG 에세이 haystack에서, PG 에세이 needle은 0.101의 변동으로 평균 0.529의 needle-haystack 유사도 점수를 가지며, arXiv needle은 0.111의 변동으로 평균 0.368의 needle-haystack 유사도를 가집니다. 반대로, arXiv haystack에서, arXiv needle은 0.0858의 변동으로 평균 0.654의 needle-haystack 유사도를 가지는 반면, PG 에세이 needle은 0.105의 변동으로 0.394의 더 낮은 needle-haystack 유사도를 기록합니다.
각 haystack에서, 우리는 의미론적으로 유사한 needle을 관련 없는 needle과 비교하여 테스트합니다. 예를 들어, 우리는 두 조건을 비교하기 위해 Paul Graham 에세이 haystack 내에 PG 에세이와 arXiv needle을 모두 배치합니다:

Needle-Haystack 유사도: 실험 설정
결과
우리는 PG 에세이와 arXiv needle을 모두 두 가지 haystack 유형에서 테스트합니다: Paul Graham 에세이와 arXiv 논문. Paul Graham 에세이 haystack에서, arXiv needle은 PG 에세이 needle에 비해 훨씬 더 나은 성능을 보입니다; 즉, needle이 haystack과 의미론적으로 혼합되지 않을 때 모델이 더 나은 성능을 보입니다. arXiv haystack에서는, 우리의 arXiv와 PG 에세이 needle 사이에 최소한의 성능 차이만 관찰합니다.

Needle-Haystack 유사도 결과
단 두 가지 주제에 걸쳐 테스트하는 것은 더 높은 needle-haystack 유사도가 이 작업에서 모델 성능을 저하시킨다는 일반화 가능한 결론을 도출하기에 불충분합니다. 그러나 이것은 긴 문맥 처리의 불균일한 특성을 강조합니다. 작업 구조와 needle-question 유사도가 일정하게 유지되더라도, needle과 haystack 사이의 의미론적 유사도를 변경하면 결과에 영향을 미칠 수 있습니다. 이는 긴 문맥 벤치마크에서 충분히 탐구되지 않은 영역이며 향후 연구를 위한 의미 있는 방향을 가리킵니다.
Haystack 구조
Needle-haystack 유사도 외에도, 우리는 haystack의 구조적 패턴도 고려합니다.
Haystack이 일관된 에세이로 구성되어 있다면, 무작위로 삽입된 needle이 논리적 아이디어 흐름을 방해하여 더 눈에 띄게 만들 수 있습니다. 대조적으로, 무작위로 정렬된 문장들의 섞인 haystack에서는 전체 문맥이 구조가 부족하므로 needle이 더 쉽게 혼합될 수 있습니다. 이는 모델이 문맥의 논리적 흐름에 민감하다는 가정을 따릅니다—구조화되고 순서에 민감한 방식으로 처리한다는 것입니다.
놀랍게도, 우리는 구조적 일관성이 일관되게 모델 성능을 해친다는 것을 발견합니다.
직관에 반하는 것처럼 보이지만, haystack이 논리적 아이디어 흐름을 보존할 때 모델이 더 나쁜 성능을 보입니다. Haystack을 섞고 local coherence(지역적 일관성)를 제거하면 일관되게 성능이 향상됩니다.
실험
Haystack 구조의 영향을 평가하기 위해, 우리는 두 가지 변형을 만듭니다:
- Original(원본): 각 발췌문 내에서 아이디어의 자연스러운 흐름을 보존합니다
- Shuffled(섞임): 동일한 전체 주제를 유지하지만 논리적 연속성 없이 haystack 전체에서 문장을 무작위로 재정렬합니다

Haystack 구조: 샘플 실험 설정
결과
18개 모든 모델과 needle-haystack 구성에 걸쳐, 우리는 모델들이 논리적으로 구조화된 것보다 섞인 haystack에서 더 나은 성능을 보이는 일관된 패턴을 관찰합니다.

Haystack 구조: 원본 vs. 섞인 Haystack에 대한 18개 모델의 평균 성능
이러한 결과는 모델의 내부 처리에 대한 몇 가지 시사점을 가질 수 있습니다: 입력의 구조적 패턴이 attention mechanism(어텐션 메커니즘)이 적용되는 방식에 영향을 미칠 수 있으며, 특히 입력 길이가 증가함에 따라 그렇습니다.
이 보고서의 범위를 벗어나지만, 이는 어텐션이 입력 구조에 의해 어떻게 영향을 받는지에 대한 interpretability(해석 가능성) 연구의 잠재적 방향을 가리킵니다. 입력 길이 증가와 함께 발생하는 이러한 구조적 영향을 이해하는 것은 이러한 긴 문맥 실패 패턴을 설명하는 데 도움이 될 수 있습니다.
LongMemEval
더 현실적인 설정에서 이러한 모델을 평가하기 위해, 우리는 대화형 질의응답을 위한 긴 문맥 벤치마크인 LongMemEval을 사용합니다.
채팅 assistant(어시스턴트)에 긴 입력을 사용하는 것은 후속 채팅을 위한 관련 history(이력)를 유지하는 일반적인 접근 방식입니다. 채팅 어시스턴트에 “memory(메모리)“를 통합하기 위한 naive한 접근 방식은 다음 채팅의 prompt(프롬프트)에 전체 채팅 이력을 포함하는 것입니다. 이는 모델이 일반적으로 하나의 호출에서 수행되는 두 가지 작업을 수행해야 합니다: 대화 이력의 관련 부분을 찾고(검색), 들어오는 쿼리에 유용한 방식으로 합성합니다(추론).
이상적인 경우, 모델은 추론에만 집중할 수 있도록 관련 부분만 주어질 것입니다. 관련 없는 문맥을 추가하면 무엇이 관련되어 있는지 식별하는 추가 단계가 추가되어, 모델이 두 가지 작업을 동시에 수행하도록 강제합니다.
우리는 증가된 입력 길이와 함께 이 추가 단계를 추가하는 효과를 두 조건을 통해 체계적으로 테스트합니다:
-
Focused input(집중된 입력): 관련 부분만 포함하므로 모델은 단순한 추론만 하면 됩니다.
-
Full input(전체 입력): 관련 없는 문맥을 포함하는 전체 113k 토큰 LongMemEval 입력을 활용합니다. 이 경우, 모델은 추론 외에 긴 문맥에 걸쳐 검색을 수행해야 합니다.
우리는 모델들이 집중된 입력에서 성공할 수 있는 높은 능력을 가지고 있음을 검증한 다음, 전체 입력에서 일관된 성능 저하를 관찰합니다. 이러한 성능 저하는 관련 없는 문맥을 추가하고, 그로 인해 검색의 추가 단계를 추가하는 것이 모델이 안정적인 성능을 유지하는 능력에 상당한 영향을 미친다는 것을 시사합니다.
실험
사용자와 어시스턴트 간의 채팅 이력이 주어지면, 모델의 작업은 해당 채팅 이력의 일부와 관련된 질문에 답하는 것입니다.

LongMemEval - 질문 유형별 예시 [2]
우리는 LongMemEval_s를 사용하고 knowledge update(지식 업데이트), temporal reasoning(시간적 추론), multi-session 범주에 속하는 작업을 필터링합니다. 그런 다음 이 데이터셋을 수동으로 정리하는데, 일부 질문은 너무 모호하거나 답할 수 없어서 38개의 프롬프트를 필터링하여 총 306개의 프롬프트를 얻습니다. 이러한 프롬프트는 평균 약 113k 토큰입니다.
이러한 긴 프롬프트는 대부분 질문과 관련 없는 콘텐츠로 구성되어 있으며, 때때로 질문과 관련이 있는 것처럼 보일 수 있는 distractor가 있습니다. 우리는 이러한 긴 프롬프트에서의 모델 성능을 질문에 답하는 데 관련된 부분만 포함하는 집중된 버전과 비교합니다.
집중된 프롬프트는 평균 약 300 토큰이며, 원래 레이블이 지정된 데이터셋과 수동 조정에서 파생됩니다.
모델 출력은 정렬된 LLM judge(GPT-4.1, 인간 판단에 >99% 정렬)를 사용하여 판정되었습니다.
결과
모든 모델에 걸쳐, 우리는 전체 프롬프트에 비해 집중된 프롬프트에서 훨씬 더 높은 성능을 봅니다.

LongMemEval 결과 - Claude 패밀리
Claude 모델은 집중된 프롬프트와 전체 프롬프트 성능 사이에서 가장 두드러진 격차를 보입니다. 이러한 불일치는 주로 모호성과 함께 발생하는 abstention(기권)에 의해 주도되며, 이는 NIAH에서 distractor가 있는 이 모델 패밀리의 행동과 유사한 모델 불확실성으로 이어집니다. 이러한 행동은 Claude Opus 4와 Sonnet 4에서 가장 명백하며, 모호성 하에서 특히 보수적으로 보여 이전 Claude 모델들에 비해 전체 프롬프트에서 더 낮은 성능으로 이어집니다.
질문: 원예 워크숍에 참석한 날과 토마토 모종을 심은 날 사이에 며칠이 지났나요?
정답: 6일. 7일(마지막 날 포함)도 허용됩니다.
모델 출력: 채팅 이력에 이러한 이벤트에 대한 구체적인 날짜가 제공되지 않았기 때문에 원예 워크숍과 토마토 모종 심기 사이의 일수를 결정할 수 없습니다.
LongMemEval - 날짜를 포함하는 전체 프롬프트에 대한 Claude Sonnet 4 (non-thinking)
집중된 프롬프트에서 더 강한 성능의 추세는 GPT, Gemini, Qwen 모델 패밀리 전반에 걸쳐서도 유지됩니다. thinking mode를 지원하는 모델의 경우, 활성화될 때 집중된 프롬프트와 전체 프롬프트 모두에서 주목할 만한 향상을 봅니다. 그러나 최신 모델에서 전체 추론 능력을 갖춘 경우에도 두 입력 길이 사이에 여전히 성능 격차가 있습니다.

LongMemEval 결과 - GPT 패밀리

LongMemEval 결과 - Gemini 패밀리

LongMemEval 결과 - Qwen 패밀리
우리는 또한 특정 질문 유형 간의 패턴을 관찰합니다. Non-thinking 모드에서, 모델은 일반적으로 집중된 프롬프트와 전체 프롬프트 모두에서 knowledge-update에서 가장 좋은 성능을 보이고, 그 다음 multi-session, 그 다음 temporal reasoning 순입니다. 그러나 thinking이 활성화되면, 이 순위가 knowledge update, temporal-reasoning, 그 다음 multi-session으로 바뀝니다.

질문 유형별 LongMemEval 결과 - Claude Opus 4
반복 단어
이전 실험들은 입력 길이만이 모델 성능에 어떻게 영향을 미치는지 탐구합니다. 그러나 출력 길이가 입력과 함께 확장되면 어떻게 될까요? 이러한 모델은 autoregressive(자기 회귀적)이므로, 모델의 출력도 입력에 속합니다; 각 토큰은 해당 지점까지의 입력 및 생성된 토큰에 조건부로 생성됩니다.
문자열을 n번 반복하는 기본 프로그램을 고려하면—매번 동일한 출력을 생성합니다. 이렇게 사소한 작업의 경우, 우리는 이러한 모델들이 똑같이 안정적일 것으로 예상하며, 그것들을 컴퓨팅 시스템으로 취급하고 싶습니다.
그러나 우리의 발견은 이러한 간단한 작업에서도 입력과 출력 길이를 모두 포함하는 문맥 길이가 증가함에 따라 모델 성능이 불균일해진다는 것을 보여줍니다.
실험
우리는 모델이 반복 단어의 시퀀스를 복제해야 하는 통제된 작업을 설계하며, 특정 위치에 단일 고유 단어가 삽입됩니다. 프롬프트는 모델에게 입력 텍스트를 정확하게 재현하도록 명시적으로 지시합니다.
한 예시 프롬프트는:
다음 텍스트를 단순히 복제하고, 정확히 동일한 텍스트를 출력하세요: apple apple apple apple apples apple apple apple apple apple apple apple apple apple apple apple apple apple apple apple apple apple apple apple apple
반복 단어 - 반복되는 단어로 ‘apple’, 고유 단어로 ‘apples’를 포함하는 샘플 프롬프트
주어진 단어 조합에 대해, 우리는 문맥 길이와 고유 단어 인덱스의 1090개 변형을 만듭니다:
- 단어 수: 25, 50, 75, 100, 250, 500, 750, 1000, 2500, 5000, 7500, 10000
- 인덱스:
- num_words ⇐ 100인 경우 모든 가능한 위치
- 그 외: num_words // 100의 증분
우리는 다음 단어 조합에 대해 이 작업을 수행합니다:
- 일반 단어: “apple” | 고유 단어: “apples”
- 일반 단어: “apples” | 고유 단어: “apple”
- 일반 단어: “golden” | 고유 단어: “Golden”
- 일반 단어: “orange” | 고유 단어: “run”
- 일반 단어: “orange” | 고유 단어: “San Francisco”
- 일반 단어: “San Francisco” | 고유 단어: “sf”
- 일반 단어: “Golden Gate Bridge” | 고유 단어: “Golden Gate Park”
참고: “San Francisco” = 1 단어, “Golden Gate Bridge/Park” = 1 단어
모델 구성:
- max_output_tokens = input_tokens *2 (모델의 최대 출력 토큰 제한까지, 일반적으로 이전 모델에서는 더 낮음)
- temperature = 0
- thinking = max(0, minimum_thinking_budget)
우리는 thinking budget을 0 또는 최소값(예: Gemini 2.5 Pro의 경우 128 토큰)으로 설정하여 reasoning model(추론 모델)을 고려합니다. 우리는 토큰 기반 thinking budget을 지원하지 않고 고정된 출력 길이로 구성할 수 없는 OpenAI의 o3를 제외하는데, 이는 평가 전반에 걸쳐 일관성을 유지하는 데 필수적입니다.
점수는 normalized Levenshtein distance(정규화된 레벤슈타인 거리)로 계산됩니다.
우리는 모델이 작업을 시도하지 않는 경우를 다음과 같이 결정하여 만납니다:
-
중지 이유가 있는 빈 출력(예: GPT-3.5 turbo의 finish_reason=‘content_filter’)
-
비어 있지 않은 출력이지만 유효하지 않은 출력:
-
시도 없이 순수한 관찰:
텍스트에 불일치가 있습니다. 단어 “apples”가 원래 텍스트에 한 번 나타납니다(“apple” 대신), 텍스트 블록의 약 89 또는 90 줄 근처에 위치한 것으로 보입니다. 정확히 동일한 텍스트를 복제하도록 요청하셨으므로, 이 차이를 지적해야 합니다. 다음 중 어떻게 하시겠습니까:
- 표시된 대로 정확히 복제 (“apples”의 한 인스턴스 포함)
- 패턴에 맞게 “apple”로 수정
- 있는 그대로 정확히 복제하여 진행 어떻게 진행하시겠습니까 알려주세요.
반복 단어 - Claude Opus 4 출력
- 답변 거부:
죄송하지만, 그것을 도와드릴 수 없습니다
반복 단어 - GPT-4.1 출력
- 무작위 출력:
-\n-\n—\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-…
반복 단어 - Gemini 2.5 Pro 출력
우리는 이러한 경우를 제외하고, 거부의 비율과 결과의 일반적인 패턴을 별도로 주목합니다. 우리는 다음과 같이 시작 문구를 포함하여 작업이 시도된 경우만 포함합니다:
텍스트에 불일치가 있습니다. 한 지점에서 “apple”이 “apples”(끝에 ‘s’가 있음)로 변경됩니다. 제공된 대로 텍스트를 정확히 복제하겠습니다:
apple apple apple apple apple apple apple apple apple…
반복 단어 - Claude Opus 4 출력
이러한 인스턴스의 경우, 우리는 정확한 지시를 따르지 않은 것에 대해 모델에게 약간 페널티를 주기 위해 동일한 점수 매기기 프로세스를 사용합니다.
우리는 finish_reason=‘content_filter’로 인해 모델이 작업의 60.29%에 대한 출력 생성을 거부했기 때문에 GPT-3.5 turbo를 전체적으로 제외합니다.
우리는 여러 차원에 걸쳐 출력을 분석합니다:
-
정규화된 레벤슈타인 거리
-
고유 단어의 존재 및 위치
- 정확함: 고유 단어가 있고 올바른 인덱스에 나타남
- 잘못된 위치: 고유 단어가 나타나지만 잘못된 인덱스에 있음
-
단어 수 차이 (입력의 단어 수 - 생성된 단어 수)
결과
문맥 길이가 증가함에 따라, 모든 모델에 걸쳐 성능이 일관되게 저하됩니다. 이 실험에서 입력 길이는 출력 길이에 직접 비례하며, 이는 출력 길이가 짧은 길이로 상대적으로 고정되어 있던 이전 테스트와 다릅니다. 이 설정은 모델이 긴 시퀀스를 안정적으로 재현하는 능력을 평가할 수 있게 합니다.
우리는 또한 모델이 작업을 시도하지 않는 패턴을 관찰하며, 이는 모든 모델 패밀리에 걸쳐 나타납니다.

반복 단어 - Claude 패밀리
우리는 Sonnet 3.5(빨간색)가 최대 출력 토큰 수 8192까지 새로운 Claude 모델들을 능가한다는 것을 관찰합니다. Opus 4(파란색)는 가장 느린 저하율을 보이지만, 이 패밀리에서 유일하게 작업을 거부하는 모델이기도 합니다(시도의 2.89%).
Opus 4의 일반적인 패턴은 모델이 진행 여부를 결정하기 전에 관찰을 한 다음, 시도 또는 시도하지 않음이 뒤따른다는 것입니다. 이러한 행동은 일반적으로 2500 단어부터 시작합니다.
Opus 4가 다음과 같은 이유로 작업 시도를 단순히 거부하는 경우도 있습니다:
- 저작권이 있는 자료를 생성할 위험
요청대로 정확한 텍스트를 복제할 수 없습니다. “San Francisco”의 반복처럼 보이지만, 다른 맥락에서 저작권이 있는 자료를 재현할지 테스트하는 데 사용될 수 있으므로 그렇게 하도록 요청받았을 때 텍스트를 그대로 재현하는 것을 피해야 합니다.
대신, 텍스트에 “sf”가 포함되어 있고 그 뒤에 “San Francisco”라는 문구가 24번 반복된다고 말할 수 있습니다.
반복 단어 - Claude Opus 4 출력
- 반복 시퀀스의 불일치
제공하신 텍스트에 오류가 있습니다. 한 인스턴스에서 “San Francisco”가 “San Francisco sf San Francisco”로 나타납니다(중간에 추가 “sf”가 있음). 정확한 텍스트를 복제하도록 요청하셨으므로, 소스에 이러한 불일치가 포함되어 있어 완벽한 복제를 제공할 수 없습니다.
텍스트는 “San Francisco”가 여러 번 반복되지만, 그 안에 하나의 오류가 포함되어 있습니다.
반복 단어 - Claude Opus 4 출력
우리는 또한 위치 정확도를 측정합니다: 고유 단어가 올바른 위치에 나타나는지 여부. 정확도는 고유 단어가 시퀀스의 시작 부분 근처에 배치될 때, 특히 입력 길이가 증가함에 따라 가장 높습니다.

반복 단어: 위치 정확도 - Claude 패밀리
또한, 문맥 길이가 증가함에 따라 모델은 종종 출력 토큰 제한에 도달할 때까지 반복 단어를 생성합니다. 우리는 입력과 출력 단어 수 간의 차이를 계산하여 이를 정량화합니다:
- 양수 = 모델이 과소 생성
- 음수 = 모델이 과대 생성

반복 단어: 단어 수 차이 - Claude 패밀리
GPT 모델 패밀리에서, 우리는 GPT-4.1에 대해 2.55%의 거부율을 관찰합니다. 이러한 거부는 일반적으로 약 2500 단어부터 시작하며, “죄송하지만, 그것을 도와드릴 수 없습니다”와 같은 응답을 보입니다.

반복 단어 - GPT 패밀리
우리는 또한 GPT-4 turbo에서 약 500 단어 주변의 지역적 성능 피크를 관찰합니다. 50과 250 단어 사이에서, 모델은 과대 생성(출력 제한까지 일반 단어 반복)하는 경향이 있지만, 500 단어에서는 단어 수에서 더 정확해집니다. 그러나 이 지점을 넘어서면, 입력과 출력 단어 수 사이의 양수 차이에서 볼 수 있듯이 과소 생성하기 시작합니다.

반복 단어: 단어 수 차이 - GPT-4 Turbo
위치 정확도는 GPT 모델들도 입력 초기에 고유 단어가 나타날 때 올바르게 배치할 가능성이 더 높다는 점에서 유사한 추세를 따릅니다.
우리는 또한 이 패밀리에서 더 많은 모델별 행동을 주목합니다.
GPT-4.1 mini는 모든 작업을 시도하지만, “Golden Gate Bridge”/“Golden Gate Park” 조합에 대해 때때로 무작위 단어를 생성합니다. 무작위 출력은 입력에 존재하지 않는 단어 또는 단어의 시퀀스로 정의됩니다.
모델은 입력에 존재하지 않는 “Golden Golden” 및 “Gate Gate”와 같은 중복 단어를 출력합니다(입력에는 “Golden Gate Bridge” 및 “Golden Gate Park”만 포함됨).
이러한 중복 단어는 고유 단어의 위치에 나타나지 않고, 대신 텍스트의 나중 위치에 나타납니다.
GPT-4.1 nano는 “San Francisco” / “sf” 쌍에서 유사한 행동을 보이며, 때때로 소문자 “san”을 출력합니다.
모델 출력에서 발췌:
San Francisco San Francisco San Francisco San Francisco San Francisco San Francisco San Francisco San Francisco San Francisco san Francisco san Francisco san Francisco san Francisco
정답 참조에서 해당 부분:
San Francisco San Francisco San Francisco San Francisco San Francisco San Francisco San Francisco San Francisco San Francisco San Francisco San Francisco San Francisco San Francisco
반복 단어 - GPT-4.1 nano
이러한 무작위 단어들에서, 우리는 위치와 관련하여 구조의 힌트를 알아챕니다. 우리는 고유 단어의 위치와 무작위 단어가 나타나기 시작하는 위치 사이의 상관관계를 관찰하며, 이는 향후 조사의 방향이 될 수 있습니다.
GPT-4 Turbo는 이 패밀리에서 가장 가변적인 출력을 가지고 있으며, 이는 모델이 무작위 출력을 생성하는 경향이 더 크고 그것들의 더 다양한 세트를 의미합니다.

반복 단어 - Gemini 패밀리
일반적으로, 우리는 문맥 길이가 증가함에 따라 모델 전반에 걸쳐 성능 저하를 봅니다. Gemini 2.5 Pro(파란색)의 경우, 50 단어에서 모델이 생성해야 하는 것보다 적은 단어를 생성하기 때문에 더 낮은 시작점을 관찰합니다.
이 패밀리의 모든 단어 조합과 모델에 걸쳐—“apples” / “apple”에 대한 Gemini 2.5 Flash를 제외하고—우리는 입력에 존재하지 않는 무작위 단어가 생성되는 것을 관찰합니다. 이것은 일반적으로 약 500-750 단어부터 시작하며, Gemini 2.5 Pro가 가장 큰 가변성을 보이고, 2.0 Flash, 그 다음 2.5 Flash가 뒤따릅니다.
“golden” | “Golden” (2,500 단어):
- - “I’-a-le-le-le-le-le-le-‘a-le-le-le-le-le-le-le—le-le-le-le-le-le-le…
“orange” | “run” (10,000 단어):
orange orange orange—g.-g/2021/01/20/orange-county-california-sheriff-deputies-wore…
반복 단어 - Gemini 2.5 Pro 샘플 출력

반복 단어 - Qwen 패밀리
우리는 Qwen3-8B에서만 시도하지 않음을 관찰하며, 이는 작업의 4.21%를 차지합니다. 이 모델의 경우, 약 5000 단어부터 시작하는 무작위 출력을 관찰합니다:
좋아요, 잠시 쉬겠습니다. 알려주세요, 지금 기분이 아닙니다. 좀 쉬어야겠어요. 어딘가 가서 신선한 공기를 마시고 싶어요. 해변에 갈 수도 있고, 아니면 어딘가에서 쉴 수도 있어요. 잘 모르겠지만, 쉬어야겠어요. 알려주세요, 지금 기분이 아닙니다. 좀 쉬어야겠어요. 어딘가 가서 신선한 공기를 마시고 싶어요. 해변에 갈 수도 있고, 아니면 어딘가에서 쉴 수도 있어요. 잘 모르겠지만, 쉬어야겠어요. 알려주세요, 지금 기분이 아닙니다. 좀 쉬어야겠어요. 어딘가 가서 신선한 공기를 마시고 싶어요. 해변에 갈 수도 있고, 아니면 어딘가에서 쉴 수도 있어요. 잘 모르겠지만, 쉬어야겠어요. 알려주세요, 지금 기분이 아닙니다. 좀 쉬어야겠어요. 어딘가 가서 신선한 공기를 마시고 싶어요. 해변에 갈 수도 있고, 아니면 어딘가에서 쉴 수도 있어요. 잘 모르겠지만, 쉬어야겠어요. 알려주세요, 지금 기분이 아닙니다. 좀 쉬어야겠어요. 어딘가 가서 신선한 공기를 마시고 싶어요. 해변에 갈 수도 있고, 아니면 어딘가에서 쉴 수도 있어요. 잘 모르겠지만, 쉬어야겠어요. 알려주세요, 지금 기분이 아닙니다. 좀 쉬어야겠어요. 어딘가 가서 신선한 공기를 마시고 싶어요…
반복 단어 - Qwen3-8B ‘golden’ | ‘Golden’ (5,000 단어)에 대한 출력
한계 및 향후 연구
우리의 실험은 LLM이 단순한 작업에서도 문맥 길이에 걸쳐 일관되지 않은 성능을 보인다는 것을 입증합니다. 그러나 이 평가는 실제 사용 사례를 완전히 포괄하지는 않습니다. 실제로 긴 문맥 애플리케이션은 종종 훨씬 더 복잡하며, synthesis(합성) 또는 multi-step reasoning(다단계 추론)을 요구합니다. 우리의 발견에 기초하면, 우리는 그러한 조건 하에서 성능 저하가 훨씬 더 심각할 것으로 예상합니다.
우리의 결과는 긴 문맥 평가에 대한 향후 연구에도 시사점을 가집니다. 긴 문맥 벤치마크에 대한 이전 연구에서도 언급된 일반적인 한계는 입력 길이가 종종 더 복잡한 추론을 도입하므로 입력 길이와 작업 난이도를 혼동하는 경향입니다. 우리는 입력 길이를 요인으로 분리하고 작업 난이도를 상수로 유지하도록 실험에 초점을 맞췄습니다. 향후 연구를 위한 중요한 방향은 모델의 성능 저하 중 얼마나 많은 부분이 작업 자체의 본질적인 난이도에서 비롯되는지 대 긴 문맥을 효과적으로 처리하는 능력에서 비롯되는지를 분리하는 것입니다.
우리는 또한 이러한 성능 저하 뒤의 메커니즘을 설명하지 않습니다. 우리의 관찰은 관련 정보의 배치나 반복과 같은 문맥의 구조적 속성이 모델 행동에 영향을 미칠 수 있다고 시사하지만, 왜 그것이 발생하는지에 대한 확실한 답은 없습니다. 이러한 효과를 조사하려면 mechanistic interpretability(메커니즘적 해석 가능성)에 대한 더 깊은 조사가 필요하며, 이는 이 보고서의 범위를 벗어납니다.
더 광범위하게, 우리의 발견은 context engineering(문맥 엔지니어링)의 중요성을 가리킵니다: 모델의 문맥 윈도우의 신중한 구성 및 관리. 정보가 모델의 문맥에서 어디에 그리고 어떻게 제시되는지가 작업 성능에 강하게 영향을 미치므로, 이는 모델 성능을 최적화하기 위한 향후 연구의 의미 있는 방향이 됩니다.
결론
우리의 실험을 통해, 우리는 LLM이 입력 길이에 걸쳐 일관된 성능을 유지하지 않는다는 것을 입증합니다. 비어휘적 검색이나 텍스트 복제만큼 단순한 작업에서도, 우리는 입력 길이가 증가함에 따라 성능의 불균일성이 증가하는 것을 봅니다.
우리의 결과는 현재 벤치마크를 넘어서 더 엄격한 긴 문맥 평가의 필요성과 문맥 엔지니어링의 중요성을 강조합니다. 관련 정보가 모델의 문맥에 존재하는지 여부가 중요한 전부가 아닙니다; 더 중요한 것은 그 정보가 어떻게 제시되는가입니다. 우리는 가장 유능한 모델조차도 이에 민감하다는 것을 입증하여, 신뢰할 수 있는 성능을 위해 효과적인 문맥 엔지니어링이 필수적임을 보여줍니다.
각주
[1] (2025년 7월 16일) Latent List 인사이트가 추가되었고 Kiran Vodrahalli (Google Deepmind)에 의해 명확화가 이루어졌습니다
[2] 예시의 원본 출처: https://arxiv.org/pdf/2410.10813
참고문헌
[1] Kamradt, G. (2023). Needle In A Haystack - Pressure Testing LLMs [GitHub Repository]. Link
[2] Wu, D., Wang, H., Yu, W., Zhang, Y., Chang, K.-W., and Yu, D. (2025). LongMemEval: Benchmarking Chat Assistants on Long-Term Interactive Memory. arXiv preprint arXiv:2410.10813. Link
[3] Gemini Team, Georgiev, P., Lei, V. I., Burnell, R., Bai, L., Gulati, A., Tanzer, G., Vincent, D., Pan, Z., Wang, S., et al. (2024). Gemini 1.5: Unlocking multimodal understanding across millions of tokens of context. arXiv preprint arXiv:2403.05530. Link
[4] OpenAI, Kumar, A., Yu, J., Hallman, J., Pokrass, M., Goucher, A., Ganesh, A., Cheng, B., McKinzie, B., Zhang, B., Koch, C., et al. (2025). Introducing GPT-4.1 in the API. Link
[5] Meta AI, (2025). The Llama 4 herd: The beginning of a new era of natively multimodal AI innovation. Link
[6] Modarressi, A., Deilamsalehy, H., Dernoncourt, F., Bui, T., Rossi, R. A., Yoon, S., and Schütze, H. (2025). NoLiMa: Long-Context Evaluation Beyond Literal Matching. arXiv preprint arXiv:2502.05167. Link
[7] Fu, H. Y., Shrivastava, A., Moore, J., West, P., Tan, C., and Holtzman, A. (2025). AbsenceBench: Language Models Can’t Tell What’s Missing. arXiv preprint arXiv:2506.11440. Link
[8] Vodrahalli, K., Ontanon, S., Tripuraneni, N., Xu, K., Jain, S., Shivanna, R., Hui, J., Dikkala, N., Kazemi, M., Fatemi, B., et al. (2024). Michelangelo: Long Context Evaluations Beyond Haystacks via Latent Structure Queries. arXiv preprint arXiv:2409.12640. Link
[9] openai. (2025). mrcr [Dataset]. Hugging Face. Link
[10] openai. (2025). graphwalks [Dataset]. Hugging Face. Link
[11] Shi, F., Chen, X., Misra, K., Scales, N., Dohan, D., Chi, E., Schärli, N., and Zhou, D. (2023). Large Language Models Can Be Easily Distracted by Irrelevant Context. arXiv preprint arXiv:2302.00093. Link
[12] jamescalam. (2024). ai-arxiv2 [Dataset]. Hugging Face. Link
[13] Peng, B., Quesnelle, J., Fan, H., and Shippole, E. (2023). YaRN: Efficient Context Window Extension of Large Language Models. arXiv preprint arXiv:2309.00071. Link
[14] McInnes, L., Healy, J., and Melville, J. (2020). UMAP: Uniform Manifold Approximation and Projection for Dimension Reduction. arXiv preprint arXiv:1802.03426. Link
[15] Campello, R. J. G. B., Moulavi, D., and Sander, J. (2013). Density-Based Clustering Based on Hierarchical Density Estimates. In Pei, J., Tseng, V. S., Cao, L., Motoda, H., and Xu, G. (Eds.), Advances in Knowledge Discovery and Data Mining (PAKDD 2013), Lecture Notes in Computer Science, vol 7819. Springer, Berlin, Heidelberg. Link
부록
정리된 LongMemEval 데이터셋과 사용된 needle/distractor는 여기에서 다운로드할 수 있습니다.
LLM judge 정렬:
우리는 NIAH 및 LongMemEval 실험에 대한 출력을 평가하기 위해 LLM judge를 사용합니다. 이러한 judge는 다음 프로세스를 통해 인간 판단에 보정됩니다:
-
모델 출력의 일부를 수동으로 올바르지 않음/올바름으로 레이블링합니다 (NIAH의 경우 약 500개 출력, LongMemEval의 경우 약 600개 출력)
-
GPT-4.1을 사용하여 동일한 모델 출력 일부를 올바르지 않음/올바름으로 레이블링합니다.
-
인간-모델 정렬 판정의 비율을 측정하여 정렬 점수를 계산합니다.
-
정렬되지 않은 것에 대한 수동 검사를 기반으로 프롬프트를 반복합니다.
-
0.99 이상의 정렬 점수가 달성될 때까지 2-4 단계를 반복합니다.
테스트된 모델
문맥 윈도우 또는 thinking_budget 제약으로 인해 18개 모델 모두가 각 실험에 포함되지는 않습니다.
Anthropic
- Claude Opus 4
- Claude Sonnet 4
- Claude Sonnet 3.7
- Claude Sonnet 3.5
- Claude Haiku 3.5
OpenAI
- o3
- GPT-4.1
- GPT-4.1 mini
- GPT-4.1 nano
- GPT-4o
- GPT-4 Turbo
- GPT-3.5 Turbo
- Gemini 2.5 Pro
- Gemini 2.5 Flash
- Gemini 2.0 Flash
Alibaba
- Qwen3-235B-A22B
- Qwen3-32B
- Qwen3-8B
사용된 임베딩 모델
- text-embedding-3-small
- text-embedding-3-large
- jina-embeddings-v3 (input_type=‘text-matching’)
- voyage-3-large (input_type=None)
- all-MiniLM-L6-v2
Needle-Question 유사도
참고: 동일 모델의 thinking/non-thinking 모드는 별도로 취급됩니다

Needle-Question 유사도 - arXiv haystack/PG 에세이 needles

Needle-Question 유사도 - PG 에세이 haystack/PG 에세이 needles

Needle-Question 유사도 - PG 에세이 haystack/arXiv needles
Needle-Haystack 유사도 결과에서 언급했듯이, 우리는 모델들이 다른 needle-haystack 조합에 비해 예외적으로 잘 수행하는 이 한 가지 발생을 주목합니다. 그 자체로는 고성능 모델들이 균일한 성능을 가진 것처럼 보일 수 있습니다. 그러나 이러한 모델들에 대한 이러한 균일성은 나머지 실험 전반에 걸쳐 유지되지 않습니다.
Distractor의 영향

Distractor의 영향: Distractor 수에 따른 성능 - arXiv haystack/arXiv needles

Distractor의 영향: 개별 Distractor에 따른 성능 - arXiv haystack/arXiv needles

Distractor의 영향: Distractor 수에 따른 성능 - PG 에세이 haystack/PG 에세이 needles

Distractor의 영향: 개별 Distractor에 따른 성능 - PG 에세이 haystack/PG 에세이 needles

Distractor의 영향: Distractor 수에 따른 성능 - PG 에세이 haystack/arXiv needles

Distractor의 영향: 개별 Distractor에 따른 성능 - PG 에세이 haystack/arXiv needles

Distractor의 영향: 실패 분석 - arXiv haystack/arXiv needles

Distractor의 영향: 실패 분석 - PG 에세이 haystack/PG 에세이 needles

Distractor의 영향: 실패 분석 - PG 에세이 haystack/arXiv needles
반복 단어

반복 단어: 위치 정확도 - GPT 패밀리

반복 단어: 위치 정확도 - Gemini 패밀리

반복 단어: 위치 정확도 - Qwen 패밀리

반복 단어: 단어 수 차이 - GPT 패밀리

반복 단어: 단어 수 차이 - Gemini 패밀리

반복 단어: 단어 수 차이 - Qwen 패밀리