百度最新发布“Unlimited-OCR“:一次识别几十页,速度比DeepSeek-OCR提升35%
就在昨天,6月22日,百度在arXiv上发布了一份技术报告。
我之前也没认真想过这个问题。直到看到这份报告,开篇第一句话就把我给问住了。
人类抄一本书,抄第一页和抄第一百页,速度几乎一样。但 AI 处理文档,越往后越慢。
为什么?
这不是算力够不够的问题。这是注意力机制本身的问题。

今天想聊聊这个挺有意思的技术突破,搞明白长上下文,到底难在哪?为什么让 AI 「一次看完几十页」这件事,听起来简单,做起来这么难?
读完你可能会对「注意力」这三个字,有不一样的理解。
为什么 AI 越长越慢
先说结论。因为现在主流的大模型,用的是全注意力机制。
什么意思呢,就是每生成一个新字,AI 都要回头看一眼之前所有的字。
生成第一个字的时候,它只需要看输入的内容。生成第一百个字的时候,它要看输入 + 前面 99 个输出。生成第一千个字的时候,它要看前面九百九十九个。
你想想,这能不慢吗。
慢还是小事。更麻烦的是内存。每生成一个字,就要把这个字的 KV 缓存存下来。越往后,缓存越大,占的内存越多。到后面,内存不够了,速度直接垮掉。 (KV缓存(Key/Value Cache)用于存储历史token的键和值向量,以避免每次生成新token时重复计算整个上下文)

打个比方,你去图书馆找书,每次找书都要把整个图书馆从上到下扫一遍。书越多,找得越慢。
现在的大模型差不多就是这个德行。
你可能会说,那不对啊。人看书也不会越看越慢啊。我们读一本几百页的书,也没说读到后面速度就掉下来了。
对,这就是关键。
人不会把每一页都「缓存」在脑子里。我们看后面的内容,不会每读一个字都把前面几百页全部回忆一遍。我们只记得最近几页讲了什么,大概的脉络是什么。远处的细节,模糊了就模糊了。
这叫工作记忆。有限,但高效。
而 AI 的全注意力,是一种过目不忘但代价高昂的模式。
R-SWA,一种「类人」的注意力
Unlimited OCR 的核心创新,叫 R-SWA,全称是 Reference Sliding Window Attention,参考滑动窗口注意力。
名字听起来很复杂,其实逻辑很简单。
它把 token 分成了两类。
一类叫参考 token,就是输入的内容,比如图片编码后的视觉 token,或者 prompt。这些 token,AI 每一步都能看到全部。
另一类叫输出 token,就是 AI 自己生成的内容。这些 token,AI 只能看到最近的 n 个,默认是 128 个。再往前的,就「忘了」。
你品品,这像不像人类抄书的时候?
你抄书的时候,眼睛一直看着原稿,原稿的每一个字你都能看到,这就是参考 token 全保留。
但你自己写过的字,你不会每写一个新字都回头把前面写过的全部读一遍。你大概记得最近几行写了什么、写到哪了,这就够了。更远的内容,模糊了也没关系。
就是这么个朴素的思路。

