跳转至

DARL: Efficient Document-to-Markup Generation via Look-Ahead Diffusion Trajectory Sampling

会议: ECCV2026
Paper: https://eccv.ecva.net/virtual/2026/poster/5755
PDF: https://media.eventhosts.cc/Conferences/ECCV2026/pdfs/12800.pdf
代码: https://github.com/SCUT-DLVCLab/DARL
领域: VLM效率 / 文档解析
关键词: 文档到标记生成、滑动扩散块、在线轨迹采样、前瞻奖励、偏好优化

一句话总结

DARL让文档VLM保留可验证的自回归前缀、并行修正短窗口内的候选token,再以在线采样和前瞻奖励训练更容易连续通过验证的轨迹,使dots.ocr-3B在OmniDocBench-1.5上达到2.31倍加速、总分87.69,但不意味着所有识别子项都优于原始AR模型。

研究背景与动机

把扫描页转成Markdown、LaTeX或HTML,不只是识别字符,还要恢复表格单元格边界、公式括号和阅读顺序。自回归模型能够根据已生成前缀决定下一个token,适合这些紧密依赖上下文的任务;代价是长文档需要大量串行前向计算。本文的dots.ocr基线在OmniDocBench-1.5上平均每页进行1091.5次前向计算、耗时25.85秒,输出长度因而成为重要的推理瓶颈。

直接并行预测整段文本虽然快,却容易使相邻结构符号相互矛盾。固定次数的扩散去噪还存在停止条件问题:迭代少了没有修好,迭代多了又浪费计算。LADE等方法通过候选验证减少串行步数,但简单的候选先验不一定适应密集公式和表格。更深一层的问题在训练端:推理时模型面对的是自己尚未修好的候选,若训练始终只看正确历史或静态噪声,就没有充分学习如何从真实预测错误中恢复。

DARL因此把加速对象从“单个token的预测”转向“能被连续接受的候选轨迹”:短窗口提供并行空间,验证决定哪些位置可以真正提交,在线采样让训练见到当前模型会犯的错误,奖励则同时评价当前连续正确性与后续可预测性。核心idea:保留AR式验证作为提交边界,让扩散负责提出和修正候选,再用与连续接受机制一致的即时及前瞻奖励学习更高效的轨迹。

方法详解

整体框架

输入是文档图像及其解析任务,输出是结构化标记文本;主实验从dots.ocr-3B初始化。推理时使用滑动扩散块(SDB),把已确认前缀与未确认窗口分开处理。训练时,在线蒙特卡洛轨迹生成(OMTG)产生候选并提供重建监督,扩散轨迹偏好优化(DTPO)再根据当前与前瞻奖励调整这些候选的概率。

下面的图按“解码机制、与其匹配的采样、轨迹优化”的顺序展示依赖关系。OMTG和DTPO只在训练环路中使用,部署时不需要目标文本或奖励计算;训练更新后的模型继续执行SDB解码。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
    Input["文档图像与稳定前缀"] --> SDB["滑动扩散块 SDB<br/>并行修正与连续验证"]
    SDB -->|推理时提交并滑动| Output["结构化标记文本"]
    SDB -->|训练时采样候选| OMTG["在线轨迹生成 OMTG<br/>当前模型噪声与重建监督"]
    Target["训练目标文本"] --> OMTG
    OMTG --> DTPO["轨迹偏好优化 DTPO<br/>即时奖励与前瞻奖励"]
    DTPO -->|联合更新模型| SDB

关键设计

1. 滑动扩散块 SDB:并行猜测,但只提交连续通过验证的部分

模型输入由稳定前缀和长度为\(w\)的推测窗口构成,主配置使用\(w=16\)。窗口内既有尚未确认的候选token,也有作为初始化占位符的<INIT>。一次前向计算同时完成两件事:在稳定前缀后产生AR式的下一token预测,并对后面的候选与占位位置进行并行修正。因此,这里的“扩散”指离散token轨迹的迭代修正,不是对文档图像添加连续高斯噪声,也不是一口气承诺整个窗口都正确。

原文图3通过本轮结果与上一轮候选轨迹的一致性,从左向右标出可接受的连续区段;遇到首个不一致位置就停止接受。已通过的部分并入稳定前缀,未确认位置继续修正,窗口向后滑动并补入初始化token。这使去噪进度由实际验证结果决定,而不是为每个窗口强制执行相同次数的去噪。后面的token即使单独看起来正确,只要前面有断点,就不能跳过断点直接提交,因为其条件上下文尚不可靠。

