无限OCR:用“参考滑动窗口注意力”R-SWA实现长文档一次性解析
端到端 OCR 在过去两年迎来新一轮热潮,以 DeepSeek OCR 为代表的方案将大语言模型(LLM)用作解码器,借助语言先验显著提升了识别精度。
然而,这类方案存在一个内在缺陷:随着输出序列不断增长,KV 缓存持续膨胀,既消耗大量显存,又使每一步解码的延迟逐渐拉长。
现有模型普遍采用类似 for 循环的方式逐页处理,每处理完一页便重置记忆,再切换到下一页。这种方式本质上是一种工程补丁,而非真正意义上的长程理解能力。
反观人类,我们在抄写一本书时并不会持续回看所有已写内容,而是把注意力集中在三处:正在抄写的原文、刚刚写下的少量字符、以及即将落笔的下一个字。对于已写过的内容,人类以一种“软遗忘”的方式逐渐淡出记忆。这种机制使人能够在认知负荷极低的情况下完成数百页的连续转录任务。
受此启发,百度团队提出了“无限 OCR”(Unlimited OCR),将解码器中的所有注意力层替换为“参考滑动窗口注意力”(Reference Sliding Window Attention,R-SWA),在降低注意力计算开销的同时,在整个解码过程中维持恒定的 KV cache。
论文链接:https://arxiv.org/pdf/2606.23050
GitHub地址:https://github.com/baidu/Unlimited-OCR
据论文介绍,通过将 DeepSeek OCR 编码器的高压缩率与恒定 KV cache 设计相结合,Unlimited OCR 能够在标准 32k 最大长度限制下,以单次前向传播转录数十页文档。
更重要的是,R-SWA 是一种通用的解析注意力机制,除 OCR 外,它同样适用于 ASR、翻译等任务。
R-SWA 的设计逻辑
标准的多头注意力(MHA)采用全量 KV cache,随着输出 token 数线性增长,其占用的显存和计算时间也同步增长。对于一个需要输出十万个 token 的多页文档来说,这意味着 KV cache 将无限膨胀,推理速度也会持续下降。这正是当前所有端到端 OCR 模型无法实现“一次性解析整本书”的根本原因。
R-SWA 将注意力划分为两段:参考段(reference)和解码滑动窗口(decode window)。
参考段包含视觉 token 和提示词(prompt),在整个解码过程中保持全局可见,且不参与状态转移,视觉特征只被编码一次,此后静止不变。这一设计避免了普通滑动窗口注意力(SWA)因将视觉 token 也纳入滑动循环而导致的"视觉特征逐步模糊"问题。
解码滑动窗口的宽度固定为 n(默认 128),以因果方式向右滑动。每生成一个新 token,最早进入窗口的那个 token 的 KV 便被驱逐出队列。这样一来,解码侧的 KV cache 规模始终被限定在固定容量之内,而非随输出长度线性增加。
图|R-SWA 与标准全量注意力的 KV cache 对比示意。
对于长序列解码,KV cache 总量对比尤为明显。在输出 token 数远大于窗口宽度的情况下,R-SWA 的 cache 占用趋向于一个有界常数,而 MHA 的 cache 则无上限地增长。这一差距随输出长度加大而扩大,正是 R-SWA 实现近无限解析的理论基础。
Unlimited OCR 沿用了 DeepSeek OCR 的 DeepEncoder 编码器。DeepEncoder 将 SAM-ViT 与 CLIP-ViT 级联,在衔接桥处实施 16× token 压缩,使一张 1024×1024 的 PDF 页面图像最终只产生 256 个视觉 token。这一极高的压缩率意味着:即使同时输入数十页文档,prefill 阶段产生的视觉 token 总量也相对可控。
DeepEncoder 压缩视觉端,R-SWA 稳定解码端两者相结合,共同支撑起 Unlimited OCR 在 32K 最大长度限制下一次性解析数十页文档的能力。
图|Unlimited OCR 整体架构示意。
实验结果
1.单页文档:达到端到端 SOTA
研究团队在 OmniDocBench v1.5 和 v1.6 上对 Unlimited OCR 进行了评测,并与当前主流的端到端 VLM(Vision-Language Model)方案进行了系统比较。
在 OmniDocBench v1.5 上,Unlimited OCR(3B-A0.5B)取得了 93.23 的 Overall 分数,相比 DeepSeek-OCR 提升 6.22;在 OmniDocBench v1.6 上,Unlimited OCR 以 93.92% 的 Overall 分数取得端到端方案 SOTA,超过了 Logics-Parsing-v2(93.33%)、FireRed-OCR(93.26%)等同期工作。
研究团队还对 OmniDocBench v1.5 涵盖的 9 种文档类型(学术论文、书籍、考卷、杂志、报纸、便签等)进行了逐类别对比。
结果显示,Unlimited OCR 在所有类别的所有指标上均优于 DeepSeek OCR,在 9 项文字编辑距离和阅读顺序指标中有 7 项超过了 DeepSeek OCR 2,表明 R-SWA 的引入带来的是无损增益。
2.长程解析:多页一次性转录
这是 Unlimited OCR 区别于所有现有模型的关键能力。研究团队构建了一个内部测试集,收录了小说、学术文档和论文,按页数划分为 2、5、10、15、20、40+ 页六档,每档不少于 10 本,以评估多页一次性解析的表现。
Distinct-n 衡量生成文本中不重复 n-gram 的比例,是检测模型在长程生成中是否陷入循环重复的重要指标。即使在 40 页以上的场景下,Distinct-35 仍达到 96.90%,编辑距离保持在 0.11 以内。
研究团队指出,此类场景下的误识别主要来自 PDF 图像中的小字体文本在 1024×1024 分辨率下难以辨认,而非 R-SWA 在长程推理中失去方向。
3.推理效率
在推理吞吐量(TPS)方面,随着输出序列变长,DeepSeek OCR 的 TPS 持续下降:在输出 6000 个 token 时降至 5822.87 TPS,而 Unlimited OCR 维持在 7847.71 TPS,领先约 35%。
在单页 OmniDocBench 评测场景下,Unlimited OCR 的吞吐量也比 DeepSeek OCR 高出 12.7%(5580 vs. 4951 TPS)。
每一步 Flash Attention v3 kernel 的调用延迟在 Unlimited OCR 中始终保持平稳,而在 DeepSeek OCR 中则随解码步骤线性增加,并在 KV cache 跨越某一对齐边界时出现骤降。
不足与未来方向
研究团队指出,当前 Unlimited OCR 并不能在有限上下文长度(如 32K)下实现真正意义上的“无限”解析,因为 prefill 端的长度仍受上下文窗口约束,随着输入页数增加,prefill 阶段的视觉 token 总量也随之累积。
未来,他们的短期计划是将最大训练上下文扩展至 128K,以支持更多页面的一次性 prefill;长期目标是构建一个 prefill 池,让模型能够自动按需读取 KV 片段,模拟人类翻页时的记忆检索行为,从而实现真正的无限解析。
此外,他们还计划将 R-SWA 迁移至自动语音识别(ASR)和翻译等同样具有参考输入的长程任务。
Unlimited OCR 所揭示的核心结论,即在端到端模型的解码器中,将全量注意力完整替换为 R-SWA 对解析任务无损,提供了一条以有限资源撬动长程推理能力的实用路径。
将 KV cache 从随解码长度无限增长的量转变为有界常数,这一改变有望在 OCR 之外更广泛的参考型长程生成任务中得到应用。
本文来自微信公众号 “学术头条”(ID:SciTouTiao),整理:乔治,36氪经授权发布。















