☰
MarathonDocBench基准测试解析:Unlimited-OCR-2凭什么登顶超长文档OCR榜单
2026/11/3 10:41:53 网站建设 项目流程
  • 人工智能
  • 计算机视觉
  • OCR
  • 多模态
  • 大模型

【免费下载链接】Unlimited-OCR-2

项目地址:https://ai.gitcode.com/hf_mirrors/baidu/Unlimited-OCR-2
点击查看免费下载

MarathonDocBench是百度专为「上百页超长文档 OCR」打造的新基准测试,而Unlimited-OCR-2正是在这张榜单上登顶的新模型。本文带你拆解它凭什么在几十页到上百页文档的"极限耐力赛"里笑到最后,以及背后那颗关键的技术心脏SR-SWA。

一、MarathonDocBench 是什么:上百页文档的"极限耐力"基准

1.1 为什么几十页的基准"不够用"

传统 OCR 评测里,像MPDocBench这类基准通常只覆盖几十页的文档。几十页听起来已经不少,但对现代模型来说,"几十页"和"上百页"完全是两个量级:

  • 几十页:序列长度可控,注意力机制还跑得动;
  • 上百页:文本与视觉 Token 爆炸式增长,标准的全局注意力开销呈二次方增长,内存和延迟会被直接拖垮。

MarathonDocBench正是为了补齐这块"耐力短板"而生——它专门评测模型在极端上百页文档上的解析能力。"Marathon"(马拉松)这个名字,本身就点明了它的考点:不是比谁跑得快,而是比谁能一直跑到终点。

官方在 README.md 中明确将其定位为"a new benchmark for ultra-long document parsing"(超长文档解析基准),并于 2026/10/27 正式发布。

1.2 榜单看点:两套基准一起考

Unlimited-OCR-2 的 SOTA 成绩,是同时在两类基准上取得的(见 README.md):

基准类型代表基准文档规模考察点
常规多页MPDocBench几十页精度与速度平衡
极限长文档MarathonDocBench上百页内存、延迟、不崩不截断

能同时压住"几十页"和"上百页"两端,才配得上"登顶超长文档 OCR 榜单"的说法。

二、登顶核心:SR-SWA 把超长序列压缩成固定参考集

Unlimited-OCR-2 登顶的真正武器,是SR-SWA(Sparse Reference Sliding Window Attention,稀疏参考滑动窗口注意力)。

2.1 SR-SWA 到底做了什么

一句话概括:它把"超长序列"里文本与视觉的注意力交互,压缩成一个固定大小的"工作参考集"(官方示例为 512 个 token)。

普通模型处理上百页文档时,当前 Token 要和前面所有Token 做注意力,计算量随文档变长而急剧膨胀。SR-SWA 的思路是:

  • 不再对整条超长序列做全局注意力;
  • 而是只维护一组固定大小的参考窗口;
  • 每生成一个 Token,实际"要算"的范围就被锁死在一个常数上。

由此带来的直接收益是:无论文档多长,单步解码延迟和内存占用都几乎保持恒定。这正是"上百页"和"几百页"能拉开差距的根本原因。

2.2 从 Long-Horizon 到 Unlimited-Horizon

这是 README.md 里"从长视野到无限视野"的官方表述。它的含义是:

  • 有限上下文窗口内,实现真正的无界(unbounded)文档解析;
  • 消除注意力随长度增长带来的二次方复杂度;
  • 文档再长,模型"呼吸"也基本不变——这就是 OCR 3.0 时代的口号:From Long- to Unlimited-Horizon Parsing。

三、榜单背后的工程细节:稀疏注意力路由 + MoE

登顶不只靠一个"口号",落地在模型里是一整套精细的稀疏机制。

3.1 稀疏注意力路由:只算"最相关"的块

Unlimited-OCR-2 把超长序列切成一个个块(block),再用一个轻量"路由器"为每个查询挑选最相关的少数块,而不是扫描全部。关键参数都写在 config.json 的sparse_attention_config里:

