PaDoc:基于版面锚定的文档解析并行解码 PaDoc: Layout-Grounded Parallel Decoding for Document Parsing
用预测版面分叉内容分支并行解码,端到端文档解析大幅提速
前置知识
端到端文档解析(文档 VLM)
用一个多模态大模型把页面图像直接转成结构化输出(Markdown/HTML/JSON/版面-内容记录),统一处理文字、表格、公式与版面。代表系统有 SmolDocling、olmOCR、Qianfan-OCR,它们都把整页序列化成一条 token 流做自回归生成。
PaDoc 属于这一范式,理解它才能理解其核心痛点——序列化带来的串行依赖。
自回归解码与关键路径
模型逐词预测下一个 token,每步依赖之前所有 token;生成一条长序列所需步数等于其长度。若存在多条可并行序列,整体关键路径是其中最长的那条。PaDoc 的核心就是把关键路径从「所有内容长度之和」压到「最长版面-内容支路」。
全文效率提升的数学基础,所有加速比都源于关键路径的缩短。
条件互信息
$I(A;B\mid C)$ 衡量在已知 $C$ 时 $A$ 与 $B$ 之间剩余的相互信息;若为零则给定 $C$ 后二者条件独立。论文用它严格表述「区域特定内容充分性」与「裁剪充分性」两条假设。
PaDoc 的并行合法性完全建立在这条信息论推导上,不看懂就无法理解为何能并行。
KV cache 与前缀缓存复用
自回归推理把每层的 Key/Value 缓存复用以避免重复计算。vLLM 的自动前缀缓存让 token 完全相同的公共前缀(如同一张图加版面前缀)只计算一次,后续请求直接复用驻留的 KV 块。
PaDoc 的内容分支能「免费」共享图像与版面前缀,靠的正是这套机制,是推理落地的关键。
FlashAttention 与变长注意力
FlashAttention 是分块、IO 感知的注意力核,标准版只支持因果掩码;varlen 变体可把多个不等长子序列拼成一批一次计算。PaDoc 的 tree-varlen 用它实现祖先注意力,从而无需物化 $S\times S$ 的稠密掩码。
方法新颖性的实现核心,决定了训练能否高效、能否扩展到多节点。
研究动机
现有端到端文档解析器(如 SmolDocling、olmOCR、Qianfan-OCR)把整页的版面坐标和区域内容序列化成一条自回归序列 $(b_1, y_1, b_2, y_2, \ldots, b_N, y_N)$,迫使因果解码器在生成下一个区域 $b_{k+1}$ 之前必须先完整吐出当前区域内容 $y_k$,即便两个区域在空间上完全分离、语义上相互独立。于是关键路径长度等于所有区域内容长度之和 $D_{\text{seq}} = \ell(B_{1:N}) + \sum_k \ell(Y_k)$,对含大量可独立识别区域(密文、多表格、多公式)的页面尤其低效。另一类基于裁剪的两阶段解析器(Dolphin、MinerU2.5-Pro、PaddleOCR-VL)虽天然具备区域级并行性,却需对每个区域裁剪并重复做视觉 prefill,既增加数据搬运开销,又切断页级上下文(阅读顺序、章节层级、表格-题注关系)。而投机解码类加速(Medusa、Eagle、SoT、APAR)创建的分支并不锚定在真实版面实例上,可能被最终输出丢弃。
本文的目标是本文目标是在保留完整页面视觉表示的前提下,从模型预测出的版面结构中推导出区域级并行性,把解码深度从「所有内容长度之和」压缩到「最长版面-内容路径」 $\max_k\{\ell(B_{\le k}) + \ell(Y_k)\}$。具体而言,作者希望设计一个能在单一 MLLM 内部实现、不引入额外检测头或识别头的训练与推理范式,使内容分支与版面流共享同一份图像前缀、仅在前缀长度上有所区别,从而既享受裁剪式并行的速度、又不丢失页级上下文。同时要求训练仍保持标准下一词预测目标、推理可直接复用现有 vLLM 的共享前缀缓存机制,避免重写底层推理框架。
与已有工作不同的是,本文的独特切入角度在于:它既没有像裁剪式方法那样物理地切分图像,也没有像文本并行解码那样构造抽象树结构,而是从信息论出发,用条件互信息 $I(Y_k; B_{k}, Y_{k}, Y_{<k} \mid X, B_{\le k}) = 0$。这意味着只要给定图像和到当前为止的版面前缀 $B_{\le k}$,区域内容 $Y_k$ 就不再依赖未来版面或兄弟内容——于是第 $k$ 步的下一版面 $B_{k+1}$ 与当前内容 $Y_k$ 可共享同一前缀 $(X, B_{\le k})$ 并行解码。关键创新是把「裁剪式条件 $x_k$」替换为「共享自回归前缀条件」,从而消除裁剪物料化开销,同时保留区域级并行。
核心方法
PaDoc 的整体思路是:把文档解析建模成一棵以页面图像为根、版面节点 $B_k$ 与内容节点 $Y_k$ 交替生长的有向无环图(DAG)。直觉上,版面流像主干一样自上而下逐个吐出区域边界框,每当一个区域的版面描述写完,就从共享的「图像+版面前缀」处分叉出一条独立的内容支流去识别该区域内容,主干则继续推进下一个版面。因为每条支流只依赖前缀而互不相依,它们可以真正并行推进,解码深度退化为主干到某条叶子支流的最长路径。技术路线上,PaDoc 用 Qwen3-VL-2B 作骨干,先在约 1100 万样本上做一轮 CPT 适配文档解析,再用聚类去重 + CLIP 多样性采样得到的约 50 万高质量子集做 SFT,全程使用同一套祖先注意力掩码和下一词目标。
核心创新点是「前缀条件化分解」与「祖先注意力」的结合。与传统裁剪式分解 $p_{\text{crop}} = p_B(b_{1:N}\mid x)\prod_k p_Y(y_k\mid x_k)$ 中每个区域用独立裁剪 $x_k$ 作条件不同,PaDoc 把条件换成共享前缀 $(x, b_{\le k})$,得到 $p_{\text{PaDoc}} = \prod_k p_B(b_k\mid x, b_{<k})\,\prod_k p_Y(y_k\mid x, b_{\le k})$。训练时用一个精心设计的祖先注意力掩码实现这种可见性:版面节点只能看到图像和更早的版面 $\text{Anc}(B_k)=\{X, B_{<k}\}$,内容节点能看到图像和到自身为止的版面 $\text{Anc}(Y_k)=\{X, B_{\le k}\}$,但绝不能看到未来版面或兄弟内容,从而防止信息泄漏。这与 APAR 的分叉自回归思想一脉相承,但首次把分叉锚定到视觉版面实例上。
方法步骤详情
步骤分五步。第一步,预填充整页图像 $X$,初始化版面流、缓存长度 $L$ 与祖先掩码 $M$。第二步,每步把活跃流的下一输入拼入缓存 $M \leftarrow [M\,\mathbb{I}_C]$、$L \leftarrow L+C$,用带掩码偏置的注意力 $\text{softmax}(QK^\top/\sqrt{d}+A_M)V$ 一次性为所有流生成输出。第三步,版面流完成区域 $B_k$ 边界时复制其可见性 $M_{\text{child}}\leftarrow M_{\text{layout}}$ 并插入分支初始化 token,分叉内容流 $Y_k$;二者互不可见。第四步,内容流以 $(X, B_{\le k})$ 与自身因果历史为条件独立生成内容至 EOS。第五步,流结束回收私有缓存。训练最小化负对数似然 $\mathcal{L}=-\sum_k\log p_B(b_k^\star\mid x,b_{<k}^\star)-\sum_k\log p_Y(y_k^\star\mid x,b_{\le k}^\star)$。
技术新颖性
技术新颖性体现在三处。其一,理论推导严谨:从条件互信息链式法则出发,证明区域充分性蕴含前缀条件形式,并指出 PaDoc 只需这个更弱的结论(反方向不成立),在数学上把「裁剪条件」无损地换成「共享前缀条件」。其二,训练实现巧妙:没有物化 $S\times S$ 的稠密掩码,而是把树结构分解为一组变长因果注意力子问题,用 FlashAttention-2 的 varlen 核实现 tree-varlen,只需 gather 已投影的 K/V 行、梯度由 gather 反向自动累积到共享前缀,既保留标准下一词目标又避开二次掩码存储。其三,推理落地务实:直接把每条内容流当作 vLLM 的独立请求,靠自动前缀缓存复用驻留的图像与版面 KV 块,无需草稿模型或额外解码头,与现有推理栈无缝兼容。
实验结果
实验从质量、效率两维评估。版面分析(Table 1)上,PaDoc 取 Overall IoU/F1 为 81.4/91.1,端到端组内精度最高(93.3),表格四项全领先(IoU 92.7、F1 97.0),并列最佳图像 F1、最佳整页 F1/召回。端到端解析(Table 2)上,Overall 94.24,超过 Qianfan-OCR 0.34 分,取得端到端组最佳 Text Edit(0.038)与 Formula CDM(95.59)。服务效率(Table 3)上,单卡 A800 在 5 个并发档(C16–C256)均为最快端到端解析器:相对同骨干 Sequential SFT 吞吐升 67.4%–118%、P95 延迟降 39.2%–54.9%,C64 达 1.722 页/秒/卡;2.1B 参数仍全面超越 1.0B HunyuanOCR-1.5。Table 11 中前向步数中位从 725.0 降到 297.5,配对加速比中位 1.453–1.937×。控制对比证明同骨干下 Overall F1 +1.460、精度 +3.729,端到端 Overall 仅微降 0.345。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| OmniDocBench 版面分析(端到端组,countable+acceptable) | Overall F1 (%) | 91.1 | MonkeyOCRv2-B-Parsing 87.7 / dots.ocr 89.7 | 端到端组内领先,并取得组内最高 Overall 精度 93.3 |
| OmniDocBench v1.6 端到端解析(端到端组) | Overall / Text Edit / Formula CDM | 94.24 / 0.038 / 95.59 | Qianfan-OCR 93.90 / 0.040 / 95.08 | Overall +0.34,端到端组最佳 Text Edit 与 Formula CDM |
| 单 A800 服务效率(相对同骨干 Sequential SFT) | 有效页吞吐 / P95 延迟 | +67.4%–118% / -39.2%–54.9% | Sequential SFT (2.1B) | C64 达 1.722 页/秒/卡;五档并发均为最快端到端解析器 |
| 前向解码步数(C64 配对集) | 步数中位数 | 297.5(关键路径) | 725.0(顺序化响应) | 中位减少 58.4%(IQR 47.7%–68.2%) |
| 训练后端消融(vs Dense SDPA) | 稳态步时加速比 | tree-varlen 1.053–1.254× | Dense SDPA / Flex Attention | 16K 下 1.163–1.185×,Flex 反而最慢 |
局限与改进
作者承认效率结论基于 vLLM 前缀缓存的请求级实现,墙钟开销包含请求准入、残余 prefill、调度与分支长度不均,因此正文给出的「关键路径比」是理想结构量而非墙钟保证(Appendix E.2 明确说明)。控制对比(Table 9/10)也揭示代价:同骨干下 PaDoc 的 Overall、图像、表格、整页召回普遍下降,呈现「更选择性而非更密集」的定位轮廓;端到端 Overall 微降 0.345 分,Formula CDM 从 96.919 掉到 95.590。我的补充观察:区域内容充分性假设对跨区域引用(表格题注指向图、章节编号依赖、阅读顺序跨区约束)未必成立,正文也坦言这类全局连贯性是裁剪式与并行式共同的张力;此外 11M 标注由 MinerU2.5-Pro/PaddleOCR-VL/MOCR 三模型共识生成,可能继承这些教师模型的偏差,长尾页面质量未单独报告。
独立分析的弱点
弱点一:区域独立性假设在强语义耦合页面(多列续接、跨页表格、图表互引)上可能失真,内容支流看不到兄弟内容会丢失阅读顺序与层级;改进方向是允许有限度地向后续支流注入前一区域的摘要 token,做「弱条件」扩展。弱点二:召回率下降显示分叉抑制了密集预测,可在 SFT 阶段对召回敏感类别(图像、整页)加权或引入召回导向采样。弱点三:效率收益依赖分支数量充足,对版面稀疏(仅 1–2 个区域)的页面并行空间小、调度开销占比上升;可设计「区域数自适应」的串-并切换(类似 ASPD)。弱点四:分支长度不均导致短支流空转浪费算力,可用动态批打包或投机填充对齐。弱点五:仅单卡评测,多卡张量并行下的 KV 复用与通信未验证。
未来方向
作者方向上,可扩展到更长文档级(多页)解析、把阅读顺序与章节层级显式纳入 DAG、与投机解码叠加。基于本成果可延伸:把前缀条件分解推广到其他「模板化分支」任务(表格逐单元格、公式逐项、代码 AST),因为它们同样具备「共享前缀+独立后缀」结构;探索更高 arity 的分叉(一个版面节点同时分叉多条内容支流);把 tree-varlen 思路下推到推理期的 fused 前向,进一步逼近理想关键路径;结合检索增强,让内容支流按需访问全局上下文以缓解独立性假设。此外作者自评的多节点训练效率(tree-varlen 在 16 节点 8K 下 1.254× 加速)提示大模型(7B+)训练该范式在工程上已基本成熟。
复现评估
复现性较好。代码开源于 https://github.com/Longin-Yu/Padoc,骨干为开源 Qwen3-VL-2B,数据来自多个开源数据集 + 公开学术/电子文档,OmniDocBench v1.6(1651 页)为公开评测集,评测协议 PageIoU(含坐标压缩精确计算与 1000×1000 栅格交叉验证)附录 B 给出完整定义。训练配方明确:CPT 1 epoch(11M)+ SFT(0.5M),全局批 256,余弦退火峰值 $5\times10^{-6}$,bf16+FSDP,128 张 A800,序列长 16384——算力门槛很高(千卡时级),个人或小团队难独立复现完整训练,但可在公开权重上做 SFT 或评测复现。推理用 vLLM 0.19.1 + FlashInfer,单 A800 80GB 即可,工程链路标准。附录 C 给出注意力后端消融、Table 8 多节点效率,细节充分。
论文图表
对比三种文档解析范式。(a) 顺序端到端把所有版面+内容 token 串在单次视觉编码之后;(b) 裁剪式两阶段暴露区域级并行但需裁剪与重复视觉 prefill;(c) PaDoc 从共享整页图像与版面前缀分叉内容分支,并给出逻辑祖先注意力掩码示意(训练用打包变长注意力实现、推理用共享前缀缓存复用)。
这是理解全文核心动机与方案定位的「地图」,一眼看清 PaDoc 介于纯顺序与裁剪式之间的折中:保留整页前缀、又把内容分支化。