Unlimited OCR
Baidu Inc. · 2026-06 · arXiv:2606.23050

Unlimited OCR
원샷 장기 파싱의 시대

Unlimited OCR Works — Welcome the Era of One-shot Long-horizon Parsing

LLM을 디코더로 쓰는 종단간(end-to-end) OCR 모델은 언어의 사전 분포를 활용해 정확도를 높인다. 그러나 출력 시퀀스가 길어질수록 누적된 KV 캐시가 메모리를 끌어올리고 생성을 점점 느리게 만든다. 장기 필사에서 효율이 떨어지지 않는 사람과는 정반대다. Unlimited OCR은 사람의 파싱 작업 기억을 모방해, 디코더의 모든 어텐션을 참조 슬라이딩 윈도우 어텐션(R-SWA)으로 교체하고 디코딩 내내 KV 캐시를 일정하게 유지한다.

한 번의 forward pass — 책을 베껴 쓰는 시선 decode step ·
REFERENCE — 시각 토큰 + 프롬프트 (항상 전부 본다, 상태 전이 없음)
OUTPUT — 생성 토큰 (최근 n개만 보는 인과적 슬라이딩 윈도우)
참조 (전부 attend) 작업 기억 (최근 n) 현재 토큰 부드러운 망각 (no attend)
Core Contributors · Youyang Yin, Huanhuan Liu, YY  |  코드·가중치: github.com/baidu/Unlimited-OCR
KEY RESULTS

한눈에 보는 결과

93.23%
OmniDocBench v1.5 종합 점수. DeepSeek OCR 베이스라인을 +6.22 앞선 종단간 SOTA
상수
디코딩 전 구간에서 일정한 KV 캐시. 길이 T에 무관하게 Lm+n으로 상한
40+
단일 forward pass로 처리하는 문서 페이지 수. 40+ 페이지에서도 편집거리 0.11 미만
+35%
6,000 토큰 출력 시 DeepSeek OCR 대비 처리량(TPS) 우위. 길수록 격차 확대


§ 1 · INTRODUCTION

사람은 장기 작업에서 느려지지 않는다The for-loop paradigm is an engineering workaround, not intelligence

사람은 수백 페이지의 책을 옮겨 적고, 몇 시간짜리 음성을 번역하는 장기(long-horizon) 작업에 놀랍도록 능하다. 그런데 바로 이런 작업에서 현재 모델은 무너진다. OCR을 예로 들면, 어떤 기존 모델도 한 번의 forward pass로 열 페이지조차 파싱하지 못한다.

대신 모델은 페이지마다 메모리를 초기화하는 for-loop 방식으로 한 페이지씩 처리한다. 이 차이는 단순한 문맥 부족의 문제가 아니다. 사람은 먼 출력은 기억에서 부드럽게 흐려지되 가까운 문맥으로 진행 상황을 추적하는 연속적 인지 상태를 유지한다. 반면 for-loop는 매 페이지에서 메모리를 완전히 지워, 일관된 장기 과정을 외부 스케줄러가 관리하는 고립된 단기 작업으로 파편화한다. 어느 정도 작동하지만 이는 공학적 우회일 뿐 AGI를 향한 한 걸음이 아니다.

문서를 옮겨 적는 행위를 떠올려 보면, 글자 하나를 베낄 때 이미 쓴 전체 텍스트를 훑지 않는다. 방향을 유지하려고 바로 주변 문맥만 흘긋 본다. 이 일상적 행동은 현재 모델과 근본적으로 다른 어텐션 패턴을 가리킨다. 전체 이력을 다 참조하지 않으니 표준 풀 어텐션이 아니고, 시각·참조 토큰이 순환적 상태 갱신을 겪지 않으니 선형 어텐션도 아니다. 그런 갱신은 시각 특징을 점점 흐리게 해 인식 정확도를 떨어뜨릴 것이다.

관찰책을 베끼는 사람의 세 초점

사람이 손으로 책을 베낄 때 주의는 보통 세 지점에 모인다. 이미 옮긴 모든 것을 완전히 기억하기보다 일종의 부드러운 망각(soft forgetting)에 의존하며, 이것이 낮은 인지 부하로 장기 파싱을 지속하는 열쇠일 수 있다.

REFERENCE

원본 책에 집중

옮겨 적을 원본 소스. OCR에서는 시각 토큰 전체에 해당한다. 어디를 읽는지(know-what) 안다.

WORKING MEMORY

방금 쓴 부분에 집중

