한 줄 요약
Periscope는 텍스트를 분할 읽고 결합하여 컨텍스트 윈도우를 확장하는 추론 방법으로, 27B 모델이 4.5M 토큰을 80GB GPU에서 처리 가능하다.
핵심 기여도
- **Factorized reading**: 텍스트를 $K \times K$ 그리드로 분할하고 $K$개의 로컬 및 스트라이드 프로브를 통해 $W^2/c$ 토큰을 읽는 방식.
- **Evidence map**: 로컬과 스트라이드 점수를 결합하여 증거 위치를 추정하는 맵을 생성, 추가 비용 없이 제공.
- **Readouts of the map**: 동일 맵으로 문서 순위, 질문 답변, 증거 위치 추출, 짧은 읽기 선택 가능.
- **성능**: LongBench v2에서 9k 토큰 읽기로 32k~1M 토큰 윈도우 최적 성능과 동일, InfiniteBench에서 5점 앞서.
핵심 아이디어
Periscope는 컨텍스트 윈도우 내에서 동작하는 언어 모델이 긴 텍스트를 처리할 수 있도록, 텍스트를 $K = \lceil \sqrt{N} \rceil$ 크기의 $K \times K$ 그리드로 분할하고, 각 청크에 대해 로컬 및 스트라이드 프로브를 독립적으로 수행한다. 이는 모델이 단일 윈도우에서 정확도가 높은 상태를 유지하면서도 전체 텍스트를 간접적으로 읽을 수 있도록 한다. 로컬 프로브는 $K$개의 연속 청크를, 스트라이드 프로브는 전체 텍스트를 샘플링하는 $K$개의 청크를 처리한다. 각 청크는 두 프로브로 두 번 읽히고, 최종적으로 증거 맵을 생성하여 정답을 결정한다. 이는 기존의 단일 패스 방식과 비교해 메모리 사용량을 줄이면서도 정확도를 유지한다.
기술적 접근법
- **모델**: 훈련 없이 동결된 언어 모델 사용.
- **입력 분할**: 텍스트를 $N$개의 청크로 분할, $K = \lceil \sqrt{N} \rceil$로 $K \times K$ 그리드 생성.
- **프로브**: $K$개의 로컬 프로브(연속 청크)와 $K$개의 스트라이드 프로브(전체 샘플링 청크) 수행.
- **토큰 수**: $s$ 토큰, 청크 크기 $c$일 때, 각 프로브는 약 $\sqrt{sc}$ 토큰.
- **메모리**: 단일 프로브만 캐시, 27B 모델은 4.5M 토큰 처리 가능 (80GB GPU, 기존 296GB 필요).
- **결정 방식**: 각 청크의 로컬 및 스트라이드 점수 최대값을 취해 증거 맵 생성.
주요 결과
- **LongBench v2**: 9k 토큰 읽기로 32k~1M 토큰 윈도우 최적 성능과 동일.
- **InfiniteBench**: 중간 컨텍스트 150k 토큰에서 최적 윈도우 읽기 대비 5점 앞서.
- **BRIGHT**: NDCG@10에서 6개 방법 중 최고 성능.
- **메모리 효율성**: 27B 모델이 4.5M 토큰 처리, 기존 단일 패스 대비 296GB → 80GB.
의의 및 한계
Periscope는 기존의 컨텍스트 윈도우 확장 방법(예: 메모리 확장, 요약, 검색)과 달리, 훈련 없이 동결된 모델을 활용해 메모리 효율성을 극대화한다. 증거 맵은 추가 비용 없이 제공되며, 다양한 태스크(문서 순위, 질문 답변, 증거 추출)에 적용 가능하다. 그러나 이 방법은 유한한 정답 집합을 가정하며, 멀티-문서 QA나 개방형 출력(예: 요약)에서는 성능이 떨어질 수 있다. 또한, 단일 읽기보다 비용이 더 들 수 있는 상황도 존재한다.
실용적 활용
Periscope는 대규모 텍스트 분석, 법적 문서 검색, 긴 질문-답변 시스템 등에서 유용하게 활용될 수 있다. 특히, GPU 메모리가 제한된 환경에서 긴 텍스트를 처리해야 하는 연구 및 산업 현장에 적합하다.