Unlimited OCR — Baidu의 원샷 장문 파싱 모델

1 hour ago 2
  • DeepSeek OCR를 기반으로 디코더의 모든 어텐션을 교체해, 수십 페이지 문서를 한 번의 순전파(forward pass) 로 전사하는 E2E OCR 모델
  • 핵심은 참조 슬라이딩 윈도우 어텐션(R-SWA) 으로, 디코딩 길이가 늘어도 KV 캐시를 상수로 유지해 메모리·연산 비용 증가를 차단
  • 책을 베껴 쓰는 인간의 작업 기억(working memory) 을 모사해, 멀리 떨어진 출력은 부드럽게 잊고 인접 문맥만 참조하는 방식 채택
  • OmniDocBench v1.5에서 93% 로 DeepSeek OCR 대비 6% 우위, v1.6에서 93.92%로 end-to-end SOTA 달성
  • R-SWA는 OCR을 넘어 ASR·번역 등 참조 기반 장문 작업에도 적용 가능한 범용 파싱 어텐션 메커니즘

배경과 문제 정의

  • 인간은 수백 페이지 전사, 수 시간 음성 번역 같은 장문 작업에서 효율 저하 없이 수행하지만, 기존 OCR 모델은 단일 순전파로 10페이지조차 파싱 불가
    • 현재 모델들은 페이지별 처리(for-loop) 방식으로, 매 단계마다 메모리를 초기화함
    • 이 방식은 일관된 장문 과정을 고립된 단기 작업들로 분절하는 엔지니어링 우회책일 뿐, AGI 지향 지능으로의 진전은 아님
  • LLM을 디코더로 쓰면 언어의 사전 분포를 활용해 성능이 향상되나, 출력이 길어질수록 누적된 KV 캐시가 메모리 소비를 키우고 생성 속도를 점진적으로 저하시킴
  • 인간의 전사 행동은 표준 full attention도 linear attention도 아님
    • 이미 쓴 전체 텍스트를 다시 훑지 않고 인접 문맥만 참조해 방향을 유지
    • 시각/참조 토큰은 순환적 상태 갱신을 받지 않음 — 갱신 시 시각 특징이 점진적으로 흐려져 인식 정확도 저하

Reference Sliding Window Attention (R-SWA)

  • 각 토큰은 모든 참조 토큰(시각 토큰 + 프롬프트)에 접근하면서, 출력 어텐션은 직전 n개 토큰(기본값 128)으로만 제한
    • 이를 통해 각 토큰이 전체 이미지를 인지하면서 인과적 슬라이딩 윈도우 내 상태 전이로 OCR 진행 상황을 자율 추적
    • 추론 중 KV 캐시를 상수로 유지해 메모리 압박 완화 및 연산 비용 절감
  • 어텐션을 크기 m+n의 2구간 윈도우로 제한
    • m은 시각 토큰·프롬프트를 포함하는 prefix 윈도우로, 단일 추론 동안 고정이며 페이지 수·해상도에만 의존하고 디코딩 길이와 무관
    • n은 디코드 영역의 윈도우로, 크기 고정 상태로 인과적으로 슬라이딩
  • KV 캐시 관리

    • DeepSeek OCR 베이스라인은 표준 MHA를 사용해 KV 캐시 크기가 Lm + T로 무한히 증가
    • R-SWA는 전체 prefix 캐시 Lm은 유지하되 생성분은 최근 n개만 보관, 캐시 크기 Lm + min(n,T) ≤ Lm + n으로 상수 상한
    • 출력 길이가 충분히 길면 캐시 비율 ρ(T)가 0으로 수렴 → 선형 증가를 상수로 감축
  • 커널 분석

    • Flash Attention v3 커널 측정에서 DeepSeek OCR의 표준 MHA는 디코딩 단계마다 지연 시간 증가, Unlimited OCR은 R-SWA 덕분에 지속 시간 일정 유지
    • DeepSeek OCR은 KV 캐시 길이가 특정 정렬 경계를 넘을 때 데이터 전송 효율 급락으로 스파이크 발생, R-SWA에서는 미발생
    • 추론 시 GPU 메모리도 원래 모델은 선형 증가, Unlimited OCR은 고정 유지 — 연산·메모리 동시 안정성이 장문 파싱을 가능케 함

모델 아키텍처

  • DeepSeek OCR을 베이스라인으로, DeepEncoderMoE 디코더(총 3B, 활성 500M 파라미터) 결합
    • 기존 MHA를 R-SWA로 교체, 참조 KV 캐시 m에 고정 용량 출력 KV 버퍼 n을 더해 장문 파싱 구현
    • KV 캐시는 m+n 용량의 큐로 구현, 새 토큰 생성 시마다 (m+1)번째 토큰의 KV를 축출해 비용·메모리 비증가 보장
  • DeepEncoder

    • SAM-ViT와 CLIP-ViT를 캐스케이드, 브리지에서 16배 토큰 압축 적용 — 전반부는 윈도우 어텐션으로 원본 이미지 토큰 처리, 글로벌 어텐션은 압축 토큰 전용
    • 고해상도 이미지 인코딩 시 활성값을 낮게 유지해 GPU 메모리 절약, 1024×1024 PDF 이미지를 단 256 토큰으로 압축
    • 멀티페이지용 "Base"(1024×1024)와 단일 페이지용 "Gundam"(동적 해상도) 두 모드 채택
    • 시각 토큰은 출력과 함께 상태 전이를 겪지 않고 한 번 인코딩되어 전 과정에서 정적 유지

