고정된 언어모델이 컨텍스트 창 밖 긴 문서를 격자 탐색으로 읽는다

Periscope: Extending Frozen Language Models Beyond Their Context Window

HF Daily2610.04047

Mohamed Eltahir, Anas Obayd, Raed Rashid2026-10-02

무엇인가

긴 문맥을 다루는 언어모델은 세 가지 벽에 부딪힌다. 어텐션 비용이 입력 길이의 제곱으로 늘고, 컨텍스트 윈도에서 멈추며, 그 윈도에 도달하기도 전에 정확도가 떨어진다. 논문은 Hsieh et al.(2024)과 Modarressi et al.(2025)을 근거로, 128k를 주장하는 13개 모델 중 11개가 32k에서 짧은 문맥 정확도의 절반 아래로 떨어진다는 점과 긴 입력의 중간 내용이 양 끝보다 덜 쓰인다는 점을 든다. 기존 대응은 세 갈래인데, 윈도를 늘리는 쪽은 제곱 비용과 통짜 메모리를 그대로 안고 가고, 임베딩 검색이나 프롬프트 압축으로 미리 읽을 것을 고르는 쪽은 리더의 판단 밖에서 정해진 선택 규칙에 의존하며, 조각조각 읽는 쪽은 각 조각이 자기 앞뒤만 본다. 저자들은 읽기가 유한한 답 집합에 대한 결정일 때, 즉 어느 문서가 관련 있는지, 어느 선택지가 지지되는지, 어느 구절이 근거인지를 정하는 일일 때에는 그 읽기를 분해할 수 있다고 본다.

어떻게 동작하나

Periscope는 학습이 필요 없는 추론 기법이다. 텍스트를 c 토큰짜리 청크 N개로 자르고 K=⌈√N⌉로 두어 K×K 격자에 배치한다. 여기서 K개의 로컬 스팬(연속한 K개 청크를 이어 붙인 것)과 K개의 스트라이드 스팬(매 K번째 청크를 모아 전체 텍스트를 균일하게 샘플링한 것)을 만들고, 동결된 모델에 같은 질문을 던진다. 각 호출은 첫 답 토큰에서 답별 로그 오즈를 읽는데, 선택지들 외에 기권(abstain) 선택지를 하나 더 넣고 log p(y|S,q) − log p(ȳ|S,q)를 점수로 쓴다. 기권 선택지 덕분에 근거가 없는 스팬은 특정 선택지를 임의로 밀어주는 대신 모든 선택지를 낮게 채점하므로, 서로 다른 스팬의 점수를 비교할 수 있다. 모든 청크는 정확히 하나의 로컬 스팬과 하나의 스트라이드 스팬에 속해 두 번 읽히고, 호출은 서로 의존하지 않는 2K번이다. 각 호출의 길이는 s 토큰 텍스트에 대해 약 √(sc) 토큰이다.

무엇과 다른가

답은 텍스트의 어느 한 부분이 지지하면 충분하다는 전제에서, 답마다 로컬 최고점과 스트라이드 최고점을 더한다. score(y) = max_i L_i(y) + max_j S_j(y)이며, 어떤 로컬 스팬과 어떤 스트라이드 스팬이 동시에 지지할 때만 높은 점수가 나온다. 청크별 점수 M[i,j] = max_{y≠ȳ}(L_i(y)+S_j(y))는 추가 호출 없이 근거 지도를 만들고, 그 최고점이 답을 만든 청크다. 같은 지도가 네 가지 읽기로 쓰인다. 문서 랭킹(Yes/No 로그오즈), 직접 답변(argmax), 근거 위치 찾기, 그리고 지도 상위 K개 청크를 원래 순서로 이어 한 번 더 읽고 답하는 선택적 읽기(총 2K+1회)다. 도달 범위는 s_max ≈ W²/c로, c=500일 때 32k 윈도가 약 2M 토큰, 128k 윈도가 약 33M 토큰이다. 비용은 전체 읽기 as+bs² 대비 프로브가 2as+2b√c·s^1.5로, 짧은 텍스트는 통째로 읽는 게 싸고 긴 텍스트는 프로브가 싸며 두 비용이 같아지는 교차점은 대략 a/b다. 메모리는 프로브가 √(sc) 토큰의 KV 캐시만 들고 있어 텍스트가 길수록 이득이 커진다.

어떻게 쓰나