参数取值含义
sparse_block_size32每个块包含的 Token 数
sparse_topk_blocks16每个查询保留的"最相关块"数量
sparse_local_block4固定关注的局部块数量(滑窗)
max_position_embeddings131072最大位置上下文(约 128K)

这套"块级 top-k + 局部滑窗"的组合,在 dash_attention.py 中被解析为实际的块大小、局部窗口与 top-k 数量,是 SR-SWA 能"只算必要部分"的直接实现。

  • 核心实现:dash_attention.py、modeling_deepseekv2.py
  • 稀疏注意力基座:_sparse_base_impl.py(局部窗口与候选块的联合掩码)
  • Triton 加速内核:sparse_gather_triton.py、sparse_gather_e2e_triton.py

3.2 MoE 主干 + 多页推理

  • 主干:基于 DeepSeek-V2 风格的MoE(混合专家),含 64 个路由专家 + 2 个共享专家、12 层,hidden_size1280(见 config.json)。MoE 让"参数大、激活少",进一步压低长序列推理成本。
  • 视觉编码:采用deeplip_b_l(SAM ViT-B + CLIP-L)双塔视觉编码器,图像输入到 1024 分辨率,兼顾文本细节与版面结构。
  • 多页推理:infer_multi允许把一份文档的所有页放进一次请求,模型因此能利用跨页上下文;输出会按输入顺序每页返回一个<PAGE>标记(见 modeling_unlimitedocr.py)。配合每页 Token 上限保护,上百页也能稳定生成、不丢页。

四、新手如何快速体验 Unlimited-OCR-2

对刚接触 OCR 的读者,官方给出两条路径,按 README.md 操作即可:

① Transformers(快速验证,几行代码跑通)

  • 依赖:Python 3.10,torch==2.13.0、transformers==4.52.1,在 NVIDIA A800-80GB 上验证;
  • 多页:model.infer_multi(tokenizer, image_files=pages),一次传入整份文档的页面;
  • 单页:model.infer(tokenizer, image_file="page_1.jpg"),默认走动态分块(gundam 模式)。

② SGLang(推荐用于线上服务)

  • 用仓库自带的定制 wheel:wheel/sglang-0.5.20.dev13+g75b9b06b02-py3-none-any.whl;
  • 通过SGLANG_UOCR_DOC_GUNDAM_PAGE_WINDOW/SGLANG_UOCR_DOC_BASE_PAGE_WINDOW控制每窗页数,对超长文档做"页窗调度",并复用上一窗的 KV 尾部,进一步省内存;
  • 启动后通过 OpenAI 兼容接口发送请求即可解析整份文档。

小贴士:想省显存,可适当调小页窗;但页窗过小会削弱跨页合并效果(跨越窗口边界的连续区块会丢失上下文),需要在"省内存"与"跨页精度"之间取平衡。

小结:超长文档 OCR 的"耐力冠军"

Unlimited-OCR-2 登顶 MarathonDocBench,靠的不是蛮力,而是一套"把无限变有限"的工程哲学:

  • 基准侧:MarathonDocBench 把"上百页"变成可量化的极限耐力考;
  • 模型侧:SR-SWA 用固定大小的工作参考集,把注意力开销压成常数;
  • 落地侧:稀疏块级路由 + MoE + 多页推理,让上百页既算得动、又算得准。

从几十页到上百页,从"长视野"到"无限视野"——Unlimited-OCR-2 用 MarathonDocBench 这张榜单证明:超长文档 OCR 的时代,已经开始加速奔跑。🏁

延伸阅读:完整架构与推理细节见 README.md 与论文(Unlimited-OCR-2.pdf)。

  • 人工智能
  • 计算机视觉
  • OCR
  • 多模态
  • 大模型

【免费下载链接】Unlimited-OCR-2

项目地址:https://ai.gitcode.com/hf_mirrors/baidu/Unlimited-OCR-2
点击查看免费下载

相关推荐

上一篇:【完全免费】星露谷物语游戏素材完整清单与使用指南:地图、NPC、物品图一次拿全
下一篇:【零门槛免费】运动世界校园夜神模拟器步频脚本一键导入:模拟跑步数据的四步教程

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询