百度近日开源了 Unlimited OCR 2,一个专门面向超长文档的 OCR 模型。它最引人注目的一点不是参数规模,而是百页级文档的横向差距:在百度自测的 MarathonDocBench 上,Unlimited OCR 2 综合得分 77.1,排名第二的 Kimi-K3 只有 33.7,Gemini-3.8-Flash 为 28.6。其前代 Unlimited-OCR 在该基准上得分为 0.0。
Unlimited OCR 2 是一个 3.34B 参数的视觉语言模型,权重以 MIT 许可证发布,代码托管在 GitHub。模型最大位置长度 131,072 tokens,BF16 权重约 6.7 GB,可在单张 CUDA GPU 上运行——百度在 NVIDIA A800-80GB 上完成测试。
结构上它延续了 DeepSeek-OCR 的布局:SAM ViT-B 加 CLIP-L 编码器,接入 12 层混合专家解码器,每个 token 路由到 64 个专家中的 6 个,另有 2 个共享专家。多页模式下每页消耗 273 个图像 token,100 页就是 27,300 个输入 token。百度未披露版本 2 的激活参数量。
真正让“百页单请求”成立的是 SR-SWA,即稀疏参考滑动窗口注意力。全注意力成本随序列长度二次增长,解码时每个新 token 都要扫描更长的 KV 缓存。SR-SWA 把文本-视觉注意力压缩到固定参考集,模型卡给出的示例规模是 512 tokens:128 token 的局部窗口,加上对 32 token 块的 top-16 选择,正好 16×32=512。百度称这实现了有限上下文窗口内的“无限视野”解析,但图像编码和总运行时间仍随页数上升。
分项成绩更能说明问题。MPDocBench 与 MarathonDocBench 上,文本为 94.8 / 89.6,公式 89.4 / 87.9,阅读顺序 92.3 / 85.3,表格 87.8 / 74.8,标题层级 60.1 / 48.2。标题层级是明显短板,长文档上仅 48.2。MPDocBench 上的单项领先幅度并不大,Qwen3.8-Max 文本 94.3、公式 89.2,差距在个位数。
对比之下,Qwen3.8-Max 从 MPDocBench 的 78.3 跌到百页文档的 22.9,落差 55.4 分;Unlimited OCR 2 只回落 7.5 分。这种“抗衰减”能力才是该模型的核心卖点。
部署方面,模型卡推荐 Transformers 做快速测试、SGLang 做服务化。Transformers 中 infer 处理单页并启用动态切图(gundam 模式),infer_multi 一次请求解析整篇文档以保留跨页上下文;加载需要 trust_remote_code=True。SGLang 服务使用百度定制的 wheel,而非上游版本,示例按每窗口 10 页调度并复用上一窗口的 KV 尾部。窗口越小峰值内存越低,但跨页合并效果会变差;百度还提醒默认 bias 设置可能触发 462 MiB 分配并导致显存不足。
需要说明的是,上述基准分数均为百度自报,且只出现在一张图表图片中;MarathonDocBench 未找到公开版本。MPDocBench-Parse 则是公开基准,包含 433 篇文档、3,246 页。对于需要处理数百页书籍、申报文件或报告的开发者,Unlimited OCR 2 提供了一个可本地部署的开源选项,但标题层级识别仍是其需要补课的地方。