Baidu의 Unlimited OCR은 OCR 모델 경쟁에서 조금 다른 질문을 던진다. 더 많은 페이지를 읽으려면 컨텍스트를 계속 키워야 할까, 아니면 모델이 무엇을 잊어도 되는지 정교하게 설계해야 할까.
기존 end-to-end OCR 시스템의 병목은 KV cache다. 언어 모델 decoder가 텍스트를 생성할수록 이전 출력 토큰을 계속 저장하기 때문에, 문서가 길어질수록 메모리 사용량은 늘고 속도는 떨어진다. 그래서 실제 운영에서는 긴 문서를 페이지별로 나누어 처리하고, 매번 cache를 초기화한 뒤 결과를 다시 붙이는 방식이 흔하다. 이 과정은 단순하지만 latency와 후처리 오류를 만든다.
Unlimited OCR은 Reference Sliding Window Attention, R-SWA로 이 구조를 바꾼다. 새로 생성되는 토큰은 이미지와 프롬프트 같은 reference token 전체를 계속 볼 수 있다. 하지만 이미 생성한 출력은 최근 128토큰만 참조한다. KV cache는 고정 길이 큐처럼 움직이고, 오래된 출력은 밀려난다. 동시에 visual token은 계속 변하는 상태 업데이트에서 제외해 이미지 특징이 흐려지는 문제를 줄인다.
구현은 Deepseek OCR 위에 올라간다. DeepEncoder는 1024×1024 PDF 이미지를 256 visual token으로 압축하고, decoder는 30억 파라미터 MoE 구조를 쓴다. 추론 시 실제 활성화되는 파라미터는 약 5억이다. Baidu는 약 200만 문서 샘플로 학습했고, 멀티페이지 데이터는 2~50페이지 문서를 합성해 만들었다.
결과는 꽤 직접적이다. OmniDocBench v1.5에서 전체 93%를 기록해 Deepseek OCR baseline보다 6%p 높았고, v1.6에서는 93.92%로 end-to-end 시스템 순위 최상단에 올랐다. 긴 문서 테스트에서도 40페이지를 넘겨 edit distance가 0.11 아래에 머물렀다. Base mode 속도는 5,580 tokens/s로 Deepseek OCR보다 12.7% 빠르다.
다만 Unlimited라는 이름을 문자 그대로 받아들이긴 어렵다. 현재 모델은 32,000토큰 context length를 갖고 있고, 페이지가 많아지면 visual token도 계속 쌓인다. 작은 글자 오류는 R-SWA 자체보다 Base mode의 해상도 한계에서 주로 나온다고 연구진은 설명한다. Baidu는 이후 128,000토큰 모델과 필요한 KV block을 가져오는 prefill pool을 계획하고 있다.
이 작업의 의미는 OCR을 단순 문서 변환 도구로 보지 않을 때 더 커진다. 긴 PDF, 계약서, 책, 사내 문서를 LLM 파이프라인에 넣으려면 텍스트 추출의 안정성뿐 아니라 메모리, latency, 페이지 병합 비용이 중요하다. Unlimited OCR은 그 비용을 줄이는 한 가지 방향을 보여준다. 더 오래 기억하는 모델이 아니라, 원본은 붙잡고 출력의 과거는 짧게 유지하는 모델이다.