但效果挺惊人的。
先说 KV 缓存不再增长了。因为输出 token 的注意力窗口固定在 128 个,不管你生成多少字,缓存大小都是恒定的。内存压力一下子就没了。
再就是速度不再下降。生成第 100 个字和生成第 10000 个字,计算量差不多。
还有,也是最重要的,效果居然没有掉。甚至还更好了。
这就有点反直觉了。看得更少了,怎么反而更好了?
报告里是这么解释的。全注意力模式下,输出越长,注意力越容易被稀释。前面的输出 token 太多太杂,反而干扰了对参考 token 的关注。
而 R-SWA 把输出的注意力限制在一个小窗口里,反而让模型能更聚焦在眼前的事上。
就像人抄书的时候,你不需要记得第一章写了什么才能抄好第五章。你只要看着原稿、知道自己抄到哪一行了,就够了。
我们原本总觉得 AI 要向全知全能的方向发展,看得越多越好,记得越多越好。
但这里体现的人类的认知模式,反而是有选择的、有遗忘的、聚焦当下的。
或许这里的这种「不完美」,是高效的关键。
当然了,这个结论目前只在 OCR 这类解析任务上成立。通用推理任务是不是也这样,还不好说。
但至少它给了我们一个启发:注意力,不是越多越好。
数据说话,到底有多厉害
原理讲完了,我们来看点实在的。
技术报告里的东西,不能光听它说厉害。我们得看看数据怎么来的、跟谁比、比的是什么。
这也是我想借着这篇文章跟你聊的另一件事,以后看 AI 技术报告,怎么判断它是真突破还是吹牛逼。
先看基准测试。
Unlimited OCR 用的测试基准叫 OmniDocBench,这是行业里测文档 OCR 常用的一个数据集,有 v1.5 和 v1.6 两个版本。
评测的指标叫 Overall,综合了文字识别、公式识别、表格结构、阅读顺序等多个维度,分数越高越好。
另外还有一个指标叫编辑距离,就是识别结果和标准答案差多少字,越低越好。
好,我们来看结果。

在 OmniDocBench v1.5 上,Unlimited OCR 拿了 93.23 分。
作为对比,它的基线模型 DeepSeek OCR 是 87.01 分。提升了 6.22 分。
6.22 分是什么概念呢,你可以看看同一张表里其他模型的差距。
Qwen3-VL 72B 是 89.15 分,Gemini 2.5 Pro 是 88.03 分,Qwen2.5-VL 72B 是 87.02 分。
你看,头部模型之间的差距,大多在一两分的量级。一下拉 6 分多,这个幅度确实挺大的。
不过等等,这里有个细节需要注意。
Unlimited OCR 不是从零训练的。它是在 DeepSeek OCR 的基础上,用 2M 的 PDF 文档数据继续训练,同时把解码器的注意力换成了 R-SWA。
所以这 6.22 分的提升,不能全算在 R-SWA 头上。额外的训练数据也有贡献。
这一点报告里说得很清楚,没有隐瞒。我觉得这点挺好的,不玩文字游戏。
在 v1.6 版本上,Unlimited OCR 是 93.92 分,跟目前的 SOTA 模型 Qianfan-OCR 的 93.90 分基本持平。考虑到 Unlimited OCR 的模型规模是 3B-A0.5B,这个成绩还是相当能打的。
除了整体分数,报告还测了 9 种不同类型的文档,PPT、学术论文、书籍、彩色教材、试卷、杂志、报纸、笔记、研究报告。
结论是,跟基线 DeepSeek OCR 比,Unlimited OCR 在每一种文档类型上都有提升。没有明显的短板。
这点挺重要的。不是说某一类文档涨分了、另一类掉了,而是全面提升。
用报告里的话说,这是一顿免费的午餐。
速度和长文档,才是重头戏
性能提升虽然亮眼,但 Unlimited OCR 真正有意思的地方,是速度和长文档能力。
先看速度。
报告里测了不同输出长度下的 TPS,就是每秒能生成多少 token。

在输出 256 个 token 的时候,两者差不多,都是七千多 TPS。
但输出越长,差距就拉开了。
输出 1024 token 的时候,DeepSeek OCR 是 7422 TPS,Unlimited OCR 是 7841 TPS。
输出 4096 token 的时候,DeepSeek OCR 掉到了 6430 TPS,Unlimited OCR 还是 7905 TPS。
到了 6144 token 的时候,DeepSeek OCR 只剩 5823 TPS,Unlimited OCR 还有 7848 TPS。
算一下,输出 6000 多 token 的时候,Unlimited OCR 比基线快了大约 35%。
而且这还不是终点。输出越长,R-SWA 的优势就越大。因为全注意力的复杂度是 O(n²),而 R-SWA 的输出部分是 O(n)。
再说长文档能力。
之前的端到端 OCR 模型,大多只能处理单页文档。多页的话,就得一页一页循环处理,每页之间没有上下文关联。
Unlimited OCR 因为 KV 缓存是恒定的,理论上可以一次处理很多页。
报告里做了测试,2 页、5 页、10 页、15 页、20 页、40 多页。

