微信扫码
添加专属顾问
我要投稿
百度开源Unlimited OCR,实现长文档一次解析,显著提升处理速度与效率。核心内容:1. Unlimited OCR的核心技术:R-SWA机制实现长程解析2. 模型性能优势:解析速度大幅提升,尤其在长文档场景3. 开源与实测效果:代码权重已开源,基准测试表现优异
百度开源了 Unlimited OCR,一个基于 DeepSeek OCR 改进的端到端文档解析模型,总参数 3B、激活参数仅 570M。该模型提出 Reference Sliding Window Attention(R-SWA)机制,将解码阶段的 KV Cache 固定为常数,使单次前向传播即可连续解析数十页文档。在 OmniDocBench v1.6 基准上达到 93.92% 综合指标,位列端到端模型第一;推理速度较 DeepSeek OCR 提升 12.7%,输出长度达 6000 tokens 时速度优势扩大至 35%。
欢迎体验 Unlimited OCR,代码和权重已开源:
GitHub:github.com/baidu/Unlimited-OCR
ModelScope:https://modelscope.cn/models/PaddlePaddle/Unlimited-OCR
论文地址:https://modelscope.cn/papers/2606.23050
Unlimited OCR 的核心能力是长程解析(Long-horizon Parsing):输入数十页 PDF 文档图像,一次前向传播从第一页连续解析到最后一页,输出全文 Markdown 格式结构化内容,KV Cache 始终保持恒定,输出延迟不随页数增长。
速度是 Unlimited OCR 的一个核心优势。在短输出场景下,R-SWA 与标准注意力的吞吐量基本一致;随着输出变长,标准注意力受到历史 KV 缓存增长影响,吞吐量逐渐下降,而 R-SWA 保持相对稳定。
输出长度 | DeepSeek OCR | Unlimited OCR | 速度差距 |
256 tokens | 7229 TPS | 7230 TPS | 持平 |
1024 tokens | 7423 TPS | 7841 TPS | +5.6% |
2048 tokens | 7167 TPS | 7881 TPS | +10.0% |
4096 tokens | 6430 TPS | 7905 TPS | +22.9% |
6144 tokens | 5823 TPS | 7848 TPS | +34.8% |
在 OmniDocBench 的真实文档评测中,Unlimited OCR 的吞吐量为 5580 TPS,DeepSeek OCR 为 4951 TPS,速度提升约 12.7%。在 6000 tokens 左右的长输出场景下,速度提升可达到约 35%。
在速度提升之外,Unlimited OCR 也保持了较强的解析质量。在 OmniDocBench v1.6 上,Unlimited OCR 取得了 93.92% 的综合得分。
模型 | 参数量 | 综合得分 |
HunyuanOCR | 1B | 89.95% |
DeepSeek-OCR 2 | 3B-A0.5B | 90.25% |
FireRed-OCR | 2B | 93.26% |
Logics-Parsing-v2 | 4B | 93.33% |
Qianfan-OCR | 4B | 93.90% |
Unlimited OCR | 3B-A0.5B | 93.92% |
相比 DeepSeek OCR 基线,Unlimited OCR 综合得分提升 +6.22%,文本编辑距离下降 0.035,表格结构还原准确率提升接近 6%。
长文档是 Unlimited OCR 最重要的应用场景。在内部多页文档测试集上,Unlimited OCR 支持多页文档一次性解析,结果如下:
页数 | 编辑距离 ↓ | Distinct-35 ↑ |
2 页 | 0.036 | 99.87% |
5 页 | 0.045 | 99.98% |
10 页 | 0.053 | 99.83% |
20 页 | 0.057 | 99.89% |
40+ 页 | 0.107 | 96.90% |
在 40 页以上的输入中,模型仍能保持较低编辑距离,并维持较高的 Distinct-35 指标,说明重复生成问题得到了较好控制。
端到端 OCR 模型近几年进展很快。以 DeepSeek OCR 为代表的方案通常使用大语言模型作为解码器,借助语言先验提升识别和结构还原质量。
不过在长文档场景下,这类模型会遇到一个实际问题:输出越长,解码器的 KV 缓存越大,推理速度和显存占用都会受到影响。因此,很多系统在工程上会选择逐页处理文档,再把结果拼接起来。
Unlimited OCR 希望把这件事做得更直接:让模型在一次前向过程中完成多页甚至整本书级别的解析,同时保持稳定的推理成本。对长文档、扫描书籍、报告和论文等场景来说,这意味着更少的工程拼接,也更接近连续阅读式的文档理解。
整体架构
Unlimited OCR 沿用 DeepSeek OCR 的编码器-解码器架构:DeepEncoder 负责图像压缩编码,MoE-LLM 解码器负责自回归生成 Markdown 文本。关键改动是将解码器中所有标准 Multi-Head Attention 替换为 R-SWA。
主要配置如下:
编码器:沿用 DeepEncoder,视觉 Token 压缩率为 16×,一张 1024×1024 的 PDF 页面约用 256 个 Token 表示
解码器:3B 参数 MoE 架构,推理时激活约 500M 参数
上下文长度:32K,可支持多页文档一次性解析
Unlimited OCR 提出了一种参考滑动窗口注意力机制:Reference Sliding Window Attention,简称 R-SWA。
R-SWA 的思路是把输入图像 Token 和已生成文本 Token 分开处理:
信息类型 | 注意力策略 |
图像 Token | 始终完整可见 |
输出 Token | 只保留最近 个 Token,默认窗口为 128 |
历史输出 | 不再持续累积 KV 缓存 |
对于 OCR 任务来说,图像内容是固定参考,生成文本只需要保留局部上下文。基于这个特点,R-SWA 在保证模型能持续查看原始图像的同时,将文本侧 KV 缓存限制在固定窗口内。
标准 MHA 的 KV 缓存大小会随输出长度 T 线性增长:
R-SWA 则将缓存大小限制为:
因此,当输出长度增加时,R-SWA 的文本侧缓存不会继续增长,长文档推理的速度和显存占用更稳定。这也是 Unlimited OCR 能够面向长输出场景持续扩展的关键。
Python 3.12+
CUDA 12.9
1. 安装依赖
pip install torch==2.10.0 torchvision==0.25.0pip install transformers==4.57.1pip install Pillow==12.1.1 matplotlib==3.10.8 einops==0.8.2pip install addict==2.4.0 easydict==1.13 pymupdf==1.27.2.2 psutil==7.2.2
2. 下载模型
从 ModelScope 下载:
# pip install modelscope# modelscope download --model PaddlePaddle/Unlimited-OCR --local_dir ./Unlimited-OCR
3. 单图推理from transformers import AutoModel, AutoTokenizermodel_path = "./Unlimited-OCR"tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)model = AutoModel.from_pretrained(model_path,trust_remote_code=True,use_safetensors=True).eval().cuda()model.infer(tokenizer,prompt='document parsing.' ,image_file='your_image.jpg',output_path='./output',base_size=1024,image_size=640,crop_mode=True, # gundam 模式,适合单页高精度max_length=32768,no_repeat_ngram_size=35,ngram_window=128,save_results=True,)
4. 多页/PDF 推理# 多页图片推理model.infer_multi(tokenizer,prompt='Multi page parsing.' ,image_files=['page1.png', 'page2.png', 'page3.png'],output_path='./output',image_size=1024, # base 模式,多页固定 1024max_length=32768,no_repeat_ngram_size=35,ngram_window=1024, # 多页场景窗口设为 1024save_results=True,)
PDF 文件通过 PyMuPDF 以 300 DPI 渲染为 PNG 后传入infer_multi。
SGLang 部署适合生产环境,支持 OpenAI 兼容 API 和并发推理。
1. 环境搭建
uv venv --python 3.12source .venv/bin/activate# 安装 SGLang(使用仓库提供的 wheel)uv pip install wheel/sglang-0.0.0.dev11416+g92e8bb79e-py3-none-any.whluv pip install kernels==0.11.7uv pip install pymupdf==1.27.2.2
2. 启动推理服务python -m sglang.launch_server \--model PaddlePaddle/Unlimited-OCR \--served-model-name Unlimited-OCR \--attention-backend fa3 \--page-size 1 \--mem-fraction-static 0.8 \--context-length 32768 \--enable-custom-logit-processor \--disable-overlap-schedule \--skip-server-warmup \--host 0.0.0.0 --port 10000
关键参数说明:--attention-backend fa3:使用 FlashAttention 3 后端
--mem-fraction-static 0.8:GPU 显存中 80% 用于静态分配
--context-length 32768:最大上下文长度 32K
--enable-custom-logit-processor:启用 no-repeat-ngram 逻辑处理器
3. 批量推理
仓库提供了 infer.py 脚本,自动启动 SGLang 服务并并发处理目录或 PDF:
python infer.py \--image_dir ./examples/images \--output_dir ./outputs \--concurrency 8 \--image_mode gundam
参数说明:--image_dir:输入图片目录
--output_dir:输出 Markdown 文件目录
--concurrency:并发请求数
--image_mode:gundam(高精度模式)或 base(基础模式)
👇点击关注ModelScope公众号获取 更多技术信息~
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2026-06-23
我把自己的需求到交付 Skills 开源了:Analysis to Delivery
2026-06-23
腾讯开源WeKnora知识库部署实战(含踩坑排查)
2026-06-22
DiffusionGemma: 文本生成速度提升 4 倍
2026-06-22
刚刚,百度开源拿下全球第一!作者疑似DeepSeek出走大神
2026-06-22
Agent终于有了自己的邮箱!腾讯Agently Mail详解
2026-06-20
GLM-5.2本地部署:744B参数模型如何在Mac上跑
2026-06-20
Hermes Agent v0.17发布:AI助手开始扩展触角
2026-06-18
开源中医 Skill:把倪海厦课程变成可检索知识库
2026-03-30
2026-04-09
2026-04-03
2026-04-01
2026-03-31
2026-03-30
2026-04-18
2026-04-18
2026-03-31
2026-04-02
2026-06-16
2026-05-30
2026-05-16
2026-04-22
2026-04-21
2026-04-15
2026-04-09
2026-04-01