막 쓴 소량(보통 몇 글자)의 최근 문맥. 어디까지 진행했는지(know-where)를 추적한다.

NEXT TOKEN

다음 글자에 집중

이제 막 쓸 다음 글자. 인과적 슬라이딩 윈도우 안의 상태 전이로 진행을 이어 간다.

기여이 보고서의 세 가지 기여

  1. R-SWA 제안. 각 토큰이 모든 참조 토큰(시각 토큰 + 프롬프트)에 attend하되, 출력 어텐션은 직전 n개 토큰(기본 128)으로 제한한다. 각 토큰은 이미지 전체를 보면서 인과적 슬라이딩 윈도우 안의 상태 전이로 OCR 진행을 자율적으로 추적한다. 추론 내내 KV 캐시가 일정해 메모리 압력과 연산 비용이 줄어든다.
  2. Unlimited OCR 제안. DeepSeek OCR을 베이스라인으로, 높은 이미지 압축률의 DeepEncoder는 유지하고 디코더 LLM의 모든 어텐션을 R-SWA로 바꾼다. 이로써 한 번의 forward pass로 수십 페이지 논문을 파싱하며, 일반 OCR 정확도도 소폭 향상된다. OmniDocBench v1.5에서 93%로 베이스라인을 6% 앞선다.
  3. 선형 복잡도 어텐션의 OCR 예비 검증. 학습 문맥을 무차별로 키우는 대신, 우아한 방식으로 장기 OCR을 달성한다. R-SWA를 ASR·번역 등 장기 의존성이 필요한 참조 기반 작업으로 확장할 가능성을 본다.
§ 3 · METHODOLOGY

아키텍처와 R-SWADeepEncoder + MoE-LLM, all attention replaced by R-SWA

Unlimited OCR은 DeepSeek OCR을 베이스라인으로 채택한다. DeepEncoder와, 총 3B·활성 500M 파라미터의 혼합전문가(MoE) 구조로 이루어진다. 원본 DeepSeek OCR과 달리 표준 다중헤드 어텐션(MHA)을 R-SWA로 교체한다.

3.3DeepEncoder — 16× 시각 토큰 압축

DeepEncoder는 SAM-ViT와 CLIP-ViT를 직렬 연결하고 다리(bridge)에서 16× 토큰 압축을 적용한다. 앞 절반은 윈도우 어텐션으로 원본 이미지 토큰을 처리하고, 전역 어텐션은 압축된 토큰에만 쓴다. 이 설계는 고해상도 이미지를 인코딩할 때 활성값을 낮게 유지해 GPU 메모리를 아낀다. DeepEncoder는 다섯 해상도 모드를 지원하나 두 가지를 쓴다. 다중 페이지용 "Base" 모드(1024×1024)와 단일 페이지용 "Gundam"(동적 해상도)이다. 구체적으로 1024×1024 PDF 이미지를 단 256 토큰으로 압축한다.

이 높은 압축률이 Unlimited OCR에 결정적인 이유는, 시각 토큰이 출력과 함께 상태 전이를 겪지 않기 때문이다. 시각 토큰은 한 번 인코딩되면 장기 파싱 전 과정 동안 정적으로 유지된다.

3.4.1R-SWA의 어텐션 계산

R-SWA는 본질적으로 어텐션을 크기 m+n의 두 구간 윈도우로 제한한다. m은 접두(prefix) 토큰의 윈도우로 시각 토큰과 프롬프트를 모두 포함하며, 한 번의 추론 동안 고정된다. 페이지 수나 문서 해상도에만 의존할 뿐 디코딩 길이에 따라 변하지 않는다. 디코드 영역의 윈도우 n도 크기가 고정이며 인과적으로 미끄러진다.

N(t) = P ∪ Dn(t),   P = {1, …, Lm}(1)
Dn(t) = { j | max(Lm+1, Lm+t−n) ≤ j ≤ Lm+t−1 }(2)

P는 길이 Lm의 접두 구간으로 이후 모든 토큰에 전역적으로 보이고, Dn(t)는 디코드 영역 위의 너비 n 인과적 슬라이딩 윈도우다. 토큰 t에서 위치 j로의 어텐션 가중치와 출력 표현은 다음과 같다.

αtj = exp(qtᵀkj/√dk) / Σi∈N(t) exp(qtᵀki/√dk)(3)
ot = Σj∈N(t) αtj vj(4)

