乐于分享
好东西不私藏

几百页文档一次性搞定,百度这个 OCR 有点六

几百页文档一次性搞定,百度这个 OCR 有点六

今天被一条推文炸到了。

Berryxia 发了条动态,就一句话:「这速度真特么离谱啊!卧槽!」

什么玩意能让人激动到爆粗口?

答案是百度刚刚在 Hugging Face 上开源的一个模型,叫 Unlimited-OCR

名字很直白,能力也很直白——一次性处理几百页文档。

对,一次性。不是一页一页来。

以前的多页文档 OCR 有多蛋疼

做过文档识别的人都懂。

你有一本 300 页的 PDF,想把它转成可编辑的文字。传统做法是什么?

拆吧。300 页拆成 300 张图,一张一张送进 OCR 模型,每张识别完,再写个调度脚本把结果拼回来。

拼回来的过程中,上下文断裂、格式不一致、表格错位、页眉页脚混到正文里——各种毛病轮着来。

这还不是最烦的。最烦的是每多一页,模型的 KV Cache 就膨胀一圈,显存跟着往上飙。到后面不是 OOM 就是速度慢到让人想砸键盘。

所以业内一直有个心照不宣的做法:老老实实一页一页来,别想偷懒。

百度这次改了什么

核心创新叫 R-SWA——Reference Sliding Window Attention,参考滑动窗口注意力。

名字拗口,原理其实不复杂。

以前的注意力机制处理长文档时,每多看一页,KV Cache 就膨胀一圈,算到后面几十页,显存早就爆了。

R-SWA 的做法是:在解码过程中让 KV Cache 保持恒定。不管你是 1 页还是 500 页,计算开销和显存占用都一样。

这就等于把「无限长文档一次性解析」这个命题,从理论上打通了。

结果就是:一张图,或者一本多页 PDF,直接扔进去就行,模型自己搞定一切。

不是嘴炮,有硬数据

在 OmniDocBench 上,Unlimited-OCR 拿到了 93 分

比 DeepSeek-OCR 高出 6 个百分点。

6 个百分点在 OCR 领域是什么概念?不是小修小补的进步,是把整个工作流从「分块 + 外部调度器拼接」变成了真正的端到端一镜到底。

以前你写的是 pipeline 代码,现在你只需要一行 model.infer()

从「认字」到「理解」

这是我最想说的一个点。

传统的 OCR,本质上是一个「认字工具」。它做的事情是:看到图片上的像素,识别出哪些像素组成了什么字,然后输出文字。

但 Unlimited-OCR 做的事情,已经超出了认字的范畴。

因为它能一次性看到整篇文档的结构、布局和逻辑关系,所以它的输出不是零散的文字片段,而是保留了文档原本的结构信息。表格、标题、正文、页脚——它都分得清。

这已经不是 OCR 了,这是长文档理解引擎

从「这是什么字」到「这篇文档在讲什么」,这个跨越,百度做到了。

一条评论让我笑了

有网友在推文下留言:「套壳卖 299 不过分吧」。

Berryxia 回了句:「yyds」。

另一个说:「OCR 百度还是不错的」。

百度这些年在 AI 领域的口碑确实有点拧巴。大模型方向被各种质疑,但在 OCR 这条线上,PaddleOCR 到今天的 Unlimited-OCR,确实是一步一个脚印走过来的。从底层把技术做透,然后甩出硬核开源成果。

这次在 Hugging Face 上发布,模型地址、代码、论文全部公开,支持 transformers 直接加载,也支持 vLLM 和 SGLang 部署。

技术路线清晰,落地路径也清晰。

几点感想

第一,OCR 这个赛道还没到头。很多人觉得 OCR 是个成熟到无聊的技术了,但 Unlimited-OCR 证明,当大家对长文档的理解方式变了之后,整个天花板又往上抬了一截。

第二,R-SWA 这个思路,可能不只适用于 OCR。KV Cache 膨胀是所有长序列模型的老大难问题,如果这个思路能被推广到其他领域,价值不可估量。

第三,百度在 OCR 上确实独树一帜了。不管你喜不喜欢百度,这条线它做得确实硬。

模型在 Hugging Face 上搜索 baidu/Unlimited-OCR 就能找到,论文也同步公开了。

有兴趣的可以去跑个 Demo,几十行代码的事情。

🔥 👇 全文结束 👇

📚 历史文章导航点击查看全部历史文章 → https://98091723.github.io/weixin-nav/