학습 설정

  • 약 200만 건의 문서 OCR 데이터로 학습, 단일 페이지 대 멀티페이지 비율 9:1
    • 단일 페이지 PDF는 Paddle OCR로 주석, 각 블록 좌표·내용을 연결해 ground truth 구성, 좌표는 0–1000 범위로 정규화
    • 멀티페이지는 단일 페이지 연결로 합성, 약 20만 샘플(2~50페이지)에 <page> 구분자 사용, 전체 32K 토큰 시퀀스로 패킹
  • DeepSeek OCR 체크포인트에서 4,000 스텝 추가 학습, 글로벌 배치 256, 최대 시퀀스 32K, 8×16 A800 GPU 사용
    • 학습 중 DeepEncoder는 동결하고 LLM 파라미터만 학습
    • AdamW 옵티마이저, 코사인 어닐링 스케줄러, 초기 학습률 1e-4, DeepEP(EP=4), Megatron-LM 프레임워크 기반
    • 추론은 Transformers 라이브러리에 R-SWA용 KV 캐시 관리 구현, SGLang 엔진에 최적화 지원 — 두 프레임워크 모두 상수 TPS·GPU 메모리로 동작

평가 결과

  • 주 벤치마크는 OmniDocBench(v1.5/v1.6)로, 텍스트·수식·표 구조·읽기 순서 등 다차원 파싱 능력 평가
    • v1.6은 v1.5보다 테스트 이미지 296장 추가된 최신 버전, v1.5는 DeepSeek OCR 포함 고전 모델과의 비교 제공
    • 장문 OCR 평가용 자체 테스트셋 구축, 소설·문서·논문을 2/5/10/20/40+ 페이지로 구분(각 범주 10권 이상)
  • 주요 성능

    • 단 2M 데이터 추가 학습만으로 end-to-end SOTA 달성, v1.5에서 텍스트 편집 거리 0.035 감소, 표 TEDS 5.96% 향상
    • v1.6 종합 지표 93.92% 로 end-to-end SOTA — 너비 128 R-SWA로 표준 어텐션을 전면 교체해도 효과적이며 무손실임을 입증
    • MoE 활성 0.5B 파라미터로 고효율 추론, "Base" 모드에서 5580 TPS(DeepSeek OCR 4951 TPS 대비 12.7% 속도 향상)
  • 하위 범주 분석

    • DeepSeek OCR 대비 모든 지표에서 일관된 향상으로 "공짜 점심(free lunch)" 수준의 개선 시현
    • DeepSeek OCR 2 대비 텍스트 편집 거리·읽기 순서 모두 9개 중 7개에서 우위
    • PPT·신문·잡지·노트 등 복잡한 레이아웃에서도 열세 없음
  • 장문 파싱

    • R-SWA 탑재로 수십~수백 페이지를 단일 패스로 prefill, 첫 페이지부터 끝까지 연속 파싱하며 KV 캐시 고정으로 출력 지연 일정 유지
    • 20페이지 동시 입력에서도 강건한 결과, 40+ 페이지에서 편집 거리 0.11 미만, Distinct-35 97% 유지
    • 반복 오류는 멀티페이지 "Base" 모드(1024×1024)에서 작은 글자 식별 곤란에 기인하며, R-SWA의 방향 상실 때문은 아님

효율성 분석

  • 이상적 동시성 조건에서 출력 TPS 비교(prefill 길이 10 고정)
    • 256 토큰에서는 두 모델 추론 속도 거의 동일
    • 출력 길이 증가 시 DeepSeek OCR의 TPS는 꾸준히 하락, 6,000 토큰에서 Unlimited OCR보다 35% 뒤처짐
    • 일관된 생성 속도가 장문 OCR 작업의 핵심 요구사항임을 재확인

한계와 향후 과제

  • 유한한 컨텍스트 길이(예: 32K)에서는 prefill 길이 제약으로 진정한 무제한 파싱 불가 — DeepEncoder의 높은 압축률에도 페이지 누적 시 prefill이 길어짐
  • 단기적으로 128K 등 더 긴 컨텍스트 모델 학습으로 더 많은 페이지 prefill 지원 예정
  • 장기적으로 prefill pool 구축, 모델이 prefill KV 청크를 자동 fetch하도록 학습해 인간이 페이지를 넘기는 효과를 모사함으로써 진정한 무제한 OCR 달성 목표
  • R-SWA를 ASR·번역 등 참조 기반 작업으로 이전 계획
Read Entire Article