각 디코딩 토큰은 모든 접두 토큰을 지속적 전역 문맥으로 attend하되, 이미 생성된 토큰에 대해서는 경계 지어진 인과 윈도우 안에서만 국소적으로 attend한다. 그 결과 전체 접두 정보 접근을 유지하면서도 늘어나는 디코드 시퀀스의 어텐션 비용을 줄인다.

대비풀 어텐션 vs R-SWA

VANILLA MHA표준 풀 어텐션

생성 토큰이 전체 이력을 attend한다. KV 캐시가 T에 따라 무한히 커지고, 시각 토큰이 출력과 섞이며 점진적으로 흐려질 수 있다.
KV cache → C(T) = Lm + T  (선형 증가)

R-SWA참조 슬라이딩 윈도우

참조 토큰은 전부 보되 출력은 최근 n개만. 시각 토큰을 상태 전이에서 제외해 충실도를 보존하고, 점진적 흐려짐을 피한다.
KV cache → C(T) = Lm + min(n,T) ≤ Lm+n

파랑 = 참조(시각+프롬프트) attend · 주황 = 작업 기억(최근 n) attend · 어두움 = no attend. R-SWA는 바닐라 SWA와 달리 시각 토큰을 상태 전이에서 배제해 시각 토큰 충실도를 보존한다.

§ 3.4.2 · KV CACHE MANAGEMENT

KV 캐시를 상수로 묶다From linear growth in T to a bounded L_m + n

DeepSeek OCR 베이스라인은 표현력은 강하나 KV 캐시 압력이 막대한 표준 MHA를 쓴다. R-SWA는 항상 크기 Lm의 전체 접두 캐시를 유지하되, 생성된 연속분에 대해서는 최근 n개 토큰만 보관한다.

CMHA(T) = Lm + T(5)
CR-SWA(T) = Lm + min(n, T) ≤ Lm + n(6)

표준 MHA의 캐시는 T에 따라 무한히 커지지만, R-SWA의 디코드 측 캐시는 상수 윈도우 크기로 상한된다. 감소를 정량화하기 위해 캐시 비율 ρ(T)를 정의한다.

ρ(T) = CR-SWA(T) / CMHA(T) = (Lm+min(n,T)) / (Lm+T)(7)

생성 길이가 충분히 길어 T ≫ n이면 ρ(T) = (Lm+n)/(Lm+T)로 T가 커질수록 감소하고, 디코드 길이가 접두 길이와 윈도우 크기를 압도하면 ρ(T) ≈ (Lm+n)/T → 0이 된다.

따라서 장기 시퀀스 디코딩에서 R-SWA는 KV 캐시 요구를 T에 대한 선형 증가에서 경계 지어진 양 Lm+n으로 낮춰, 표준 MHA 대비 상당한 메모리 절약을 낳는다. R-SWA가 제한된 자원에서 거의 무제한에 가까운 파싱을 가능케 하는 초석이다.

3.4.3커널 연구 — Flash Attention v3 지연

디코딩 길이가 늘어남에 따라 Flash Attention v3 커널의 호출당 시간을 측정하면, DeepSeek OCR의 표준 MHA 커널은 매 디코딩 step마다 지연이 커진다. 반면 Unlimited OCR(UOW)에서는 LLM 디코더 모든 층에 R-SWA를 적용한 직접적 효과로 시간이 일정하게 유지된다. DeepSeek OCR에서 KV 캐시 길이가 특정 정렬 경계를 넘을 때 데이터 전송 효율이 급락하며 발생하는 스파이크도 R-SWA에서는 나타나지 않는다. 추론 중 GPU 메모리 사용 패턴도 동일하다. 원본은 선형으로 증가하지만 Unlimited OCR은 고정이다. 연산 비용과 메모리 사용량의 이 동시 안정성이 바로 장기 파싱을 가능케 하는 요소다.

§ 4 · EXPERIMENTAL SETTINGS

데이터 엔진과 구현~2M samples · continue-training from DeepSeek OCR

Unlimited OCR 학습을 위해 약 200만 개 문서 OCR 샘플을 구성하며, 단일 페이지와 다중 페이지 비율은 9:1이다. 단일 페이지 PDF는 Paddle OCR로 주석을 달아 각 블록의 좌표와 내용을 이어 붙여 종단간 검출·파싱 정답을 만든다. 각 요소 좌표는 0–1000 범위로 정규화한다. 다중 페이지 데이터는 단일 페이지를 이어 붙여 합성하며, 2–50 페이지로 이루어진 약 20만 샘플을 무작위 생성하고 페이지 구분자로 를 쓴다. 모든 데이터는 32K 토큰 길이로 패킹한다.

