출처
- source_url: https://discuss.pytorch.kr/t/unlimited-ocr-kv-ocr-feat-baidu/10908
- author: 9bow
- published: 2026-06-25
- raw: raw source:
web-2026-06-30-unlimited-ocr-fixed-kv-cache-long-document-baidu
요약
Unlimited OCR은 바이두(Baidu)가 공개한 문서 OCR 모델로, 출력이 길어질수록 점점 느려지는 기존 엔드투엔드 OCR의 구조적 한계를 어텐션 메커니즘 자체를 바꿔 해결한다. 최근 DeepSeek OCR로 대표되는 엔드투엔드 OCR은 탐지와 인식을 하나의 LLM 디코더로 통합해 페이지 전체를 한 번의 순전파로 파싱하지만, 출력 시퀀스가 길어질수록 KV 캐시가 누적돼 메모리와 생성 속도가 계속 나빠진다. 그 결과 기존 모델들은 열 페이지조차 한 번에 처리하지 못하고 페이지마다 메모리를 초기화하는 for-loop 방식으로 우회하는데, 저자들은 이를 “AGI를 향한 진전이라기보다 엔지니어링 임시방편”이라 지적한다.
연구팀은 사람이 책을 필사할 때 원본, 방금 적은 몇 글자, 다음에 적을 글자에만 주의를 집중하고 먼 출력은 부드럽게 잊는 “소프트 망각(soft forgetting)” 행동에서 착안해 **Reference Sliding Window Attention(R-SWA)**를 제안한다. R-SWA는 어텐션 범위를 시각 토큰·프롬프트를 포함하는 전역 접두(prefix) 구간과, 생성된 텍스트에 대해서만 폭 n(기본값 128)으로 인과적으로 미끄러지는 슬라이딩 윈도우로 제한한다. 이 덕분에 표준 멀티헤드 어텐션(MHA)의 KV 캐시가 디코딩 길이 T에 비례해 무한정 늘어나는 것과 달리(C=L_m+T), R-SWA의 캐시는 상수 상한(C≤L_m+n)으로 묶인다. 모델 구조는 DeepSeek OCR을 베이스라인으로 삼아 16배 토큰 압축을 수행하는 DeepEncoder와 3B 중 0.5B만 활성화되는 MoE LLM 디코더로 구성되며, 디코더의 모든 표준 어텐션을 R-SWA로 교체한 것이 유일한 변경점이다.
성능 면에서 Unlimited OCR은 OmniDocBench v1.5에서 93.23점을 기록해 베이스라인 DeepSeek OCR(87.01)을 6.22점 앞섰고, 최신 v1.6에서는 93.92점으로 DeepSeek-OCR 2(90.25), dots.ocr(90.77), FireRed-OCR(93.26) 등을 제치고 엔드투엔드 SOTA를 달성했다. 흥미로운 점은 R-SWA가 효율만 개선한 게 아니라 정확도까지 끌어올렸다는 것으로, 저자들은 풀 어텐션이 출력 길이가 늘수록 발산할 수 있는 반면 R-SWA는 모델을 밀집 OCR 작업에 더 집중시킨다고 해석한다. 신문·노트처럼 레이아웃이 복잡한 문서 유형에서 특히 격차가 컸다(신문 텍스트 편집 거리 0.131→0.081, 노트 0.145→0.066). 장문 파싱 자체 테스트셋에서는 20페이지를 동시에 입력해도 편집 거리 0.0572, 40페이지 이상에서도 0.11 미만을 유지했으며, Flash Attention v3 커널 지연 시간과 GPU 메모리 사용량 모두 디코딩 길이와 무관하게 일정하게 유지되는 것이 확인됐다(6,000토큰 부근에서 DeepSeek OCR 대비 약 35% 빠른 TPS).
학습은 약 200만 건의 문서 OCR 데이터(단일:다중 페이지 9:1)로 DeepSeek OCR 체크포인트에서 이어 학습(4,000스텝)했으며, DeepEncoder는 동결하고 LLM 파라미터만 학습했다. 저자들은 현재 모델이 32K 같은 유한 컨텍스트 안에서 프리필 자체는 여전히 길이 제약을 받아 “진정한 무제한 파싱”에는 이르지 못했다고 인정하며, 향후 더 긴 컨텍스트 학습과 프리필 풀(prefill pool) 구축, 음성 인식·번역 등 참조 기반 장문 작업으로의 확장을 계획하고 있다. 모델 가중치와 코드는 Hugging Face·GitHub에 공개되어 있으며 transformers 또는 SGLang으로 바로 추론할 수 있다.
관련 위키
원문 보존 위치
원문 전체는 raw source: web-2026-06-30-unlimited-ocr-fixed-kv-cache-long-document-baidu에 source_url과 함께 저장되어 있다.