一张入门显卡跑赢算力集群:Jina AI 端到端文档解析模型背后的投机采样机制
拿大模型去解析几万张扫描版的 PDF 合同,最先让人崩溃的往往不是识别准确率。 算力账单先一步把人劝退了。 把一张密密麻麻排满表格、公式和多栏排版的扫描件转成干净的 Markdown,需要多久? 两三秒钟。 单看这一页好像并不慢。 但如果企业手里压着几十万页历史档案、财务报表或者科研论文呢? 按业内目前的几个主流模型跑,一秒钟只能啃下 0.3 到 0.5 页。 要想在一天之内把活干完,往往得租上一整排昂贵的英伟达 H100 显卡集群。 把文档转成数据这门底层苦力活,硬生生被算力成本逼成了吞金兽。 为什么文档解析会这么慢? 因为现在主流的多模态模型,走的全是端到端单次生成路线。 把整页文档的照片往模型里一送,模型像一个打字员一样,一个字、一个符号地往外敲。 只要模型在逐字生成,就会撞上一道著名的物理墙:显存带宽墙。 在计算机底层,显卡每生成一个词,都得把几十亿个参数从显存里完整搬进计算核心一遍。 偏偏一页复杂的文档,算上表格边框代码、公式符号和分段标签,动辄就是一两千个字符。 生成这一页纸,显卡就得把整个模型的权重在显存里来回倒腾一两千次。 普通显卡的显存带宽根本扛不住这种高频搬运。 算力还没跑满,显存通道就已经堵成了早高峰。 前几天,德国柏林的 Jina AI 开源了一个专门解析文档的模型 jina-ocr-v1。 在基准测试里,它的解析速度直接飙到了每秒 2.57 页。 更关键的是它的硬件门槛。 它不需要昂贵的双卡 H100 集群,只要一张单卡、每小时租金不到一美元的入门级企业卡 NVIDIA L4。 同等精度的其他开源模型,跑起来慢得多:chandra-ocr-2 只有 0.38 页,dots.mocr 只有 0.55 页。 即便是精度更高的 35B 级模型 Infinity-Parser2-Pro,也得靠两张 H100 显卡拼命跑才能追上这个吞吐量。 一张功耗只有几十瓦的平民显卡,到底凭什么跑出了昂贵集群的速度? 他们最先动手术的,是很多人容易忽视的一处数据陷阱:废话率。 大家评估大模型,往往只盯一个指标:每秒能生成多少个词。 但文档解析的真实速度,取决于一个简单的除法公式: 每秒处理的页数,等于每秒生成的词数,除以每一页消耗的词数。 很多模型跑分的时候字数吐得极快,一秒钟能飚出三千多个词。 但仔细一看输出,里面填满了大量冗长重复的排版修饰、冗余标签和空行,解析一页纸硬生生耗掉了三千多个词。 而在论文公布的数据里,Jina AI 解析同样一页纸,平均只用 1085 个词。 研究团队发现,输出的长短跟最终解析准确率几乎没有关联。 只要在后训练时把冗余格式剔除,生成同样的内容少用三分之二的词,处理一页文档所花的时间自然就缩短了三分之二。 压缩输出只是第一步,真正打破显存带宽墙的,是一套叫做投机采样的加速结构。 大模型写文章或者聊天,下一个词天马行空,模型猜不准。 但文档解析是高度确定的。 一张发票摆在眼前,发票号码后面跟着的一定是数字。 表格写好了表头,接下来必定是横线和单元格分隔符。 公式里写出了分子,后面紧接着大概率就是分母。 既然语境这么固定,为什么每次还要劳烦大模型把几十亿参数搬运一遍,只为了猜这一个毫无悬念的词? Jina AI 在 DeepSeek-OCR 的底座上,外挂了一个极轻的草稿头 FastMTP。 这个草稿头只有很小的数据量,在显存里用同一个微型计算块递归循环,一口气往前连续猜三个词。 在文档环境下,它猜第一个词的命中率高达 83%。 草稿头瞬间给出一串候选词,后面的 3.4B 混合专家主模型只激活 5.7 亿参数,一次性把这三个词全盘过审。 如果全猜对了,主模型只跑一次计算,就相当于平时跑了三次。 如果中间猜错了怎么办? 主模型当场退回,只保留猜对的部分,把猜错的词纠正过来,剩下的废弃不用。 整个过程在数学上叫做贪婪验证,输出结果跟主模型老老实实逐字敲出来的完全一模一样,没有任何精度损耗。 但在低端 L4 显卡上,解码速度直接提升了将近一倍。 速度上去了,怎么保证它不犯混? 用过多模态解析模型的人,大多吃过死循环的苦头。 模型一旦遇到看不懂的特殊排版或者生僻符号,经常陷入狂乱,在同一个单词或换行符上无限重复,把上下文彻底撑爆。 以前训练大模型,要么花钱请人工标注,要么让另一个更大的模型来当考官。 但这两种办法不仅贵,而且考官自己经常打马虎眼。 在文档解析这块阵地上,代码本身就是天然客观的裁判。 一个化学公式或者数学符号写得对不对,扔进代码编译器里看能不能正常渲染。 一个表格结构有没有崩,用自动化测试直接比对单元格的行列闭合。 他们用了一套基于可验证奖励的强化学习算法 GRPO。 有意思的是他们的打分逻辑。 以往的自动化检查常常是非黑即白,只要表格里错了一个单元格,整页直接判零分。 这种做法让模型完全摸不着头脑,不知道自己做对的那些部分到底该怎么保留。 Jina AI 给每个测试项设计了阶梯式给分: 内容还原了多少、公式语法闭合了多少、表格结构对齐了多少,都能拿到切实的局部奖励。 唯独出现一种情况会被彻底重扣:那就是死循环重复。 通过这种高密度的确定性代码测试,模型把严谨的语法格式硬生生练成了肌肉记忆。 在衡量文档解析难度的 OmniDocBench 测试集上,它的综合得分拿到了 91.14,稳稳排在第一梯队。 不过对整个行业来说,更有启发性的还是这套工程思路。 过去这两年,AI 领域几乎被庞大的算力军备竞赛裹挟。 很多团队以为要把复杂的多模态应用落地,就只能无休止地堆砌大参数模型,或者买单昂贵的高端显卡。 现实中那些真正要解决业务问题的企业,面对成千上万箱纸质档案和扫描文档,最在乎的往往没有那么玄乎。 一张纸转成结构化数据的电费和租金到底能不能付得起,才是能不能用起来的死线。 搞清底层硬件的真实阻力在哪里,把不必要的文字冗余砍掉,用极低代价的草稿头去换昂贵的访存次数。 把力气花在这些精密的工程咬合上,哪怕只用一张入门级的平民显卡,也能把高高在上的技术变成真正用得起的生产力。
引用 / CITATIONS
No citations exported.
同领域解读 / AI & LLMS
导出 / EXPORT
订阅 · SUBSCRIBE
每周一封独立、不受审查的科技与 AI 深度评论,周一发出。带出处,可核查。