구현 세부
  • DeepSeek OCR 체크포인트에서 출발해 글로벌 배치 256, 최대 길이 32K로 4,000 step 추가 학습. 8×16 A800 GPU에서 무작위 패킹 사용.
  • DeepEncoder는 동결하고 LLM 파라미터만 학습한다. DeepEncoder는 DeepSeek OCR에서 이미 충분히 최적화되어 있다.
  • AdamW 옵티마이저와 코사인 어닐링 스케줄러(초기 학습률 1e-4). 32K 학습을 위해 DeepEP를 쓰며 전문가 병렬(EP)은 4. 전체 파이프라인은 Megatron-LM 기반.
  • 추론은 Transformers에 R-SWA용 KV 캐시 관리를 구현하고 SGLang 엔진에 지원·최적화를 더했다. 두 프레임워크 모두 상수 TPS·GPU 메모리로 동작한다.
§ 5 · EVALUATION

주요 결과End-to-end SOTA on OmniDocBench

DeepSeek OCR을 기반으로 단 200만 PDF 문서 데이터에 추가 학습한 것만으로 Unlimited OCR은 종단간 SOTA를 달성한다. 이는 파싱 작업에서 R-SWA의 유효성을 입증한다.

OmniDocBench v1.5에서 DeepSeek OCR 대비 텍스트 편집거리가 0.035 줄고 표 TEDS가 5.96% 향상된다. 이는 이력 정보가 인과적·연속적으로 슬라이딩 윈도우에 공급되어, 모델이 단 몇 개 토큰만 보고도 OCR 진행 위치를 명확히 파악함을 보여 준다. v1.6에서도 종합 93.92%로 다시 종단간 SOTA에 도달해, 단일 페이지 PDF 수준 OCR에서는 모든 표준 어텐션을 너비 128의 R-SWA로 완전히 대체하는 것이 효과적이고 무손실임을 증명한다.

모델크기종합↑텍스트Edit수식CDMTEDSTEDS-S읽기순서Edit
▸ 종단간 모델 (v1.5)
Gemini-2.5 Pro88.030.07585.8285.7190.290.097
dots.ocr3B88.410.04883.2286.7890.620.053
Qwen3-VL235B89.150.06988.1486.2190.550.068
DeepSeek-OCR 23B-A0.5B89.170.04986.8585.6090.060.060
DeepSeek-OCR (베이스라인)3B-A0.5B87.010.07383.3784.9788.800.086
Unlimited-OCR3B-A0.5B93.230.03892.6190.9394.070.045
↑ 베이스 대비 Δ+6.22−0.035+9.24+5.96+5.27−0.041
▸ 종단간 모델 (v1.6)
FireRed-OCR2B93.260.03795.4488.0491.060.131
Logics-Parsing-v24B93.330.04195.6588.4291.980.137
Qianfan-OCR4B93.900.04095.0890.5393.310.13
Unlimited-OCR3B-A0.5B93.920.04295.7990.1693.320.129
표 1 · OmniDocBench(v1.5/v1.6) 비교. 모두 종단간 VLM 기반. v1.5는 고전 알고리즘·베이스라인과의 비교, v1.6은 현행 SOTA와의 비교용. Unlimited OCR 외에는 OmniDocBench 저장소에서 선택.

나아가 Unlimited OCR은 DeepSeek OCR의 이점을 모두 누린다. 활성 0.5B 파라미터만의 MoE 구조로 추론 효율이 매우 높다. OmniDocBench "Base" 모드에서 5,580 TPS(512 동시성)로 DeepSeek OCR의 4,951 TPS 대비 12.7% 빠르다. 출력이 길수록 이 이점은 더 뚜렷해진다.

5.3하위범주 분석 — 진정한 "공짜 점심"

OmniDocBench v1.5의 9개 문서 유형 비교에서, Unlimited OCR은 DeepSeek OCR 대비 모든 지표에서 명확하고 일관된 향상을 보인다. 디코더 측 최적화인 R-SWA가 타협 없는 개선, 즉 진정한 "공짜 점심"을 제공함을 보여 준다. DeepSeek OCR 2와 비교해도 텍스트 편집거리·읽기순서 모두 9개 중 7개에서 앞선다. PPT·신문·잡지·노트 같은 복잡한 레이아웃에서도 불리하지 않아, LLM 디코더의 모든 표준 어텐션을 R-SWA로 대체하는 것이 파싱 작업에 완결적이고 건전함을 거듭 확인한다.