这个机制的保证边界必须说清楚:作者宣称验证保持AR分布,但“与相同模型的AR行为一致”不等于“符合真实文档”或“标记语法永远正确”,更不等于与微调前的dots.ocr输出一致。缓存正文也没有完整展开随机采样下的接受概率、注意力掩码和缓存实现,因此不能据现有文字补写严格的分布等价证明。

2. 在线轨迹生成 OMTG:让训练输入包含当前模型自己的错误

训练时在目标序列的某个偏移处取一个窗口,随机把它拆为候选段和初始化段,长度分别为\(l_p\)\(l_n\),满足\(l_p+l_n=w\);原文给出的候选段长度范围为\(0\)\(w-1\)。先停止采样过程的梯度,根据稳定上下文用带温度的多项式采样生成\(K=4\)条候选轨迹,再分别拼接\(l_n\)<INIT>。温度采样用于探索不同候选,缓存正文未报告具体温度值。

这些输入随后被送回模型,学习恢复对应的真实token。与只训练被遮盖位置的常见去噪目标不同,DAR监督从序列起点一直覆盖到当前窗口末端:不仅要修好推测段,也要保留基本AR建模能力。候选由正在更新的模型动态产生,所以错误分布会随训练变化,不会永久停留在预先构造的静态噪声上。这里缓解的是推测窗口内的训练与推理偏移;稳定前缀仍来自目标序列,不能称为已经消除了所有长程暴露偏差。

3. 轨迹偏好优化 DTPO:奖励能马上接受、也有利于后续接受的轨迹

交叉熵逐位置评价预测,但推理解码的收益取决于“从左边开始连续正确了多少”。因此,DARL采用最长公共前缀(LCP)长度而非仅看全段相似度。即时奖励\(r_1\)是候选与对应目标段的LCP占比;前瞻奖励\(r_2\)则先把该候选与新的初始化段一起送入模型,预测接下来的\(l_n\)个token,再计算这些未来预测的LCP占比:

\[ r_1(\hat{h})=\frac{|\operatorname{LCP}(\hat{h},y_{\mathrm{target}})|}{|y_{\mathrm{target}}|},\qquad r_2(\hat{h})=\frac{|\operatorname{LCP}(\hat{y}_{\mathrm{future}},y_{\mathrm{gt\_future}})|}{l_n},\qquad R=r_1+r_2. \]

两项奖励的含义不同:当前候选连续正确,并不能说明模型以它为上下文时已经容易生成后续内容;前瞻项用一次额外预测直接检验这一点。它并没有运行完整文档的语法检查,也不是搜索到序列末尾的长期规划,而是一个局部未来窗口的代理指标。选择LCP的关键理由同样不是它更全面,而是它与“遇到首个错误就停止提交”的解码规则一致。

同组候选的总奖励经过均值和标准差归一化形成优势:

\[ A_i=\frac{R_i-\mu_R}{\sigma_R+\epsilon}. \]

高于组内平均水平的轨迹获得正向更新,低于平均水平的轨迹被降低概率。论文称其采用GRPO思路,不另设价值网络;图5还说明以DAR监督作为持续锚点,不需要独立参考模型。缓存式(7)呈现的是优势加权的token对数概率目标,不能据“GRPO”名称自行添加正文未给出的PPO裁剪项或KL项。

一个完整示例

以下只用于解释流程,不是论文报告的实验样本。假设文档中的一个公式正在输出下标与闭合括号,SDB窗口取论文主配置\(w=16\);某次训练把它拆成\(l_p=8\)\(l_n=8\),并采样\(K=4\)条候选。其中一条候选前6个token与对应目标一致,第7个出现括号错误,则其即时奖励为\(6/8=0.75\),即使第8个token碰巧正确也不增加LCP。

再用这条候选作为推测上下文,预测接下来的8个token;若未来段前4个连续正确,前瞻奖励就是\(4/8=0.5\),总奖励为\(1.25\)。它是否获得正优势还要与其余3条候选比较。这个例子说明DTPO评价的是轨迹对当前及未来连续正确性的贡献,而不是把奖励直接当作推理时的接受概率。

部署时没有真实目标可供算LCP,只有SDB本身的模型一致性验证。这个区别很重要:奖励负责把候选分布训练得更好,验证才负责在实际解码中决定哪些token可以提交。

损失函数 / 训练策略

