One-shot 장기 문서 파싱을 위한 Unlimited-OCR 모델 공개
Unlimited-OCR은 최대 컨텍스트 길이 32768을 지원하고 단일 이미지와 다중 페이지 PDF를 모두 처리하는 Baidu의 장기 문서 파싱용 모델이다.
TL;DR
Baidu의 Unlimited-OCR은 단일 이미지와 다중 페이지 PDF를 대상으로 최대 컨텍스트 길이 32768을 지원하며 no_repeat_ngram_size와 custom logit processor로 반복 출력을 억제하는 장기 문서 파싱 모델이다. 로컬 Transformers 추론 예제와 vLLM용 Docker 이미지, SGLang 기반 스트리밍 서버 설정을 모두 제공하여 다양한 운영 환경에 배포할 수 있으며 gundam과 base 두 가지 이미지 모드를 통해 입력 유형에 맞춘 처리 설정을 사용한다. README에는 PyMuPDF 기반 PDF→이미지 전처리 유틸과 병렬 배치용 스크립트 예시가 포함되어 있어 대량 문서 처리 파이프라인 구성에 즉시 활용 가능하다. 논문(arXiv) 공개와 Hugging Face/ModelScope/Baidu Cloud 배포 연계로 생태계 통합이 이루어졌고 vLLM 연동과 데모 공개로 실무적 적용 가능성이 빠르게 확장되었다.
주요 기능
- 단일 이미지와 다중 페이지 입력을 모두 처리할 수 있는 추론 인터페이스를 제공한다. README의 예시에서는 gundam 모드(이미지_size=640, crop_mode=True)와 base 모드(이미지_size=1024, crop_mode=False)를 선택하여 단일 이미지와 PDF 변환 결과를 각각 처리하도록 설정한다. 모델 API는 max_length=32768, no_repeat_ngram_size=35 등 긴 문서의 반복 생성을 제어하는 파라미터를 직접 설정할 수 있다.
- vLLM 기반 배포 옵션과 Docker 이미지를 제공하여 GPU 플랫폼에 맞춘 추론 환경 구성이 가능하다. README에는 CUDA 13.0용 및 Hopper GPU(CUDA 12.9)용 Docker 이미지 태그가 명시되어 있어 플랫폼별 컨테이너를 즉시 가져와 실행할 수 있다. vLLM 연동은 대규모 배치나 고성능 추론에서 레이턴시와 처리량 관리를 용이하게 만든다.
- SGLang 서버를 통해 OpenAI 호환 스트리밍 API로 서비스할 수 있는 런타임 구성을 지원한다. SGLang 실행 커맨드에서 attention-backend, context-length, mem-fraction-static 등 운영 관련 플래그를 조정하여 메모리 사용과 컨텍스트 확장을 제어할 수 있다. README 예제에는 custom_logit_processor 사용 예시와 streaming 응답 처리 루틴이 포함되어 있어 실서비스 통합을 빠르게 시작할 수 있다.
- PDF를 페이지 이미지로 변환하는 전처리 유틸과 병렬 배치용 infer.py 스크립트를 제공하여 워크플로 자동화를 지원한다. PyMuPDF를 사용한 pdf_to_images 함수가 예시로 포함되어 있으며, infer.py는 이미지 디렉터리나 PDF 페이지를 병렬로 처리하여 출력 디렉터리에 결과를 저장한다. 이 구성은 문서 아카이빙 또는 대량 스캔 데이터에 대한 배치 처리 파이프라인 구축에 적합하다.
어떻게 동작하는가
Unlimited-OCR은 이미지와 텍스트를 결합한 입력을 Transformer 기반 모델로 처리하며, 긴 문맥을 유지하기 위해 내부적으로 확장된 컨텍스트 길이와 KV 캐시 재사용 패턴을 적용한다. 출력 생성 단계에서는 no_repeat_ngram_size와 custom logit processor를 사용하여 반복 토큰 생성을 억제하고 문서 전체의 일관된 파싱 결과를 확보한다.
해결 문제
단일 이미지뿐 아니라 다수 페이지 PDF를 포함하는 매우 긴 문서에서 연속성과 구조를 유지한 채 파싱 결과를 얻는 문제를 해결한다. 모델은 컨텍스트 길이 32768과 반복 억제 파라미터를 활용하여 페이지 간 참조와 문서 전반의 일관성을 유지한 추론을 수행한다. 또한 Hugging Face, vLLM, SGLang 등 다양한 실행 환경을 통해 로컬 및 서버 배치 환경에서 추론을 운영 가능하게 한다.
지금 주목받는 이유
최근 arXiv 논문 공개와 Hugging Face, ModelScope, Baidu Cloud 배포 연계로 가시성이 높아졌다. 또한 vLLM과의 정식 연동 및 데모용 Hugging Face Spaces 공개가 있은 후 커뮤니티에서 실험적 배포와 서비스화 사례가 빠르게 늘고 있다. 이러한 생태계 통합과 장기 문서 처리라는 명확한 적용 영역이 주목을 받은 배경이다.
차별점
- DeepSeek-OCR 계열의 아이디어를 확장하여 원샷(one-shot) 방식으로 장기 문서 파싱을 목표로 한다. README와 릴리스 노트에서 DeepSeek-OCR을 발전시킨 점을 명시하고 있으며, 특히 긴 컨텍스트와 반복 억제 로직을 결합해 문서 전체 맥락을 한 번의 추론 흐름으로 포착하려는 설계가 차별점이다. 이 때문에 다중 페이지 PDF를 이미지로 변환해 연속적으로 입력하는 워크플로를 기본적으로 지원한다.
- 다양한 실행 백엔드와의 호환성을 우선으로 설계되어 로컬 Transformers 추론, vLLM 컨테이너, SGLang 기반 서비스형 런타임 모두에서 배포가 가능하다. README에는 각 환경별 설치 의존성과 Docker 이미지, SGLang 서버 설정 예시가 구체적으로 포함되어 있어 배포 방식 선택의 자유도가 높다. 특히 vLLM 전용 Docker 이미지와 SGLang의 OpenAI 호환 스트리밍 구성을 제공하는 점이 운영 편의성 측면의 차별화 요소이다.
사용 사례
- 스캔한 기업 보고서나 법률 문서처럼 여러 페이지에 걸친 문서의 구조적 정보(예: 섹션, 표, 캡션)를 한 번에 추출하는 파이프라인에 적용할 수 있다. 이 모델은 PDF를 이미지로 변환한 뒤 multi-page 추론을 통해 페이지 간 문맥을 유지한 결과를 생성하므로 문서 전체의 구조 해석 작업에 유리하다.
- 대량 문서 아카이브에서 배치로 텍스트와 메타데이터를 추출해 검색 색인용 데이터셋을 구축하는 용도로 사용 가능하다. README의 infer.py와 병렬 처리 옵션을 활용하면 이미지 폴더나 PDF 컬렉션을 병렬로 처리하여 출력 디렉터리에 결과를 저장할 수 있다.
- 웹 기반 데모나 서비스형 API로 문서 업로드 즉시 파싱 결과를 스트리밍으로 제공하는 인터랙티브 애플리케이션에 통합할 수 있다. SGLang의 OpenAI 호환 스트리밍 인터페이스 예제가 포함되어 있어 실시간 사용자 응답 제공이 가능하다.
시작하기
로컬 Transformers 추론을 시도하려면 Python 3.12.3과 CUDA 12.9 환경을 준비하고 README에 명시된 의존성 버전을 설치하면 된다. 그다음 AutoTokenizer와 AutoModel로 'baidu/Unlimited-OCR'을 from_pretrained로 로드한 뒤 model.infer 또는 model.infer_multi를 호출하여 단일 이미지나 다중 페이지 입력을 처리하면 된다. vLLM을 사용할 경우 제공된 Docker 이미지를 풀한 뒤 컨테이너에서 모델을 구동하거나 SGLang 서버를 실행해 OpenAI 호환 API로 스트리밍 추론을 시작할 수 있다.
요구사항
- README에서 테스트된 런타임은 python 3.12.3이며 CUDA 12.9 환경이 권장된다. 필수 파이썬 라이브러리와 권장 버전은 torch==2.10.0, torchvision==0.25.0, transformers==4.57.1, Pillow==12.1.1, PyMuPDF==1.27.2.2 등으로 명시되어 있어 동일한 버전 조합을 맞추는 것이 안정적이다. vLLM 배포를 위해서는 CUDA 지원 GPU와 Docker 사용 권한이 필요하다.
이미지 분석

19.9k
Stars
1.9k
Forks
+210
Trending
0
조회수
관련 토론
아직 관련 토론이 없습니다.
댓글
댓글을 작성하려면 로그인이 필요합니다.