§ 5.4 · LONG-HORIZON PARSING

한 번에 책 한 권을 파싱하다Constant latency from the first page to the last

장기 파싱은 Unlimited OCR의 새로운 능력이다. 이전 모델을 가로막은 두 장애물은, 첫째 지나치게 긴 출력이 최대 토큰 한도를 쉽게 넘는다는 점, 둘째 출력 지연이 시퀀스 길이에 따라 커져 수십 페이지 OCR이 점점 느려진다는 점이다.

R-SWA를 갖춘 Unlimited OCR은 수십~수백 페이지를 한 번에 prefill하고 첫 페이지부터 마지막까지 연속 파싱한다. 이 과정 내내 KV 캐시가 고정되어 출력 지연이 일정하게 유지된다. 20 페이지를 동시 입력해도 강한 결과를 유지하며, 40+ 페이지에서도 편집거리는 0.11 미만, Distinct-35는 97%다. 반복 오류 사례를 살펴보면 대부분 PDF의 작은 글자가 식별하기 어려운 곳에서 발생하는데, 이는 다중 페이지 조건에서 DeepEncoder "Base" 모드(1024×1024)를 쓴 탓이지 R-SWA가 장기 파싱에서 방향을 잃은 것이 아니다.

지표 \ 페이지2510152040+
Distinct-20 ↑99.76%99.78%97.49%99.92%98.73%96.08%
Distinct-35 ↑99.87%99.98%99.83%99.99%99.89%96.90%
편집거리 ↓0.03620.04520.05260.07870.05720.1069
표 3 · 장기 OCR 성능. 페이지 수별 Distinct-n(높을수록 좋음)과 편집거리(낮을수록 좋음).
§ 6 · EFFICIENCY ANALYSIS

출력이 길수록 벌어지는 격차Theoretical TPS ceiling across output lengths

이상적 동시성 조건에서 두 모델의 초당 출력 토큰(TPS)을 비교한다. prefill 길이는 10으로 고정하고 나머지 설정은 동일하다. 256 토큰에서는 두 모델 속도가 사실상 같지만, 출력이 길어질수록 DeepSeek OCR의 TPS는 꾸준히 하락하고 6,000 토큰에서 R-SWA를 쓰는 Unlimited OCR에 35% 뒤진다.

길이DeepSeek OCRUnlimited OCR
256
7229
7230
1024
7423
7841
2048
7167
7881
4096
6430
7905
6144
5823
7848

표 4 · 이론적 추론 성능 상한 비교(TPS). DeepSeek OCR은 길이가 늘수록 하락하나 Unlimited OCR은 일정하게 유지된다. 일관된 생성 속도가 장기 OCR의 결정적 요건임을 뒷받침한다.

§ 7 · 8 · LIMITATION & CONCLUSION

한계와 결론Toward truly unlimited OCR

한계와 향후 과제
  • 유한 문맥 길이(예: 32K)에서는 prefill 길이의 제약을 받아 진정한 무제한 파싱에 이르지 못한다. DeepEncoder가 높은 압축률을 달성해도 페이지가 쌓이면 prefill이 매우 길어진다.
  • 단기. 128K 등 더 긴 문맥 길이의 모델을 학습해 더 많은 페이지의 prefill을 지원한다.
  • 장기. prefill 풀을 구축하고 모델이 prefill KV 청크를 자동으로 가져오도록 학습시켜, 사람이 페이지를 넘기는 효과를 모사함으로써 진정한 무제한 OCR을 달성한다.
  • R-SWA를 ASR·번역 같은 참조 기반 작업으로 이전한다.

이 보고서는 Unlimited OCR 모델과 그 장기 파싱 능력을 떠받치는 R-SWA 알고리즘을 제안한다. 종단간 모델 디코더의 모든 표준 어텐션을 인과적 참조 기반 SWA로 대체해도 파싱 작업 성능이 무손실임을 검증한다. 이는 모델이 이력 출력의 유용한 정보를 윈도우로 연속적으로 넘기도록 학습함을 뜻하며, 이 부드러운 형태의 망각은 사람이 책을 베껴 쓰는 방식과 일치한다. R-SWA가 향후 더 많은 작업에 적용되어, 어텐션 연산과 메모리 사용량이 더는 장기 파싱 분야의 병목이 되지 않게 하리라 본다.