한 번에 32768 토큰 장문 문서 파싱 지원
이미지-텍스트 변환을 통한 문서 파싱 및 다중 페이지 OCR 출력 생성32K 컨텍스트mit
Baidu의 Unlimited-OCR은 Transformers 기반 멀티모달 OCR 모델로 이미지 문서의 장문 및 다중 페이지 파싱을 최대 컨텍스트 32768로 수행하고 vLLM·SGLang 기반 스트리밍 추론을 지원한다.
TL;DR
Unlimited-OCR은 Baidu가 공개한 Transformers 기반 멀티모달 OCR 모델로, One-shot Long-horizon Parsing을 목표로 설계되어 최대 출력 길이 32768 토큰을 지원한다. 모델은 단일 이미지용 gundam 구성과 멀티페이지 전용 base 구성을 제공하며 PDF를 페이지별 이미지로 변환한 뒤 infer_multi로 연속 처리하는 워크플로를 채택한다. 반복 억제를 위해 no_repeat_ngram_size=35와 ngram_window 파라미터, 그리고 DeepseekOCRNoRepeatNGramLogitProcessor 같은 커스텀 로짓 프로세서를 활용하며 vLLM과 SGLang 연동을 통해 스트리밍 추론과 다양한 GPU 배포 경로를 지원한다. 라이선스는 MIT이며 GitHub·arXiv 링크와 Docker 이미지, vLLM 레시피가 README에 포함되어 있어 실무적 재현성과 배포 편의성을 제공한다.
핵심 역량
- 단일 이미지 및 다중 페이지 문서에서 구조화되지 않은 문서 텍스트를 길게 생성할 수 있으며, model.infer와 model.infer_multi API를 통해 이미지 파일 리스트를 연속으로 처리할 수 있다. 출력 길이는 max_length=32768까지 설정 가능하여 장문의 문서 내용을 한 번에 파싱할 수 있다. no_repeat_ngram_size와 ngram_window 파라미터를 통해 반복 생성 제어가 가능하다.
- PDF 파일은 PyMuPDF를 이용해 페이지별 이미지로 변환한 뒤 멀티페이지 파이프라인에 투입하는 워크플로를 지원하며, 변환된 이미지들을 infer_multi로 순차 처리하여 전체 문서의 텍스트를 통합 출력할 수 있다. 이 과정은 저장 옵션(save_results=True)을 이용해 결과를 파일로 보관할 수 있다. 예제는 dpi=300으로 이미지 화질을 조정하는 방식을 포함한다.
- vLLM과의 호환으로 스트리밍 기반 추론을 지원하며 SGLang 인터페이스를 통해 OpenAI 호환 API로 연동할 수 있다. SGLang 예제는 커스텀 로짓 프로세서를 적용하고 스트리밍 응답을 수신하여 실시간 파싱 결과를 출력하는 절차를 포함한다. Docker 이미지를 통해 서로 다른 CUDA 버전 환경에서도 배포 가능하다.
강점
- vLLM과 SGLang을 통한 스트리밍 추론 경로를 공식적으로 지원하여 대규모 문서의 실시간 파싱 워크플로를 구축하기 용이하다. Docker 이미지와 vLLM 레시피가 제공되어 다양한 GPU 환경에서 배포 환경을 표준화할 수 있다. MIT 라이선스와 Hugging Face·GitHub의 공개 레포지토리로 접근성이 높다.
- 긴 출력 길이를 허용하는 컨텍스트 설정(max_length=32768)과 반복 억제 매개변수(no_repeat_ngram_size=35, ngram_window 조정)를 조합해 장문 및 다중 페이지 입력에 특화된 파이프라인을 제공한다. 이 파라미터들은 긴 문서를 한 번에 파싱할 때 생기는 중복 생성 문제를 실무적으로 완화하는 메커니즘을 구성한다. 모델 로딩 예제는 safetensors와 bfloat16 사용을 권장하여 메모리 효율을 고려했다.
- 사용자 예제와 통합 도구(PDF→이미지 변환용 PyMuPDF, SGLang 서버 설정, vLLM Docker 이미지)가 README에 포함되어 있어 개발자가 배포 가능한 프로토타입을 신속히 구성할 수 있다. 공개된 설치 요구사항과 코드 예제가 재현성 높은 실험 및 운영을 돕는다. 다운로드 수와 좋아요 수가 README 메타데이터에 표시되어 공개된 사용자 기반을 일부 가늠할 수 있다.
알아두면 좋은 것
- Unlimited-OCR은 One-shot Long-horizon Parsing을 목표로 개발되었으며 2026/06/23에 arXiv에 논문이 공개되었다. 논문 링크와 GitHub 코드 링크가 README에 명시되어 있어 연구·실무 양측의 재현 가능성을 확보한다. 라이선스는 MIT로 표기되어 자유로운 사용과 배포가 가능하다.
- 추론 최적화와 배포를 위해 vLLM 지원이 추가되었고 2026/06/28 릴리스 노트에서 vLLM 커뮤니티 기여로 호환성이 확보되었다. README는 vLLM 레시피 링크와 Docker 이미지 태그 두 가지 배포 경로를 제공하여 다양한 GPU 플랫폼에서의 실행을 용이하게 한다. 공식 레시피와 이미지 태그는 실제 배포 환경 재현을 돕는다.
- 단일 이미지용 gundam 구성과 멀티페이지용 base 구성 두 가지가 제공되어 입력 유형에 맞춰 이미지 크기와 crop_mode를 분리한다. gundam 구성은 image_size=640과 crop_mode=True를 사용하고 base 구성은 image_size=1024와 crop_mode=False를 사용하여 해상도와 자르기 전략을 달리 적용한다. 이러한 구성은 단일 페이지와 다중 페이지 처리 요구를 명확히 분리한다.
- 스트리밍 API 연동을 위해 SGLang 예제가 포함되어 있으며 서버 시작 인수에 attention-backend, 페이지 사이즈, mem-fraction-static, context-length=32768, enable-custom-logit-processor 같은 운영 파라미터가 포함된다. 클라이언트 예제는 DeepseekOCRNoRepeatNGramLogitProcessor를 사용해 반복 토큰 생성을 억제하는 방법을 보여준다. 이 조합은 장기 문맥에서의 반복 제어와 메모리 할당을 동시에 관리하는 실무 설정을 제시한다.
기술적 특징
- Unlimited-OCR은 긴 문서 단일 샷 파싱을 위해 최대 출력 길이 32768 토큰을 지원하도록 설계되었으며, 이와 함께 no_repeat_ngram_size와 ngram_window 파라미터를 통해 반복 생성을 런타임에 제한한다. 클라이언트 예제는 ngram_window 값을 단일 이미지와 멀티페이지에 각각 다르게 적용하는 구성을 보여 주어 문서 길이에 따른 반복 제어 전략을 구현한다. 이러한 설정은 장문 텍스트의 일관성을 유지하면서 중복을 줄이는 목적을 가진다.
- 입력 유형에 따라 gundam과 base 두 가지 추론 구성을 제공하며, gundam은 base_size=1024와 image_size=640 및 crop_mode=True로 단일 이미지의 국소적 크롭을 허용하고 base는 image_size=1024와 crop_mode=False로 전체 페이지 처리를 목표로 한다. 이 차이는 단일 시각 영역의 세부 파싱과 페이지 단위의 전체 레이아웃 해석 간의 트레이드오프를 반영한다. 사용자는 입력 특성에 맞춰 적절한 구성 값을 선택하여 성능과 정확도의 균형을 맞출 수 있다.
- 긴 문서 처리 파이프라인은 PDF를 페이지별 이미지로 변환하는 사전 처리와 infer_multi를 통한 연속 처리로 구성되어 있으며, PyMuPDF 기반의 pdf_to_images 유틸리티가 예제로 포함되어 있다. 변환된 이미지들은 ngram_window를 확대한 base 구성으로 처리되어 멀티페이지 문서를 통합 출력한다. 이 흐름은 대용량 문서의 페이지 순서 유지와 통합 텍스트 생성을 가능하게 한다.
- 추론 효율화를 위해 safetensors 포맷과 bfloat16 dtype 사용을 권장하고 있으며, vLLM 호환성 및 SGLang 통합을 통해 스트리밍 추론과 OpenAI 호환 API 인터페이스를 제공한다. README는 vLLM 전용 Docker 이미지와 Hopper용 CUDA 12.9 빌드를 명시하여 서로 다른 GPU 스택에서의 배포 경로를 제시한다. 또한 DeepseekOCRNoRepeatNGramLogitProcessor 같은 커스텀 로짓 프로세서를 통해 출력 제어를 운영 수준에서 적용할 수 있다.
차별점
- 장문 단일 샷 파싱을 목표로 max_length=32768을 공식적으로 지원하여 긴 문서를 한 번에 파싱하는 워크플로를 제공한다. 이 수치는 일반적인 OCR 파이프라인에서 흔히 제공되는 출력 길이 제한보다 현저히 크며 장기 컨텍스트 유지가 필요한 작업에서 의미가 있다.
- 단일 이미지용 gundam 구성과 멀티페이지 전용 base 구성을 분리하여 입력 유형별 최적화를 명확히 제공한다. 이로 인해 단일 페이지의 세부 파싱과 다중 페이지의 통합 파싱을 별도 설정으로 처리할 수 있다.
- 커스텀 로짓 프로세서(DeepseekOCRNoRepeatNGramLogitProcessor)와 ngram_window 조합을 통해 반복 생성 문제를 런타임 단계에서 제어하는 실행 예제를 포함하고 있어 실무 배포 시 생성 텍스트의 품질 관리를 용이하게 한다.
이미지 분석

3.6k
Likes
2.6M
Downloads
10 / 0
조회수
관련 토론
아직 관련 토론이 없습니다.
댓글
댓글을 작성하려면 로그인이 필요합니다.