Unlimited-OCR 是百度开源的面向长文档、长上下文场景的 OCR/文档解析模型项目,目标是实现“一次输入、多页/长视野解析”的文档识别能力。项目提供 Hugging Face Transformers 推理方式,也支持通过 SGLang 启动 OpenAI 兼容接口进行流式推理和批量并发处理。它不仅支持单张图片 OCR,还支持多页图片和 PDF 转图片后的多页文档解析,适合处理扫描件、合同、报告、论文、票据等复杂文档。
适用领域
OCR / 文档解析 / 多模态大模型 / PDF 解析 / 长上下文推理 / 企业文档智能化 / 信息抽取 / 计算机视觉
配置难度
中高。对于熟悉 PyTorch、Transformers 和 GPU 推理的开发者,单机推理接入难度中等;如果要用 SGLang 做服务化、并发、PDF 批处理和生产部署,则需要处理 CUDA、显存、模型下载、服务稳定性和安全审计等问题,整体难度偏高。
商业价值
业务价值较高。该项目可以帮助企业把大量图片、扫描件和 PDF 文档转换为可检索、可分析、可接入知识库的文本内容,适用于合同审查、档案数字化、金融/政务/法律文档处理、企业知识库建设、客服知识提取等场景。MIT 协议降低了商业化集成门槛,但在正式生产使用前仍需要评估准确率、吞吐、硬件成本和安全风险。
01
技术亮点
- 由百度开源,MIT License,商业使用友好。
- 支持单图、多图、多页 PDF 的 OCR/文档解析。
- 面向 long-horizon parsing,强调长文档一次性解析能力。
- 提供 Transformers 本地推理和 SGLang 服务化推理两种路径。
- SGLang 方式兼容 OpenAI Chat Completions API,便于接入现有业务系统。
- 支持流式输出,适合长文本解析结果的实时返回。
- 支持批量推理脚本 infer.py,可对图片目录或 PDF 进行并发处理。
- 使用 no-repeat ngram/custom logit processor 降低长文本生成中的重复问题。
- README 给出了较完整的代码示例,包括 PDF 转图片、多页解析、API 调用等。
- 适合与企业文档管理、知识库、搜索、RAG、审核系统结合。
02
目标用户
- 需要处理大量扫描文档的后端开发者
- 构建 OCR 服务的 AI 工程师
- 文档智能、知识库、RAG 系统开发者
- 需要 PDF/图片文字结构化解析的企业开发团队
- 研究多模态文档理解模型的算法工程师
- 希望私有化部署 OCR 能力的团队
03
配置要求
- 必须具备 NVIDIA GPU,README 示例明确使用 CUDA 和 .cuda() 推理。
- 推荐 bfloat16 推理,因此 GPU 需要较好支持 BF16,否则可能需要自行调整 dtype。
- 模型从 Hugging Face 加载,默认需要能够访问 huggingface.co 或提前下载到本地。
- 需要设置 trust_remote_code=True,意味着会执行模型仓库中的自定义代码,生产环境需进行安全审查。
- 单图支持两种配置: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/context-length 为 32768,对显存和推理耗时要求较高。
- SGLang 服务需要配置 --attention-backend fa3、--page-size 1、--mem-fraction-static 0.8、--enable-custom-logit-processor、--disable-overlap-schedule 等参数。
- PDF 处理依赖 PyMuPDF,通常会以 300 DPI 将每页转为 PNG 图片,可能占用较多磁盘和内存。
- 批量推理时 --concurrency 需要根据 GPU 显存和模型大小谨慎调整。
04
适用场景
- 将扫描 PDF、图片文档转换为可读文本或结构化内容
- 批量解析合同、标书、报告、论文、手册等多页文档
- 为企业知识库或 RAG 系统提取文档内容
- 对长截图、复杂版式页面进行 OCR 识别
- 搭建内部 OCR API 服务,供业务系统调用
- 使用 SGLang 对 OCR 任务进行并发批处理
- 对包含图文混排、表格、公式或复杂布局的文档进行初步解析
05
部署与配置
- 准备 NVIDIA GPU 环境,推荐使用 Python 3.12 和 CUDA 12.x;README 中测试环境为 Python 3.12.3 + CUDA 12.9。
- 安装 Transformers 推理依赖:torch==2.10.0、torchvision==0.25.0、transformers==4.57.1、Pillow==12.1.1、matplotlib==3.10.8、einops==0.8.2、addict==2.4.0、easydict==1.13、pymupdf==1.27.2.2、psutil==7.2.2。
- 通过 Hugging Face 加载模型:AutoTokenizer.from_pretrained('baidu/Unlimited-OCR', trust_remote_code=True) 和 AutoModel.from_pretrained(..., trust_remote_code=True, use_safetensors=True, torch_dtype=torch.bfloat16)。
- 将模型设置为 eval 并移动到 GPU:model.eval().cuda()。
- 单图推理可调用 model.infer,设置 prompt、image_file、output_path、base_size、image_size、crop_mode、max_length 等参数。
- 多页图片或 PDF 场景可先用 PyMuPDF 将 PDF 转为图片,再调用 model.infer_multi。
- 如需服务化部署,可使用 uv 创建 Python 3.12 虚拟环境,安装项目提供的 SGLang wheel、kernels 和 PyMuPDF。
- 启动 SGLang 服务:python -m sglang.launch_server --model baidu/Unlimited-OCR --served-model-name Unlimited-OCR --context-length 32768 --enable-custom-logit-processor 等参数。
- 通过 OpenAI 兼容的 /v1/chat/completions 接口发送包含文本和 base64 图片的请求。
- 批量处理可使用 infer.py,指定 --image_dir 或 --pdf、--output_dir、--concurrency、--image_mode 等参数。
06
风险与注意事项
- 项目发布时间较新,GitHub stars 和 forks 规模尚小,生态和社区验证有限。
- README 中部分版本号较超前,例如 torch==2.10.0、transformers==4.57.1,实际安装时可能受 PyPI/CUDA 环境影响,需要确认可用性。
- 依赖 trust_remote_code=True,存在执行远程自定义代码的安全风险,企业生产部署前应做代码审计。
- 对 GPU 显存要求可能较高,尤其是多页 PDF、32768 上下文和并发推理场景。
- SGLang 安装依赖本地 wheel,环境搭建比普通 Python 包复杂。
- README 中 Deepseek-OCR 链接存在拼写问题,如 https://https://github.com/...,说明文档仍可能有小瑕疵。
- 当前 Citation 标注为 Coming soon,论文、评测指标、模型细节可能尚未完全公开。
- 没有看到明确的模型大小、显存占用、速度、准确率和多语言能力评测,需要自行压测。
- PDF 解析流程需要先转图片,超大 PDF 会产生大量临时文件并增加 I/O 开销。
- OCR 结果可能受图片分辨率、版式复杂度、语言类型、扫描质量影响,关键业务仍需人工校验或规则后处理。
2026-06-23
第16名
新收录 · github_search