多模态文档解析开源新进展:Unlimited OCR技术方案

📅 2026/7/6 2:15:21
多模态文档解析开源新进展:Unlimited OCR技术方案
这次介绍的技术方案架构是站在前期《多模态文档解析开源新进展-DeepSeek-OCR2.0架构、数据、训练方法》所介绍的DeepSeek-OCR的改进主要引入了【R-SWAReference Sliding Window Attention参考滑动窗口注意力】。下面来具体看看。思想来源故事背景先抛开技术想一个生活场景让你抄一本书。你会怎么做你不会每抄一个字就把前面已经抄过的几百页从头到尾重读一遍。你的注意力其实只停在三个地方——原书看着抄什么、刚写下的几个字确认抄到哪了以及马上要写的下一个字。前面抄完的内容你会自然地淡忘不再占用脑力。正因如此你抄第 100 页和抄第 1 页一样轻松速度不会越来越慢。但今天的 OCR 大模型做不到这一点。以 DeepSeek OCR 这类端到端模型为代表它们用大语言模型LLM当解码器确实带来了语言先验、识别更准。可代价是输出越长模型越慢、越吃显存。原因在于标准注意力机制——每生成一个新字符模型都要回看此前生成的全部内容这些历史以 KV cache 的形式堆积在显存里随输出长度线性膨胀。结果就是现有模型一次前向根本读不完十页文档。它们只能逐页处理——一页一页地 for 循环每翻一页就把记忆清空重来。论文一针见血地指出这种做法能用但只是工程上的权宜之计而非迈向通用智能的一步。它把一个本应连贯的长程任务硬生生切碎成一堆孤立的短任务再交给外部调度器拼接。Unlimited OCR 的目标就是让模型摆脱这个 for 循环真正像人一样一口气连续读完几十页。抄书时的注意力长什么样画了张图人抄书时的那种注意力模式和现有模型里任何一种注意力都不一样。它不是标准全注意力——因为你从不把已写的全部历史完整重读一遍它也不是线性注意力——因为原书视觉信息始终清晰地摆在那里不会被反复压缩进某个隐状态而逐渐模糊。这两点否定非常重要它们直接框定了新机制必须满足的两个约束原文必须始终清晰可见——视觉特征不能因为反复迭代而退化这会直接拉低识别准确率历史输出可以软遗忘——只保留最近一小段就够追踪进度不必全部留存。R-SWA一半全局看图一半滑窗看进度R-SWA 的设计可以用一句话概括每个待生成的 token永远能看到全部参考内容但对已生成内容只看最近的一小段。这里的参考内容对应抄书时的原书在 OCR 里就是图像编码后的视觉 token外加任务提示词prompt。已生成内容则是模型此前吐出的文字 token。注意力被限制在一个由两段拼成的窗口里宽度为m n前缀段m参考窗口包含全部视觉 token 和提示词。它对后面所有 token全局可见。它的大小只取决于文档有多少页、分辨率多高在整个解码过程中固定不变不随你生成了多少字而增长。解码段n滑动窗口只覆盖最近生成的n个文字 token默认n 128。它以因果causal的方式向前滑动——每生成一个新字窗口就往前挪一格。于是每个新 token 的视野就是全部前缀 最近 n 个输出。前缀提供我在读什么的完整图像信息滑窗提供我抄到哪了的进度追踪。更早的输出则被排除在视野之外对应人脑的软遗忘。这个设计有一个巧妙的细节视觉 token 只在最开始被编码一次之后就静态地待在那里永远不参与状态更新。这正好规避了线性注意力的通病——如果让视觉特征跟着输出一起反复迭代它们会像反复复印的纸张一样越来越模糊识别精度随之崩坏。R-SWA 把参考和进度彻底解耦原文永远清晰进度靠滑窗追踪。为什么它能无限读下去关键在 KV cache 恒定R-SWA 带来的最直接、也最重要的好处是KV cache 的大小被锁死成一个常数。对比一下两种机制在生成了T个 token 之后需要保留多大的 KV cacheL_m表示前缀长度标准注意力DeepSeek OCR缓存 L_m T。也就是说输出越长缓存越大没有上限。R-SWAUnlimited OCR缓存 L_m min(n, T)永远不超过L_m n。差别非常本质标准注意力的缓存随输出无限线性增长而 R-SWA 的解码侧缓存被一个固定窗口锁住。当输出足够长T远大于n时两者缓存的比值会趋近于零——意味着输出越长R-SWA 省下的显存就越夸张。工程实现上论文把这个 KV cache 做成一个容量固定为m n的队列。每生成一个新 token就把队首那个最老的输出 token 的 KV 踢出去论文里描述为驱逐第m1个位置的 KV。这样队列长度恒定显存占用和计算开销都不会随生成过程递增。模型架构Unlimited OCR 并非从零搭建而是直接以DeepSeek OCR 为基线【《多模态文档解析开源新进展-DeepSeek-OCR2.0架构、数据、训练方法》】做了一处替换。整个模型是一个统一的端到端结构由两部分组成第一部分DeepEncoder视觉编码器原样保留这是 DeepSeek OCR 里就有的高压缩编码器它把 SAM-ViT 和 CLIP-ViT 级联起来在两者衔接处做 16 倍的 token 压缩。前半段用窗口注意力处理原始高分辨率图像后半段才用全局注意力处理已压缩的少量 token——这样处理高清图时激活值很低省显存。它能把一张 1024×1024 的 PDF 图像压成区区256 个视觉 token。这个高压缩比对无限 OCR至关重要因为视觉 token 是要全程驻留在前缀里的参考压得越狠前缀L_m就越短能塞进去的页数就越多。第二部分MoE-LLM 解码器注意力全换成 R-SWA解码器沿用 DeepSeek OCR 的混合专家MoE架构——总参数 3B但推理时只激活 0.5B效率极高。Unlimited OCR 做的唯一、也是核心的改动就是把解码器里所有的标准多头注意力MHA全部替换成 R-SWA。训练方法只练解码器冻住编码器冻结 DeepEncoder只训练 LLM 的参数。因为编码器在 DeepSeek OCR 里已经被充分优化过了没必要再动。模型真正要学的是如何在 R-SWA 这种只能看一小段历史的新注意力模式下把有用的进度信息持续地传递进滑窗。数据构造约 200 万条文档 OCR 样本单页与多页按 9:1 混合。单页数据用 PaddleOCR 标注把每个版面块的坐标和内容拼成端到端检测 解析的标签坐标归一化到 0–1000。多页数据则由单页拼接合成——随机生成约 20 万条、每条 2 到 50 页的样本页与页之间用page分隔。所有数据打包成 32K 长度的序列。起点与时长从 DeepSeek OCR 的 checkpoint 继续训练仅 4000 步全局 batch size 256最大序列长度 32K在 8×16 张 A800 上完成。实验往期相关多模态文档解析的开源项目模型技术方案都在《文档智能专栏》如再看两阶段多模态文档解析大模型-PaddleOCR-VL架构、数据、训练方法多模态文档智能解析开源进展针对形变文档优化的PaddleOCR-VL-1.5架构改进点如何打造一个文档解析的多模态大模型MinerU2.5架构、数据、训练方法端到端的多模态文档解析模型-DeepSeek-OCR架构、数据、训练方法多模态文档解析模型新进展腾讯开源HunyuanOCR-1B模型架构、训练配方强化学习GRPO格式奖励在多模态文档解析中的运用方法多模态文档解析开源新进展-DeepSeek-OCR2.0架构、数据、训练方法多模态文档智能解析持续开源进展Youtu-Parsing模型架构、数据、训练方法多模态文档解析最新开源进展2B参数FireRed-OCR模型方法多模态文档解析新进展多模态OCR解析文档中的任意内容实现方案近期两个多模态文档解析方案开源进展DocHumming和PaddleOCR-VL-1.6技术方案…参考文献Unlimited OCR Works: Welcome the Era of One-shot Long-horizon Parsinghttps://arxiv.org/abs/2606.23050https://github.com/baidu/Unlimited-OCR