실험은 모두 동결 모델을 vLLM bfloat16으로 A100 80GB 한 장에 올려 진행했고, 청크는 QA 500토큰, 검색 100토큰이다. LongBench v2(503문항, 8k~2M 단어, short 180·medium 215·long 108)에서 Qwen3.5-4B의 윈도 읽기는 131k에서 41.9로 정점을 찍는데, 지도가 고른 K개 청크(약 9k 토큰)만 읽어도 같은 41.9가 나온다. 더 긴 윈도는 도움이 되지 않아 64k 38.2, 131k 41.9, 262k 41.6, YaRN 1M 39.2로 오히려 떨어진다. 같은 예산에서 지도는 임베딩 유사도 선택보다 6점, 무작위보다 9점, 앞쪽 K개보다 11점 앞선다. 131k에 들어가는 298개 문맥에서는 지도가 고른 청크로 읽은 답이 전체 문맥을 읽은 답과 71% 일치해, 임베딩 선택 64%, 무작위 58%보다 높다. 27B는 262k 윈도 읽기가 55.9로 Periscope의 두 읽기보다 3.2점 앞서지만, 모든 문맥이 131k를 넘는 긴 분할에서는 프로브만 쓰는 직접 읽기가 57.4로 131k 읽기보다 7.4점 높다. 262k 읽기는 호출당 17GB 캐시를 쓰는 반면 프로브는 3.1GB다. 지도를 4B가 만들고 27B가 읽는 조합도 임베딩 선택을 4점 앞서고, Gemma-4-26B-A4B-it에서도 선택적 읽기가 43.7 대 42.9로 윈도 읽기를 앞서며 긴 분할에서 5.6점 차이를 낸다.

전제와 한계

InfiniteBench En.MC(중간값 150k 토큰)에서 지도의 읽기는 82.1로 최고 윈도 읽기(262k)보다 5점, 131k 읽기보다 8점 높다. 131k에 들어가는 79개에서는 131k 읽기가 82.3 대 78.5로 앞서지만, 들어가지 않는 150개에서는 84.0 대 70.0으로 14점 앞선다. BRIGHT 장문서 코퍼스(문서 3,792개, 질의 350개)에서는 랭킹 읽기가 비교한 여섯 방법 중 최고 NDCG@10과 MRR을 냈고, 태스크용으로 학습된 임베딩 대비 MRR과 Recall@1에서 앞서며 Recall@10에서만 0.5점 뒤진다. 절제 실험에서 스트라이드 프로브를 빼면 BRIGHT NDCG@10이 .637에서 .551로 떨어져, 로컬 뷰에 부족한 것은 해상도가 아니라 전체 문서를 보는 시야임을 보인다. Chain of Agents는 같은 모델·같은 로컬 스팬으로 선택적 읽기보다 10점 낮고 지연은 3배다. 비용은 4B 프로브 배치가 262k에서 26초(단일 읽기 40초), 1M에서 108초(단일 읽기 457초)였고, 27B가 4.5M 토큰 문맥을 읽을 때 프로브 캐시는 3.1GB인데 단일 패스는 296GB가 필요하다.

실무적으로 이 방법은 모델을 다시 학습시키지 않고, 이미 서빙 중인 모델의 윈도를 넘는 문서를 다뤄야 할 때 쓸 수 있다. 정답 집합이 유한한 작업, 즉 문서 관련성 판정이나 객관식 QA, 근거 위치 찾기에 맞고, vLLM 같은 기존 서빙 스택 위에 짧은 호출 2K번을 얹는 형태라 구현 부담이 작다. 다만 교차점(측정값 기준 4B 119k, 27B 278k 토큰) 아래에서는 단일 읽기보다 토큰을 더 처리하므로, 실제 문맥 길이 분포를 보고 도입 여부를 정해야 한다. 프로브 점수를 뽑는 데 모델 자체를 써야 하므로 지연과 비용 예산을 함께 계산해야 하고, 검색 태스크에서는 청크를 100토큰으로 줄이는 등 태스크별 설정 차이도 확인해야 한다.

저자들이 밝힌 한계는 분명하다. 이 방법은 유한한 답 집합에 대한 결정만 다루며, 요약 같은 개방형 출력에는 대응하는 읽기가 없다. 멀리 떨어진 스팬의 근거는 선택적 읽기 단계에서야 합쳐지므로, 근거가 여러 문서에 흩어진 멀티 문서 QA에서는 윈도 읽기에 뒤진다. 교차점 아래 길이에서는 단일 읽기보다 비용이 크다. 향후 과제로 개방형 출력용 읽기와, 프로브 점수와 지도를 훨씬 싼 검색기·랭커로 증류하는 방향을 제시한다.