总目标把DAR重建监督和DTPO偏好优化联合起来,权重分别为1和0.1:

\[ \mathcal{L}_{\mathrm{Total}}=\lambda_1\mathcal{L}_{\mathrm{DAR}}+\lambda_2\mathcal{L}_{\mathrm{DTPO}},\qquad \lambda_1=1,\quad\lambda_2=0.1. \]

训练集包含49K份文档,覆盖杂志、报纸、手写材料、试卷、教材、幻灯片、金融研报与扫描旧书。先用PaddleOCR-VL生成初始标注,再去除图像相关的非文本token,并人工纠正布局和识别错误。这个数据整理步骤本身可能带来准确率提升,所以实验中的同数据微调AR对照值得单独看。

主模型用8张NVIDIA A800训练2个epoch,每设备batch size为1,约耗时5天。优化器为AdamW,峰值学习率\(2\times10^{-5}\),预热500步,weight decay为0.01,评测使用Flash-Attention 2。MSN和EAGLE-3被适配到相同dots.ocr骨干并用整理后的数据训练;Jacobi和LADE使用官方免训练解码实现。

缓存中部分公式的运算符与上下标因PDF抽取而破损。上面的奖励、优势和总目标按邻近文字明确支持的含义整理;对DAR交叉熵的精确索引、DTPO完整实现及未披露的采样细节不做补造,复现应以原PDF和代码为准。代码地址来自论文正文,本笔记未联网验证仓库内容。

实验关键数据

主实验

下表选自原文表1,均以dots.ocr-3B为骨干。耗时单位为秒/文档,迭代数为平均前向次数;Overall、Table和TableS越高越好,Text是编辑距离、越低越好。星号表示在作者整理的数据上进一步微调的AR基线,所有Speedup均相对原始AR行。

OmniDocBench-1.5配置 Speedup 耗时 迭代数 Overall Text Table TableS
dots.ocr AR 1.00× 25.85 1091.5 87.57 0.065 83.76 87.39
MSN 2.07× 12.49 527.2 87.23 0.093 85.81 88.76
EAGLE-3 1.74× 14.88 625.0 87.38 0.084 84.40 88.21
dots.ocr AR* 1.04× 24.86 1033.3 87.15 0.095 83.35 85.69
DARL 2.31× 11.19 485.6 87.69 0.101 87.73 89.41

DARL比原始AR总分高0.12分,Table提高3.97分,但Text从0.065变成0.101,实际上更差;公式CDM也由85.44微降到85.43。与同数据AR*相比,总分高0.54分,但这仍不能把提升全部归因于某一个奖励。论文摘要的“保持或超过准确率”应理解为总体结果,而不是每个元素类别无损。

下表选自原文表2,olmOCR-Bench用细粒度单元测试评估文档重建。保留原文Overall中的“±”数值,但缓存正文未解释其统计口径,因此不擅自称为标准差或某一置信水平。

olmOCR-Bench配置 Speedup 耗时 迭代数 Overall Old Scans Headers & Footers Long Tiny Text
dots.ocr AR 1.00× 28.65 1216.9 78.9 ± 1.0 41.6 85.9 79.2
MSN 1.98× 14.46 614.1 77.9 ± 1.1 53.8 90.4 70.6
dots.ocr AR* 1.08× 26.52 1122.3 79.9 ± 1.0 57.0 97.2 75.1
DARL 2.27× 12.61 519.3 81.7 ± 1.0 62.5 89.2 74.7

总分相对原始AR提高2.8分,相对AR提高1.8分。旧扫描件的提升部分来自数据整理,这从AR的57.0已经可见;DARL进一步达到62.5。不过页眉页脚89.2低于MSN的90.4和AR*的97.2,长篇微小文本74.7也低于原始AR的79.2,不能概括成所有复杂版式都领先。

消融实验

下表前三个SDB变体及AR行来自原文表3,最后一行来自表4的奖励替换实验;ED行是独立对照,不是接在前四行之后的累计加模块步骤。

OmniDocBench-1.5配置 Speedup 耗时 迭代数 Overall
AR,无SDB、无奖励 1.00× 25.85 1091.5 87.57
SDB,无即时/前瞻奖励 1.98× 13.03 547.3 87.21
SDB + 即时奖励 2.14× 12.09 519.7 87.53
SDB + 即时奖励 + 前瞻奖励,LCP 2.31× 11.19 485.6 87.69
DARL,以ED替代LCP 2.13× 12.14 522.4 87.85

