今天被一条推文炸到了。
Berryxia 发了条动态,就一句话:「这速度真特么离谱啊!卧槽!」
什么玩意能让人激动到爆粗口?
答案是百度刚刚在 Hugging Face 上开源的一个模型,叫 Unlimited-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,几十行代码的事情。
🔥 👇 全文结束 👇
夜雨聆风