别再一次喂40页!实测百度 Unlimited-OCR-2:多页批处理这3个坑,很多人都踩过
【免费下载链接】Unlimited-OCR-2项目地址: https://ai.gitcode.com/hf_mirrors/baidu/Unlimited-OCR-2
最近几个月,只要你稍微关注 AI 圈,大概率刷到过百度这个开源项目——Unlimited-OCR。
它的宣传语特别提气:3B 小模型,一次能读几十页文档,页数再多也不“越生成越慢”。上线没几天 GitHub 星标破万,如今已经冲到近两万,Hugging Face 下载量两百多万,还和 Kimi K3 一起霸过全球趋势榜前二。
于是很多人第一反应是:那我直接把一本 40 页的 PDF 塞进去,一口气出来一篇 Markdown,岂不美哉?
结果现实很骨感。社区里一位老哥用 16G 显存的 5060 Ti 扫 600 页技术书,跑到第 10 页左右显存飙红直接崩;还有人抱怨“跑到一半突然停了,后面 30 页全是空白”。
是模型不行吗?恰恰相反。单页识别质量,目前市面上很难找到对手。问题出在——大家把“支持多页”当成了“多页就是最优解”。
这两件事,中间差着好几个坑。
一、先给它正名:这确实是目前最能打的文档解析模型之一
它不是传统那种“先用框把字圈出来、再一个个认”的 OCR。
传统 OCR 就像一个只认字的复读机:字认得准,但版面全丢——两栏文章它能把左边读到一半跳去右边,一张表格给你吐成一串空格隔开的乱码。
Unlimited-OCR 直接上的是“看图说话”的大模型思路:给它一张纸,它直接还你一份带结构的 Markdown。标题会自动分层,表格会变成规整的表格,公式会转成 LaTeX 写法,多栏排版也能分清左右。
更狠的是它的“省电模式”:总参数 30 亿,实际每步只唤醒 5 亿多;再配合自家那套“滑动窗口”记忆机制——你可以理解成它抄书时只摊开眼前这几页参考,抄完就翻篇,桌上永远只放固定数量的纸,所以理论上页数一直加,显存也不会跟着一路狂飙。
榜单上它也确实是尖子生:OmniDocBench v1.6 拿到 93.92 分,把不少体量比它大十几倍的通用多模态模型甩在身后。
所以问题不是“它不强”,而是——“能一口气读完 40 页”和“每一页都读得一样清楚”,完全是两码事。
二、坑一:多页模式下,它悄悄把“放大镜”收起来了
这一点,是绝大多数教程不会告诉你的。
你单独喂一页的时候,模型是开着“精修模式”的:它会把这一页切成最多十几块小图,一块一块放大看,就像老师批改作文,拿红笔逐段圈。
但当你一口气塞进 40 页,为了不让计算量爆炸,它会自动切成“全景模式”:每一页只保留一张整体缩略图,大约两三百个视觉单位。
打个比方:一页纸,你拿放大镜逐行看,和一个小时内翻完 40 页、每页只远远扫一眼,能一样吗?
结果就是:大标题、正文段落依然稳;但页脚小字、公式角标、密集表格里的细格子、手写批注,掉字率会明显上升。
这不是模型偷懒,是它在替你算账——40 页全都开高清分块,视觉信息量直接翻几倍,普通显卡根本扛不住。
所以正确姿势是:排版复杂的页(票据、公式页、双栏论文),单独拎出来用单页模式“精修”一遍;排版规整的正文,才交给多页模式批量走。
三、坑二:预算是共享的,前面“大胃王”会把后面的饭吃光
多页请求里,输出的总字数是有上限的,而且这个上限是按“每页多少 token × 页数”算出来的,全文档共用一个大池子。
同时,每一页还有一个单独的封顶线,到点就强制翻页。
这就带来一个很真实的场景:第 8 页是一整页密密麻麻的财务表格,模型在这儿拼命输出,把预算吃掉一大半;等翻到第 9、10 页,额度见底,内容就被“腰斩”了——你看到的就是一份前半段精美、后半段秃噜的文档。
更隐蔽的是“分页符守卫”机制:模型每输出一页,会打一个看不见的分页标记,系统靠数标记来判断“40 页是不是都抄完了”。
万一模型手抖,多打了一个分页符,守卫会认为“页数超了”,直接强制收尾。于是你看到的现象就是:跑到一半戛然而止,后面全空。
这就是社区里那句“别信多页接口”的真实来源——不是接口假,是它有太多看不见的边界条件。
四、坑三:显存不是慢慢涨,是在某一瞬间“突然爆”
很多人以为显存是随页数一点点爬升的,其实不是。
真正吃显存的是开头那一下——把所有页的图片一次性塞进模型“预读”。40 页一起进去,峰值可能直接翻倍。
官方文档里还藏着一个很实在的细节:某个注意力计算的默认分块值偏大,一次性可能申请四百多兆的连续显存,机器一紧张就 OOM。官方直接建议把它调小到 64,效果一样,峰值却低很多。
另外,并发数一高,预留显存比例设得太满(比如 0.75),32 个请求一起上就会翻车,稳一点要降到 0.7。
所以你会看到很割裂的两种反馈:
- 有人说“A800 上 40 页丝滑”;
- 有人说“我 16G 卡第 10 页就崩”。
都没说错,只是同一个接口,在不同显存、不同页数、不同版面复杂度下,表现天差地别。
好消息是,现在 8G 显存的轻量包、Mac 上 2GB 出头的 4bit 版本都有了,普通电脑也能玩;但这类设备,天生就该“小口吃”。
五、那到底该怎么喂?记住三句话
第一句:按“章节”切,别按“页数”切。
官方文档自己都承认了一句很诚实的话:窗口切得越小越省显存,但跨窗口的表格和段落会丢上下文。
所以切点要挑在章节末尾、目录结束、大标题之前。表格中间、跨页段落中间,千万别下刀。相邻两批之间留一页重叠,后面合并时用来对齐。
第二句:一批 8 到 12 页,是甜点区。
官方服务端的默认窗口就是 10 页。排版规整的说明书、小说,可以放到 15 到 20 页;报纸、票据、公式密集的论文,5 到 8 页更稳。
第三句:主体走批量,疑难页走单页。
整本书用多页模式跑主干,跑完把“识别字数明显偏少”的页挑出来,单独用单页精修模式重跑一遍。这一招补出来的质量,比你硬把 40 页塞进一个请求强太多。
六、比“喂多少页”更重要的,是“崩了能不能接着跑”
那位扫 600 页书的老哥,最后总结出一句大实话:逐页循环反而比批处理更靠谱。
原因很简单——一页一个文件,文件名带页码;跑挂了只需重跑那一页,不用从头再来。
所以真正成熟的流水线,都会做三件事:
一是每页单独存结果,再配一份清单,记录页码、状态、字数、耗时;
二是自动体检:输出页数对不对得上输入页数?某页字数是不是少得离谱?有没有整页空白?发现异常就打上“待重跑”标签;
三是只补失败的那一页,最后合并时统一处理跨页表格拼接、标题重新编号、重复页眉页脚清理。
一句话:把“追求一次成功”,换成“失败了我也不怕”。这才是几百页文档能真正跑完的秘诀。
七、普通人上手,门槛其实不高
不想折腾代码的,Hugging Face 上有在线体验页,传图就能看效果;
有 8G 显存的游戏本,能跑轻量版本;Mac 用户有 2GB 多的 4bit 版本,装完就能本地跑,文件不出门,隐私党狂喜;
想要接进自己工作流的,它提供的是 OpenAI 兼容接口,Dify、Claude Code 这类工具都能直接挂上去,把“看 PDF”这件事交给它。
最适合的人群也很明确:天天要整理扫描合同的法务财务、要把纸质书电子化的学生和研究者、要给知识库喂文档的自媒体和开发者。
写在最后
Unlimited-OCR 真正牛的地方,不是“能吞 40 页”这个数字,而是它把长文档解析从“越读越慢”拽到了“读多长都差不多快”。
但技术上的“页数自由”,不等于使用上的“一口气吃完”。就像搬家,说有辆大卡车能装 40 箱,不代表你一次全塞进去就不会压坏东西——分批搬、边搬边清点,才是老司机的做法。
所以我更想问一句:你处理长文档时,是愿意“一次 40 页赌它不出错”,还是“10 页一批,稳稳当当”?你有没有遇到过那种跑到一半突然停住、后面全空的崩溃瞬间?评论区聊聊,说不定你的坑,正是别人明天的救命经验。
【免费下载链接】Unlimited-OCR-2项目地址: https://ai.gitcode.com/hf_mirrors/baidu/Unlimited-OCR-2
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考