关键发现

  • SDB先带来大部分加速,但总分下降0.36分;加即时奖励恢复0.32分,再加前瞻奖励提高0.16分,并把耗时从12.09降至11.19秒。前瞻项改善了速度与总分,但不能说它带来的准确率增量大于即时项。
  • ED奖励的87.85高于LCP的87.69,LCP胜在2.31倍而不是2.13倍加速。这是“奖励与接受机制匹配”的证据,而不是LCP在所有评价维度更好。
  • 窗口大小实验中,\(w=8,16,24,32\)的Overall依次为87.53、87.69、82.91、82.74。大窗口明显损害准确率;图6的时间标注与主表存在口径或数值差异,因此不把图中耗时混入主表。
  • 扩展到InternVL3.5的2B、8B、14B时,加速分别为2.20、2.52、2.78倍,但对应Overall分别从80.76、86.81、92.67降至80.19、86.28、92.50。14B的2.78倍是扩展实验结果,不应与主模型的2.31倍混为一谈。

亮点与洞察

  • 奖励的评价单位贴近系统实际收益。一个错误之后再正确很多token可能改善编辑距离,却不增加这一步可提交的连续长度,LCP恰好表达这种差别。
  • 前瞻项把“候选看起来正确”推进到“候选作为上下文是否有用”。这种训练思路可以尝试迁移到代码补全或GUI到HTML生成,但本文并没有验证这些迁移任务。
  • 在线噪声与监督锚点形成互补。前者让模型练习修正当前策略的真实错误,后者防止轨迹奖励成为唯一训练信号,从而保留文档识别与AR建模基础。

局限与展望

  • 作者明确指出,图像描述等开放式任务尚未验证。多个等价输出都合理时,严格前缀匹配会把有效候选判为低奖励;结构等价或语义等价奖励值得研究,但还要维持与接受机制的关联。
  • 验证最多覆盖14B模型,不能据此确认70B以上的收益。窗口大小、候选数量和去噪能力可能随模型规模变化,现有规模趋势还不足以建立普适缩放规律。
  • 本笔记的判断:微调数据与解码训练共同改变了模型,需严格区分推理加速和识别能力改进。当前组件消融没有单独给出“静态轨迹替代OMTG”的对照,无法量化在线采样本身的独立贡献。
  • 本笔记的判断:表格结构收益与文本子项退化并存,不能用“绝对语法正确”取代错误分析。主文没有细分括号错误、跨窗口表格错位等失败率,也未充分报告不同部署硬件、批大小及采样随机性下的加速变化。
  • 复现仍有信息边界:缓存抽取的公式存在破损,具体采样温度、零长度候选段处理和完整验证实现需回到源码确认。作者提出树结构推测验证作为后续方向,但本笔记不把它算作已实现模块。

相关工作与启发

  • 对比LADE / Jacobi解码:它们通过并行迭代与候选验证减少串行依赖;DARL进一步训练候选轨迹,并用当前模型在线采样和前瞻奖励改善其可接受性,代价是新增训练成本。
  • 对比MSN / EAGLE-3:MSN通过噪声训练支持并行推理,EAGLE-3属于推测加速路线。本文在同一文档骨干上适配二者,主要区别是把窗口轨迹的当前与未来连续正确性直接纳入训练,而非只比较候选产生速度。
  • 对比DiffusionVL / SDAR-VL:它们探索AR模型与扩散式视觉语言生成的结合;DARL强调滑动验证来决定可提交区域,并为这种运行方式定制训练。其优势应以文档解析评测为限,不应扩展成对所有扩散VLM的全面胜出。
  • 对比GRPO式偏好优化:本文并非对回答风格或推理结果打分,而是给解码轨迹评分。可复用的启发是先识别推理引擎真正节省计算的条件,再设计训练奖励去改善那个条件。

评分

  • 新颖性: 4/5。将滑动验证、在线轨迹和局部前瞻奖励组合用于结构化文档加速,有明确系统针对性,但各基础机制已有相关路线。
  • 实验充分度: 4/5。两个基准、同数据AR对照、组件与奖励消融、跨骨干和规模实验较完整,仍缺OMTG独立对照及更丰富部署条件。
  • 写作质量: 3/5。框架与表格较清楚,但“绝对正确”和部分子项领先的文字强于数据,公式抽取缺损也限制当前可读性。
  • 价值: 4/5。主配置超过2倍的实测加速有工程意义,前提是能承担训练成本,并接受部分文本识别子项的退化。