2 页的时候,编辑距离是 0.0362,已经很好了。
到 40+ 页的时候,编辑距离是 0.1069。有下降,但还在可用范围内。
作为对比,你可以理解成,40 页文档一次性识别,准确率虽然比单页略低,但低得不多。
这个能力还是挺实用的。
比如你有一份几十页的 PDF 要转文字,以前可能得一页一页处理,还担心跨页的表格、公式、章节顺序会乱。现在可以整份丢进去,一次出来。
不过这里也得说清楚边界。
不是说真的「无限」页。Unlimited OCR 的上下文是 32K,输入的视觉 token 也要占位置。页数太多了,prefill 还是装不下。
报告里也明确说了,短期的计划是训练 128K 上下文的版本,支持更多页。长期来看,他们想做一个 prefill pool,让模型学会自己「翻页」,像人看书一样,需要的时候再去翻前面的内容。
那才是真的有点「无限」的意思。
现在嘛,叫 Unlimited 更多是一种愿景。实际能做到几十页,已经是很大的进步了。
长上下文的几条路
顺着 Unlimited OCR 这个例子,我们经常听到各种长上下文的宣传,128K、200K、1M,数字越来越大。
但你有没有想过,这些长上下文都是怎么做出来的?各自有什么有权衡取舍?
我理解的大概有这么几条路线。

第一条路,就是堆算力。全注意力,上下文越长,需要的计算和内存越多。好处是效果理论上最好,每一个位置都能看到所有其他位置。坏处就是贵,慢,越长越贵越长越慢。
很多大模型的长上下文版本,说到底就是这条路的延伸,再加上一些工程优化。
第二条路,滑动窗口注意力。就是只看最近的 N 个 token,再往前的就不看了。好处是快,内存恒定。坏处也很明显,远处的信息真的就丢了。如果答案在文章开头,滑到后面就找不到了。
普通的滑动窗口,问题还不止这个。因为视觉 token 也会被滑出去,所以用在 OCR 这种任务上效果会掉。你看到一半,前面的图没了,那还怎么识别?
R-SWA 聪明的地方就在这,它把参考 token 和输出 token 分开处理。参考的全保留,输出的滑动。既保住了输入的完整性,又控制了输出的复杂度。
第三条路,线性注意力或者其他低秩近似的方法。把 O(n²) 的复杂度降到 O(n)。好处是理论上可以很长,坏处是效果有时候会打折扣,而且工程实现比较复杂。
还有第四条路,检索增强。不把所有内容都塞上下文里,需要的时候再去检索相关的片段。这条路更像是工程方案,不是模型结构本身的改变。
你看,没有哪条路是完美的。各有各的取舍。
全注意力效果好但贵,滑动窗口便宜但会丢信息,线性注意力有潜力但还在发展,检索增强工程化但不优雅。
R-SWA 有意思的地方在于,它在观察了人类的工作模式之后,对问题本身做了一次重新定义。
解析类的任务,真的需要全注意力吗?输出的历史,真的需要全部记住吗?
答案似乎是否定的。
在正确的问题定义下,少即是多。
对了,报告里说代码和模型权重都已经开源了,在 GitHub 上搜 baidu/Unlimited-OCR 就能找到。感兴趣的朋友可以去看看。
感谢阅读。点个关注,不迷路,我们后续会持续跟进文档解析、OCR、多模态模型等前沿技术动态,第一时间为你解读。
更多推荐


所有评论(0)