Baidu Unlimited-OCR: 문서 해석의 길이 제한을 극복하다
Baidu의 참조 슬라이딩 윈도우 어텐션(R-SWA)이 어떻게 O(1) 일정한 메모리 문서 파싱을 달성하여 페이지별 OCR을 구식으로 만드는지 알아봅니다.
Unlimited-OCR
일정한 O(1) 메모리 복잡도로 단일 포워드 패스에서 수십 페이지의 문서를 해석합니다.
분할 없이 단일 패스에서 수십 페이지의 문서를 파싱합니다.
KV 캐시 크기가 일정하게 유지되어 GPU 메모리 부족(OOM) 오류를 방지합니다.
문서 길이가 늘어나도 토큰당 생성 속도가 저하되지 않습니다.
Baidu는 수십 페이지의 복잡한 문서를 단일 포워드 패스에서 일정한 메모리 공간으로 파싱하여 OmniDocBench에서 SOTA 결과를 달성한 획기적인 문서 파싱 모델인 Unlimited-OCR을 공식적으로 오픈 소스화했습니다.
문서 지능의 진화
수년 동안 문서 디지털화는 2단계 프로세스였습니다. 개별 페이지 이미지에서 광학 문자 인식(OCR)을 실행한 다음, 휴리스틱이나 LLM을 사용하여 레이아웃, 표, 읽기 순서를 재구성하는 것이었습니다. 최근 멀티모달 VLM이 엔드투엔드 파싱 능력을 보여주었으나, 문서 길이에 의해 크게 제한되었습니다. 50페이지짜리 PDF를 한 번에 처리하려 하면 어텐션 메커니즘의 이차적인 스케일링 때문에 GPU 메모리가 금방 바닥납니다.
장문 문서 처리에서의 KV 캐시 병목 현상
표준 Transformer 디코더에서는 모델이 텍스트를 생성할 때 이전의 모든 토큰의 Key-Value(KV) 상태를 메모리(KV 캐시)에 저장하여 재계산을 방지합니다. 긴 문서를 필사할 때 출력 텍스트는 쉽게 수천 토큰에 달할 수 있습니다. 이는 KV 캐시를 선형적으로 증가시켜 자기 어텐션에서 이차적인 메모리 소비를 초래합니다. 결과적으로 추론이 극도로 느려지고 결국 시스템이 메모리 부족(OOM) 오류로 크래시됩니다.
Memory Footprint Comparison (KV Cache)
Memory demands inflate rapidly as the output grows. Results in Out-of-Memory (OOM) crashes on long documents.
Memory footprint remains perfectly flat. The model only remembers the visual source and the immediate text window.
참조 슬라이딩 윈도우 어텐션 (R-SWA)의 도입
인간이 문서를 필사할 때의 인지 과정(원본 페이지(참조)를 보면서 최근에 쓴 소수의 단어만 단기 기억에 유지하는 방식)에서 영감을 받아 R-SWA는 어텐션을 두 부분으로 나눕니다:
전체 시각 참조
디코더는 항상 문서 페이지의 전체 시각적 특징(참조)에 제한 없이 어텐션을 가질 수 있어 시각적 컨텍스트를 잃지 않습니다.
슬라이딩 윈도우 텍스트 어텐션
디코더는 생성된 전체 히스토리가 아니라 최근에 생성된 고정된 슬라이딩 윈도우 내의 텍스트 토큰(기본값 128 토큰)에만 어텐션을 가집니다.
일정한 KV 캐시
텍스트 히스토리에 대한 어텐션을 제한함으로써 KV 캐시 크기가 일정하게 유지됩니다. 이는 생성 중에 O(1) 메모리 복잡도와 토큰당 평평한 지연 시간을 달성합니다.
비교: 기존 OCR vs. Unlimited-OCR
| 기능 | 기존 페이지별 OCR | Baidu Unlimited-OCR |
|---|---|---|
| 최대 문서 길이 | 1 - 2 페이지 (단일 패스) | 무제한 (50+ 페이지 테스트 완료) |
| 메모리 복잡도 | O(N²) 이차적 증가 | O(1) 일정한 메모리 |
| 페이지 스티칭 오류 | 높음 (표 및 문장 끊김) | 없음 (원활한 엔드투엔드 파싱) |
| 토큰당 지연 시간 | 기하급수적으로 증가 | 완전한 수평 평탄선 |
기술적 세부 사항: 아키텍처 및 효율성
Unlimited-OCR은 DeepSeek-OCR 베이스라인 위에 구축되었으며, 압축률이 높은 SAM-ViT-B + CLIP-L 비전 인코더를 사용합니다. 디코더의 표준 자기 어텐션 계층을 R-SWA 모듈로 교체했습니다. 모델은 Mixture-of-Experts(MoE) 구조를 채택했습니다:
- 30억 개의 총 매개변수: 광범위한 다국어 문서 데이터셋에서 학습된 유능한 베이스 모델.
- 5억 개의 활성 매개변수: 추론 중에는 일부 전문가만 활성화되어 매우 높은 처리량과 낮은 전력 소비를 제공합니다.
- 업계 최고 수준의 정확도: OmniDocBench v1.5 벤치마크에서 93.23%의 종합 점수를 획득하여 새로운 SOTA를 수립했습니다.
Unlimited-OCR 시작하기
Baidu는 MIT 라이선스로 Unlimited-OCR을 출시했습니다. 모델 가중치를 다운로드하고 로컬에서 추론을 실행하거나 문서 파이프라인에 통합할 수 있습니다. 단일 소비자용 GPU에서 원활하게 실행됩니다.
설치 및 실행
git clone https://github.com/baidu/Unlimited-OCR.git자주 묻는 질문
Unlimited-OCR의 최대 페이지 제한은 얼마인가요?▼
일반 하드웨어에서 실행할 수 있나요?▼
상업적 용도로 사용 가능한가요?▼
커뮤니티 반응
긴 문서 생성 시 일정한 KV 캐시는 게임 체인저입니다. 드디어 메모리 부족 오류 없이 50페이지짜리 보고서를 파싱할 수 있게 되었습니다!
Hugging Face의 스페이스 데모를 테스트했습니다. 속도는 1페이지부터 30페이지까지 완전히 일정하게 유지되었습니다. Baidu의 훌륭한 작업입니다.
MoE(총 3B / 활성 500M)를 사용하기 때문에 단일 소비자 GPU에서 높은 처리량으로 실행할 수 있습니다. 통합하는 것이 매우 기대됩니다.