百度 Unlimited-OCR:单次推理完成超长文档解析
百度开源了一款文档解析模型 Unlimited-OCR,仓库地址为 baidu/Unlimited-OCR,采用 MIT 许可证,代码 100% 由 Python 写成。截至 2026 年 8 月,它在 GitHub 上积累了约 24.5k star 与 2.5k fork。
它解决的核心问题是:对超长文档做 OCR 时,不再需要「先切块、再推理、后拼接」,而是用一次推理直接输出整篇文档的结构化结果。这一能力对应它提出的定位——「One-shot Long-horizon Parsing」,即一次性长程解析。
它针对的问题
传统的文档 OCR 流程,面对几十页的 PDF 或超长文档时,通常要把页面切分成若干小块,分别交给模型识别,再把结果按顺序拼回完整文本。
这种「切块 + 拼接」的做法有两个代价:
- 切块边界上的文字、表格或段落容易被割裂,跨块的内容需要额外对齐;
- 拼接逻辑本身会引入错误,尤其是跨页的表格、公式和多栏排版。
Unlimited-OCR 把思路换成单次推理:把整篇或多页文档一次性交给模型,由模型在一次前向计算里输出完整解析。这样省掉了切块与拼接两步,也去掉了这两步带来的错误来源。
推理接口
模型通过 transformers 加载,核心入口是 AutoModel 与 AutoTokenizer。单图推理提供两种配置:
- gundam:
base_size=1024、image_size=640、crop_mode=True; - base:
base_size=1024、image_size=1024、crop_mode=False。
多页图片与 PDF(转为多页图后)只走 base 配置,image_size 固定为 1024。单次推理的最大序列长度 max_length 为 32768,为长文档留出了空间。
在 NVIDIA GPU 上的依赖经测试的版本组合是 Python 3.12.3 + CUDA 12.9,关键依赖包括 torch==2.10.0、transformers==4.57.1、pymupdf==1.27.2 等。
部署方式
除原生 transformers 外,项目还提供 vLLM 与 SGLang 两条部署路径。
- vLLM:官方提供 Docker 镜像
vllm/vllm-openai:unlimited-ocr(默认 CUDA 13.0),Hopper 架构 GPU 用vllm/vllm-openai:unlimited-ocr-cu129(CUDA 12.9),部署细节见 vLLM 官方配方。 - SGLang:项目自带
infer.py批量推理脚本,支持传入图片目录或 PDF,--concurrency控制并发,还提供了 OpenAI 兼容的流式接口示例。
发布节奏
仓库在 2026 年 6 月 22 日首次发布,随后一个月内补齐了生态支持:
- 6 月 23 日:论文上线 arXiv(编号 2606.23050);
- 6 月 24 日:Hugging Face Spaces 出现在线 demo;
- 6 月 28 日:支持 vLLM 推理;
- 7 月 3 日:上线百度云,可在云上直接调用;
- 7 月 21 日:支持用 ms-swift 社区工具做训练。
截至 7 月 29 日的最近一次提交,仓库共 13 次提交,尚未发布正式 Release 版本。
适合谁用
对需要批量、结构化解析长文档的团队来说,Unlimited-OCR 提供了「单次推理出全文」的路径,适合处理合同、论文、扫描件等超长版式场景。
需要注意两点:模型推理需要 GPU 环境,vLLM / SGLang 部署有一定上手成本;仓库目前只有 1 位主要贡献者、尚未发正式版本,属于较新的项目。
如果团队已经在用百度云或 vLLM 生态,可以直接复用现有部署链路试用。
Unlimited-OCR 的价值,在于把「长文档 OCR」从多步拼接压缩成一次推理,并以 MIT 许可与约 24.5k star 的社区热度证明其可获取性。对长文档解析有刚需、又能接受 GPU 部署成本的团队,值得把它纳入选型对比。