腾讯开源微信端到端文档解析模型 WeVisDoc 一张图片直接出 Markdown

腾讯微信视觉团队开源 2B / 4B 文档解析模型,一张页面图片直接输出 Markdown。它的优势集中在公式、表格和退化页面,训练方法则是先广覆盖,再针对剩余错误补数据或增加练习。

腾讯微信视觉团队开源了文档解析模型 WeVisDoc,有 2B 和 4B 两个版本。给它一张文档页面图片,它直接输出整页 Markdown,公式写成 LaTeX,表格写成 HTML。

WeVisDoc 的主要功能特点

  • 整页图片直接转 Markdown:输入一张文档页面图,模型一次输出完整页面,不需要先把标题、正文、表格和公式分别裁出来。
  • 保留复杂文档结构:正文转成普通 Markdown,公式转成 LaTeX,表格转成 HTML,并按页面内容恢复阅读顺序。
  • 单模型完成解析:版面理解、文字识别、公式识别和表格重建都由同一个视觉语言模型完成,不需要另外部署版面检测器和 OCR 引擎。
  • 提供 2B 与 4B 两个版本:2B 更适合资源有限或清晰页面较多的场景;4B 在拍照、翻拍等退化页面上更有优势。
  • 可以本地运行或部署成服务:项目公开了 Apache-2.0 权重与推理代码,既能用 Transformers 本地调用,也能通过 vLLM 提供接口。

端到端解析与 WeVisDoc 的定位

在构建知识库检索(RAG)、自动化报表分析和多模态工作流时,把排版复杂的 PDF 和扫描件转为大语言模型易读的 Markdown,是一个绕不开的基础环节。目前行业内主要有两条截然不同的工程路线:

一条是流水线系统(Pipeline-based),代表方案如 MinerU 和 PaddleOCR。这类系统把任务拆解为多个步骤:先用目标检测模型识别版面区域(区分标题、正文、图片、表格、公式),再把切下来的图块分发给不同的专用 OCR 引擎、表格重建工具和 LaTeX 公式识别模型,最后依靠规则或启发式算法拼装成最终的阅读顺序。这种模块化架构每一步都能用专门的模型,代价是链路长、要部署和维护好几个模型,前一步的版面切分一旦出错,后面的识别也会跟着错。

另一条是端到端模型(End-to-End)。端到端模型直接把整张文档图像输入给视觉语言模型(VLM),让模型通过自回归解码一次性输出整页的 Markdown、HTML 表格与 LaTeX 符号。这种方案没有中间拼装环节,部署只需要一个模型,识别对不对全看这个模型自己的能力。

端到端模型基准对比柱状图 在端到端专用模型类别中,WeVisDoc-4B 在 OmniDocBench v1.6 以及 PureDocBench 干净、算法退化、真实采集三个赛道上均取得领先(图:WeVisDoc 技术报告)

WeVisDoc 采用纯粹的端到端路线。模型直接选用 Qwen3-VL-2B-Instruct 与 Qwen3-VL-4B-Instruct 作为底座,没有额外引入任何外置检测器或特殊解码结构。

评测主要在两个基准上展开。OmniDocBench v1.6 包含 1,651 页自然文档,用来测试不同类型、版式和语言的页面;PureDocBench 则把 1,475 个源页面分别做成干净版、算法退化版和真实拍摄版,用同一份答案观察图片质量变化带来的影响。

两个基准均报告文字编辑距离 TextEdit(越低越好)、公式得分 FormulaCDM 和表格结构相似度 TableTEDS,并以此计算综合得分 Overall =(100×(1−TextEdit) + FormulaCDM + TableTEDS)÷ 3;阅读顺序 ROEdit 单独报告,不计入 Overall。PureDocBench 的三赛道均值则是三个赛道各自 Overall 的平均分。

在涵盖通用大模型、流水线系统与端到端模型的全景评测中,WeVisDoc-4B 在不同口径下的排名如下(Clean、Digital、Real 是 PureDocBench 的三个赛道;「全部模型」指论文表里通用大模型、流水线系统、端到端模型三组合并):

口径 4B 得分 端到端组排名 全部模型排名 排在前面的
OmniDocBench 95.38 1 / 21 3 / 38 PaddleOCR-VL-1.6、MinerU2.5-Pro(流水线)
PureDocBench 均值 75.54 1 / 21 1 / 47 无
Clean 79.81 1 / 21 1 / 47 无
Digital 77.74 1 / 21 1 / 47 无
Real 69.08 1 / 21 3 / 47 Gemini-3.1-Pro、Qwen3.5-122B-A10B(通用大模型)

两个基准给出的排序不同:在自然文档组成的 OmniDocBench 上,两套流水线系统排在 WeVisDoc-4B 前面;在 PureDocBench 中,WeVisDoc-4B 的三赛道均值、干净页和算法退化页都排第一,真实拍摄页排第三。选择参考哪个结果,取决于自己的文档更像清晰但版式多样的自然页面,还是打印、拍照和翻屏得到的退化页面。

按论文表 3 的细项排,PureDocBench 三个赛道上,WeVisDoc-4B 的纯文字识别和阅读顺序在端到端组里都不是第一;综合分第一是因为公式和表格两项全是第一。综合分 Overall 是文字、公式、表格三项等权平均,阅读顺序单独报告、不算在内。所以以文字为主的文档(合同、报告、书籍),应该看文字编辑距离那一项,不能只看综合分。

WeVisDoc-4B 在 PureDocBench 端到端组(21 个模型)里的细项排名:

细项 Clean Digital Real
综合分 Overall(越高越好) 第 1(79.81) 第 1(77.74) 第 1(69.08)
公式 FormulaCDM(越高越好) 第 1(71.90) 第 1(71.31) 第 1(63.14)
表格 TableTEDS(越高越好) 第 1(88.81) 第 1(85.99) 第 1(77.64)
文字编辑距离 TextEdit(越低越好) 并列第 3(0.213;dots.mocr 0.151 最好) 第 3(0.241;dots.mocr 0.198 最好) 第 4(0.336;FD-RL 0.298 最好)
阅读顺序 ROEdit(越低越好) 第 3(0.340;dots.mocr 0.273 最好) 第 3(0.361;dots.mocr 0.309 最好) 并列第 3(0.416;FD-RL 0.391 最好)

OmniDocBench 上情况不同:端到端组里它的文字编辑距离(0.036)、公式、阅读顺序都是第一,但表格 TableTEDS 92.95 排第 3,低于 1B 参数的 HunyuanOCR-1.5(93.67)和自家 2B(93.03)。

4B 的提升并不是全面碾压:它在 OmniDocBench 上只比此前最好的端到端模型高 0.64 分。2B 在多数场景已经很接近 4B,而 4B 的优势主要随着页面退化加重而扩大;电子版和干净页面可以先试 2B,拍照、翻拍较多时再优先考虑 4B。

两阶段训练机制:从广覆盖到按残差重配

技术报告把问题归到训练数据上:现有的训练语料偏向常见文档类型和干净的电子版页面,而单纯扩大数据覆盖面,并不能告诉你模型剩下的短板该怎么补。WeVisDoc 不改模型结构,而是把训练分成两个阶段:第一阶段构建宽泛的几何与语义覆盖,第二阶段基于错误诊断实施定向精修。

Stage I 数据构建全景流程 Stage I 数据构建涵盖来源平衡、多模型联合标注、可执行网页合成以及多路径外观退化模拟(图:WeVisDoc 技术报告)

Stage I:构建 4000 万条记录的广度支撑

第一阶段的核心任务是扩大模型在语义、排版结构和外观退化上的基础覆盖面,训练池包含约 4000 万条记录。此阶段同时更新视觉编码器(ViT)与语言模型(LLM)骨干网络。

训练数据来自四类渠道:开源数据集(文章、书籍、表单、票据、表格、公式的现成标注)、内部收集(补充生产环境文档和评测里少见的采集条件)、定向抓取网页和 PDF(教材、报纸、手写、多语言混排等少见类型)以及合成页面。同一页面的各种退化版本共用一个去重组,统计覆盖面时只算一次,不当成新内容。语言上覆盖简体中文、英文、繁体中文和多语言混排,但论文没有给出按语言拆开的分数。

训练粒度并不局限于整页。在抽样之前,大约 40% 的记录是整页,25% 是纯文字或混合内容的区域截图,25% 是单独的表格,10% 是单独的公式。不同粒度的分工很明确:整页用来学习阅读顺序和元素之间的关系;文字截图保证小字、密字的识别分辨率;单独的表格和公式截图则专门用来练结构。

面对来源各异的公开数据与自建数据,训练过程采取了三项关键机制:

按目标 token 计算预算:在自回归解析任务中,不同样本的监督信号差异巨大。一张密集排版的学术论文单页可能包含数千个 target token,而一张裁切后的独立公式图块只有几十个 token。如果按样本条数定配比,各类数据实际占的训练量就对不上:同样抽 100 条,长页面贡献的输出 token 远多于公式截图。所以团队把训练量按参与损失计算的输出 token 数来算,先定好每类数据该占多少 token,再按这类数据的平均输出长度换算成抽样概率——输出越短的数据要多抽几条,才能拿到同样的 token 份额。损失也按每个 token 平均,而不是每条样本各算一份再平均。

三模型交叉标注与分层复核:对于缺乏精确标注的真实页面,系统同时运行 MinerU2.5-Pro、PaddleOCR-VL-1.6 和 dots.mocr 生成候选结果。三者接近时采用一致结果;两个一致、一个分歧时触发图像验证;三者都不一致时,交给更强的多模态模型和人工复核,作为第二阶段的难例候选。

双编译可执行网页合成:为了补充现实中罕见的极端版式(如嵌套表格、跨栏公式推导),系统采用生成可执行网页程序的方案。一套程序同时经历两个编译流程:一边渲染出高分辨率的网页图片,另一边直接遍历同一个文档对象模型(DOM)树生成无歧义的 Markdown、HTML 表格与 LaTeX 源码。图片和答案出自同一份源码,答案是精确的,不依赖人工或模型标注。

外观退化样例对比 同一页英文手写数学笔记的原始版(左)与叠加老化泛黄纹理版(右),在保证文字可读的前提下拓展视觉特征空间(图:WeVisDoc 技术报告)

为了使模型不局限于标准的数字高清 PDF,合成出的清晰页面与收集到的真实页面会进一步输入退化流水线。流水线模拟两类效果:一类是纸张和传播过程,包括纸张纹理与老化、污渍、油墨褪色或洇开、打印复印扫描带来的网点和条纹、传输时的缩放和压缩;另一类是物理拍摄,包括透视变形、纸面弯曲和折痕、光照不均、翻拍屏幕产生的摩尔纹、运动或景深模糊。只有需要识别的内容全部仍然可见、可读,退化后的图片才沿用原来的标注进入训练;看不清的要么丢掉,要么只截取还看得清的部分重新配标注。

诊断残差:Stage II 怎么分配训练预算

经过第一阶段训练后,模型已经具备通用的页面解析能力,但在某些类型的页面上依然会成批出错。报告指出,残差(第一阶段训完后还剩下的错误)本身不足以说明缺数据:错误也可能来自标注本身不对、图片看不清、解码时停不下来,或者是模型能力所限、再补相似样本也没用。所以第二阶段要先分清原因,再决定是补数据还是多练。

WeVisDoc 的第二阶段构建了一个约 500 万条记录的精修池,并在此阶段冻结视觉编码器,仅对语言模型骨干进行微调。这一阶段的核心逻辑是测量第一阶段模型的剩余缺陷,并针对性倾斜计算资源。

聚类生成的视觉-结构特征簇样例 聚类划分出的彩色教材特征簇:包含分节边框、例题块、随文插图与练习区域,展现出高度一致的视觉与结构模式(图:WeVisDoc 技术报告)

整个诊断与重平衡过程分四步:

独立探针集残差测量:设立一个完全不参与训练、不参与难例挖掘、也不与最终基准集重合的独立「探针集」。使用第一阶段得到的检查点在探针集上运行。整页的编辑距离把表格和公式也算进去了,但一小块区域解析失败对整页分数的影响很小(例如拍照合同中周围文字都认对了,输出里的公式却没了,整页编辑距离依然看不出多大问题)。因此诊断时把文字、表格、公式分开算——文字用编辑距离,表格用 1−TEDS,公式用 1−CDM,以此把被整页分数盖住的局部错误找出来。

视觉-结构特征聚类:利用冻结的 SigLIP2 编码器提取页面的全局视觉表征,对视觉特征做降维后,再拼上元素构成、内容密度、语言、版式、采集条件、目标输出长度等结构信息一起聚类,将整个数据空间划分为固定数量的特征簇(如「手写笔记簇」「彩色教材簇」等)。对样本少的簇,误差估计会向全体平均值收缩(样本越少,越靠近平均值),避免被个别样本带偏;若探针集里没有样本,则只用全体平均值当先验,不当作实测出的短板。

高错误样本成因审计:各簇的优先级由「数据覆盖是否稀少」「整体残差」以及「文字/表格/公式里最突出的那一项残差」加权得到。这个排序只用来安排人工审查,不会自动往训练里加数据:要补充新数据,必须先审计确认错误模式、并确认现有数据确实不够;数据充足但模型仍然做错的簇,改为多练。错误率高的样本还会先排查另外三种原因:标注本身有漏内容、顺序错或格式坏的,先修标注;输出反复复读停不下来的,单独标成解码失败;因为裁切、模糊、遮挡或分辨率太低而看不清的,不进难例训练,只保留用来评估鲁棒性。难例还要经过人工和更强的多模态模型复核,确认模型在正确答案面前仍然错得明显,才算真难例。

带上下限的 token 预算重分配:确定各簇的残差程度后,按误差大小调整第二阶段各簇的训练 token 占比,错得多的簇分到更多。为了避免分配变化过于极端,每个簇的新占比都被限制在它自然占比的一定倍数范围内(上下限的倍数报告没有公布具体取值);同时回放第一阶段的高质量数据,减少模型忘掉已经学会的东西。

论文图 8:重新分配前后各类簇分到的训练 token 论文图 8:灰色虚线是重新分配前,绿色实线是分配后;三个面板分别是页面元素类型、版式与结构难度、外观与采集条件,每个面板平均值为 1.0(图:WeVisDoc 技术报告)

从重分配曲线来看,分配前后两条曲线的总量相同(本阶段预算不变),总的效果是训练量从占大头的常见类型挪给少见类型,整体被拉向均匀:页面元素方面,普通文字块原来约为平均值的 1.5 倍,图文混排约 1.3 倍,分配后都降到 1 左右;手写批注、跨元素嵌套、多语言文字原来只有约 0.6–0.8,分配后升到接近 1。版式方面,线性单栏原来约 1.5 倍、规则多栏约 1.3 倍,降到 1 左右;嵌套和跨行跨列结构、非线性阅读顺序、自由版式从约 0.7–0.8 升到接近 1。外观方面,标准打印扫描原来约 1.7 倍,降到 1 左右;模糊、透视和弯曲、光照不均略有上升。

针对薄弱点定向合成的数据样例 针对第一阶段公式解析残差定向生成的密集公式推导页(图:WeVisDoc 技术报告)

对于数据覆盖明显不足、而且审计确认确实是模型出错的簇(报告举的例子有中文数学文本、嵌套表格、跨区域的阅读顺序关系),数据管线利用可控制的网页生成程序定向扩充合成数据;对于已有覆盖充足但模型仍未充分掌握的簇,则提高该簇已有高质样本在第二阶段的曝光频率。

图解 · Stage II 的分流逻辑

先分清错在哪,再决定补数据还是多练

Stage I 模型 两路找错

A训练池里挖高错误样本

逐条排查原因,只有第 4 种算真难例

  1. 标注本身错了先修标注;修好后只当普通训练数据,不加量
  2. 图片看不清裁切、模糊、遮挡、分辨率太低:不进难例训练
  3. 复读停不下来标成解码失败,限制重复曝光
  4. 答案对、模型仍明显错经人工和更强的多模态模型复核 → 进入单独的难例流,占比单独设定

B独立探针集按簇测残差

探针集不参与训练、挖掘和最终评测;页面按视觉和结构聚成固定的簇

这类数据不够 补数据:检索真实页面,或用页面程序定向合成(公式、表格、试卷、报纸等),通过校验和去重才加入
数据够,仍然错 多练:提高这一簇已有数据在训练里的 token 占比

Stage II 训练:本阶段 token 预算固定

  • 按残差重新分配错得多的簇分到更多 token,但每簇只能在自然占比的 ϑmin~ϑmax 倍之间
  • 回放 Stage I 高质量数据减少忘掉已经学会的东西
  • 难例流来自 A 路第 4 种,占比单独控制

视觉编码器冻结,只训语言模型。上下限倍数、难例占比等系数报告未公布具体数值。

需要指出的是,Stage II 带来的整体提升是一套复合干预的结果。在实验评估中,Stage II 既包含了继续训练的步数累加,也包含了残差权重的重配、高质量旧数据的回放、真难例挖掘与定向新增数据。这组对比说明整套精修流程带来了提升,但不能把涨分单独归到「按残差分配」这一项上。

涨分落在哪里,以及 12 个修复案例

PureDocBench 的三个赛道用的是同一批页面,只是干净程度不同,所以能看出变化集中在哪里:无论是把模型加大,还是加上第二阶段,涨分都主要出现在退化页面上。下表是报告表 4 的全部数字(Overall 分,三次推理平均):

规模 阶段 OmniDocBench PDB Clean PDB Digital PDB Real PDB 三赛道均值
2B Stage I 93.50 78.90 74.24 63.23 72.12
2B Stage II 95.06 79.36 76.62 65.60 73.86
2B 涨幅 +1.56 +0.46 +2.38 +2.37 +1.74
4B Stage I 94.22 79.32 75.19 65.05 73.19
4B Stage II 95.38 79.81 77.74 69.08 75.54
4B 涨幅 +1.16 +0.49 +2.55 +4.03 +2.35

模型从 2B 扩展至 4B 时,在干净原生页(Clean)上提升 0.45 分,在算法模拟退化页(Digital)上提升 1.12 分,而在真实采集退化页(Real)上提升了 3.48 分。报告据此认为,外观变化越剧烈,模型容量加大带来的收益越多。从两者选型来看,2B 和 4B 在 OmniDocBench 上仅差 0.32 分,Clean 上也只差 0.45 分,主要差距在 Real 上的 3.48 分。项目主页建议可以从更小的 2B 开始,追求最好的成绩再用 4B。因此,如果业务以电子版、干净页面为主,2B 基本够用;如果拍照和翻拍的文档较多,建议选用 4B。

同时,从 Stage I 走向 Stage II,4B 模型在 Clean 上的涨幅仅有 0.49 分,但在 Digital 与 Real 赛道分别取得了 2.55 分与 4.03 分 的跃升。这和第二阶段瞄准少见类型与拍摄退化的设计意图一致;不过如上所说,这组对比分不清是哪一项措施起的作用。

项目主页和报告附录展示了 12 个前后对比案例,每个测试集 3 个。挑选方法是:按 Stage II 单页得分从高到低扫,留下 Stage I 得分低于 70、而且错误原因单一明确的页面;展示的输出取三次推理里得分居中的一次。所以它们展示的是修复成功的典型样子,报告明说不能用来估计这类错误有多常见。

表格漏读与边界修复:书里一页 9×9 数独(案例 1),Stage I 漏掉了整个表格,TableTEDS 得分仅 0.333;Stage II 成功将其重建为完整的 <table> 矩阵,得分升至 1.000。而在一张合并经营报表里(案例 8),Stage I 把表格下方的附注、审计说明和签名栏也继续包进了表格单元格,Stage II 则准确识别出表格的闭合边界,将下方的附注恢复为常规正文段落。

阅读顺序纠偏:一份活动手册里的接机安排表(案例 5),由三列并排的航班卡片(CA1501、MU5101、NH919...)组成。Stage I 沿着第一列竖着读完再读下一列,输出顺序变成 CA1501、KE897、BA169、UA857,时间线被打乱;Stage II 按行从左到右读,恢复成 CA1501、MU5101、NH919、KE897 的顺序。整页 Overall 从 49.00 升到 94.64,文字编辑距离从 0.510 降到 0.054。

公式恢复:在一份工厂检修与班组管理手册里(案例 7),停机风险公式在第一阶段被直接扁平化为纯文字 Downtime Risk = Fault Frequency × Recovery Time,公式评测 FormulaCDM 为 0;Stage II 把它写成 $$ 包裹的 LaTeX 独立公式块。在手机斜拍的中文《股权转让协议》(案例 11)里,Stage I 同时犯了两个错:把乙方执行事务合伙人「林嘉铭」认成「林露铭」,把第七条的违约金公式当普通文字输出;Stage II 两处都改对了,公式得分 FormulaCDM 从 0.024 升到 1.000。

幻觉与真实拍摄下的残留错误:在一张拍摄采集的报纸页面上(案例 10),Stage I 输出跑到了别的文档上,凭空写出与画面无关的中文上市公司现金管理公告和重复的数学推导,整页得分低至 31.43;Stage II 成功遏制了幻觉,将文本拉回至报纸原本的美联储利率决议新闻(Overall 跃升至 94.13)。

报告同时注明,真实拍摄的几个案例里,Stage II 恢复了整体结构,但仍残留数字和字符级的识别错误。例如临床表单案例(案例 12)里,Stage II 把死因链的层级「1a / 1b / 1c」认成了「la / lb / Ic」,把数字 1 看成了字母。结构恢复了,不等于每个字都认对了。

12 个案例 · 原页与两阶段输出对照

Stage I 错在哪,Stage II 改成了什么

选一个案例,先看原页上的红框,再对照下面两个阶段的输出。输出里的 … 是项目主页原本的省略。

案例 01 · OmniDocBench v1.6

表格漏读

Stage I 漏掉了 9×9 数独网格;Stage II 完整还原表格。

Overall 65.87 → 99.22TableTEDS 0.333 → 1.000

案例 01 原始页面,红框标出出错位置
原页,红框是出错位置(点图看大图)

Stage I 输出

Fig. 10.3 Solved sudoku puzzle.

## 10.4 Hybrid Optimization
Hybrid methods may be required to solve particularly difficult real-world optimization problems. Implementation of hybrid methods typically requires non-trivial scripting
…

Stage II 输出

<table><tr><td>5</td><td>3</td><td>4</td><td>6</td><td>7</td><td>8</td><td>9</td><td>1</td><td>2</td></tr>
…
<tr><td>3</td><td>4</td><td>5</td><td>2</td><td>8</td><td>6</td><td>1</td><td>7</td><td>9</td></tr></table>

Fig. 10.3 Solved sudoku puzzle.

### 10.4 Hybrid Optimization
…

案例 02 · OmniDocBench v1.6

图示层级漏读

Stage I 漏掉了图示中间的一层层级;Stage II 补回。

Overall 58.98 → 100.00TextEdit 0.410 → 0.000(越低越好)

案例 02 原始页面,红框标出出错位置
原页,红框是出错位置(点图看大图)

Stage I 输出

## 语气的概述

语气可以分为陈述语气、祈使语气和虚拟语气。虚拟语气又有七种基本结构。

## 一 陈述语气
陈述语气表示所说的话是陈述事实、提出想法。
…

Stage II 输出

## 语气的概述

语气可以分为陈述语气、祈使语气和虚拟语气。虚拟语气又有七种基本结构。

陈述语气
祈使语气
语气
动词原形
动词的过去式
had + 过去分词
虚拟语气
should + 动词原形
…
## 一 陈述语气
…

案例 03 · OmniDocBench v1.6

页边文字漏读

Stage I 漏掉了页面级的图标题、页脚和页码;Stage II 补回。

Overall 67.66 → 100.00TextEdit 0.323 → 0.000(越低越好)

案例 03 原始页面,红框标出出错位置
原页,红框是出错位置(点图看大图)

Stage I 输出

## 企业依赖复杂、多层和互通的架构
案例:半导体、计算机和电子产品以及通讯设备

## 戴尔
2019年收入:900亿美金
…
## 联想
2019年收入:510亿美金
…
资料来源:彭博供应链数据库;麦肯锡全球研究所分析

Stage II 输出

## 图E3 即使在同一个行业中,企业也可能有非常不同的供应链结构和显著的重叠

企业依赖复杂、多层和互通的架构
案例:半导体、计算机和电子产品以及通讯设备

戴尔
2019年收入:900亿美金
…
联想
2019年收入:510亿美金
…
资料来源:彭博供应链数据库;麦肯锡全球研究所分析

全球价值链中的风险、韧性和再平衡
9

案例 04 · PureDocBench · Clean

标题层级被压成表格

Stage I 把整页的标题层级压成一张表;Stage II 恢复标题,只把真正的表格写成表格。

Overall 3.46 → 98.30TextEdit 0.996 → 0.033(越低越好)

案例 04 原始页面,红框标出出错位置
原页,红框是出错位置(点图看大图)

Stage I 输出

<table><tr><td>PART A — MOTOR VEHICLE EMISSION AND FUEL STANDARDS</td></tr><tr><td>§7521. Emission standards for new motor vehicles or new motor vehicle engines</td></tr>
…
<tr><td>Table 1 — National Ambient Air Quality Standards (NAAQS)</td></tr><tr><td>Pollutant</td><td>Primary Standard(Level)</td><td>Secondary Standard(Level)</td><td>Averaging Time</td><td>Form</td></tr>
…
</table>

Stage II 输出

## PART A — MOTOR VEHICLE EMISSION AND FUEL STANDARDS

## §7521. Emission standards for new motor vehicles or new motor vehicle engines

(a) Authority of Administrator to prescribe by regulation.— Except as otherwise provided in subsection (b), the Administrator shall by regulation prescribe
…
## §7409. National Ambient Air Quality Standards
…
Table 1 — National Ambient Air Quality Standards (NAAQS)
<table><tr><td>Pollutant</td><td>Primary Standard (Level)</td><td>Secondary Standard (Level)</td><td>Averaging Time</td><td>Form</td></tr>
…

案例 05 · PureDocBench · Clean

阅读顺序

Stage I 按列竖着读三列接机卡片;Stage II 恢复按行从左到右的顺序。

Overall 49.00 → 94.64TextEdit 0.510 → 0.054(越低越好)

案例 05 原始页面,红框标出出错位置
原页,红框是出错位置(点图看大图)

Stage I 输出

…
## Airport Pickup Matrix 接机安排 (Apr 19-20)

CA1501 PEK → PVG
Apr 19 14:20 | 8 pax | Shuttle A1

KE897 ICN → PVG
Apr 19 17:10 | 8 pax | Shuttle B1

BA169 LHR → PVG
Apr 20 06:15 | 15 pax | Shuttle C1

UA857 SFO → PVG
Apr 20 07:45 | 14 pax | Shuttle C2
…

Stage II 输出

…
## Airport Pickup Matrix 接机安排 (Apr 19-20)

CA1501 PEK → PVG
Apr 19 14:20 | 8 pax | Shuttle A1

MU5101 CAN → PVG
Apr 19 15:45 | 6 pax | Shuttle A1

NH919 NRT → PVG
Apr 19 16:35 | 12 pax | Shuttle B1

KE897 ICN → PVG
Apr 19 17:10 | 8 pax | Shuttle B1
…

案例 06 · PureDocBench · Clean

测量表漏读

Stage I 漏掉了两张颈动脉血流测量表;Stage II 补回。

Overall 48.88 → 91.96TableTEDS 0.366 → 0.901

案例 06 原始页面,红框标出出错位置
原页,红框是出错位置(点图看大图)

Stage I 输出

…
左侧颈动脉 Left Carotid

斑块分析 Plaque Analysis (Left)
狭窄计算 Stenosis Calculation
<table><tr><td>编号</td><td>位置</td><td>大小mm</td><td>回声</td><td>表面</td><td>GSM</td><td>溃疡</td></tr>
…
</table>
…
右侧颈动脉 Right Carotid ★

斑块分析 Plaque An
<table><tr><td>编号</td><td>位置</td><td>大小mm</td><td>回声</td><td>表面</td><td>GSM</td><td>溃疡</td></tr>
…

Stage II 输出

…
## 左侧颈动脉 Left Carotid
<table><tr><th>血管节段</th><th>IMT mm</th><th>ID mm</th><th>PSV cm/s</th><th>EDV cm/s</th><th>RI</th></tr><tr><td>CCA近段</td><td>0.8</td><td>6.4</td><td>76.5</td><td>21.2</td><td>0.72</td></tr>
…
<tr><td>VA V3段</td><td>-</td><td>3.2</td><td>44.8</td><td>15.2</td><td>0.66</td></tr></table>

斑块分析 Plaque Analysis (Left)
…

案例 07 · PureDocBench · Digital Degraded

公式写成普通文字

Stage I 把独立公式当普通文字输出;Stage II 写成 LaTeX 公式块。

Overall 65.28 → 98.70FormulaCDM 0.000 → 1.000

案例 07 原始页面,红框标出出错位置
原页,红框是出错位置(点图看大图)

Stage I 输出

…
## 5.2 LOTO 与 Permit-to-Work

执行检修、换模、开盖、进入防护罩内作业前,必须进行 Lockout / Tagout。
…
Downtime Risk

Downtime Risk = Fault Frequency × Recovery Time

用于决定异常响应是否升级为 maintenance escalation 或生产会议通报项。

## 5.3 班组 KPI 与 Toolbox Meeting
…

Stage II 输出

…
### 5.2 LOTO 与 Permit-to-Work

执行检修、换模、开盖、进入防护罩内作业前,必须进行 Lockout / Tagout。
…
#### Downtime Risk

$$Downtime\ Risk = Fault\ Frequency \times Recovery\ Time$$

用于决定异常响应是否升级为 maintenance escalation 或生产会议通报项。

### 5.3 班组 KPI 与 Toolbox Meeting
…

案例 08 · PureDocBench · Digital Degraded

表格边界越界

Stage I 把表格一路延伸到下方的附注和签名栏;Stage II 在正确位置结束表格。

Overall 51.76 → 98.59TextEdit 0.862 → 0.027(越低越好)

案例 08 原始页面,红框标出出错位置
原页,红框是出错位置(点图看大图)

Stage I 输出

…
<tr><td>Diluted EPSNote 2</td><td>$3.28</td><td>$2.54</td><td>$1.25</td><td>+29.1%</td></tr>
…
<tr><td colspan="5">NOTE: This consolidated statement of operations reflects combined performance across all operating segments including:
…
<tr><td colspan="5">AUDITOR&#x27;S CERTIFICATION: This Consolidated Statement of Operations, including all notes and supplementary schedules, has been audited …</td></tr><tr><td>Chief Financial Officer</td><td>Controller</td><td></td><td>Chief Executive Officer</td><td></td></tr>
…

Stage II 输出

…
<tr><td>Diluted EPSNote 2</td><td>$3.28</td><td>$2.54</td><td>$1.25</td><td>+29.1%</td></tr>
…
</table>

NOTE: This consolidated statement of operations reflects combined performance across all operating segments including:
…
AUDITOR'S CERTIFICATION: This Consolidated Statement of Operations, including all notes and supplementary schedules, has been audited
…
Chief Financial Officer
…
Controller
…
Chief Executive Officer
…

案例 09 · PureDocBench · Digital Degraded

字段和值拆散

Stage I 把固件信息的字段名和值拆开;Stage II 重新一一配对。

Overall 57.25 → 92.47TextEdit 0.428 → 0.075(越低越好)

案例 09 原始页面,红框标出出错位置
原页,红框是出错位置(点图看大图)

Stage I 输出

Device Model 设备型号:
Current FW 当前固件:
Target FW 目标固件:
Build Date 构建日期:
Architecture 架构:
Image Size 镜像大小:

GW-IoT-4200 Edge Gateway
v4.1.8 (build 20250911)
v4.2.1 (build 20260401)
2026-04-01 08:30:00 UTC
ARMv8-A Cortex-A72
48.7 MB
…

Stage II 输出

Device Model 设备型号: GW-IoT-4200 Edge Gateway
Current FW 当前固件: v4.1.8 (build 20250911)
Target FW 目标固件: v4.2.1 (build 20260401)
Build Date 构建日期: 2026-04-01 08:30:00 UTC
Architecture 架构: ARMv8-A Cortex-A72
Image Size 镜像大小: 48.7 MB

## [NEW] 新增功能 / New Features
…

案例 10 · PureDocBench · Real Degraded

输出跑到别的文档上

Stage I 输出与画面无关的中文公告和重复的数学内容;Stage II 回到报纸本身的内容,仍有局部识别错误。

Overall 31.43 → 94.13TextEdit 0.681 → 0.057(越低越好)

案例 10 原始页面,红框标出出错位置
原页,红框是出错位置(点图看大图)

Stage I 输出

## THE FINANCIAL CHRONICLE
…
Vol. 02171, No. 69
…
S&P 500 3,738.92 +42.18 (+0.75%)
…
1. 2017年,公司与上海浦东发展银行股份有限公司签订了《关于使用部分闲置募集资金进行现金管理的协议》。
…
The Ground Truth image displays a single, solid horizontal line. According to Rule 2 (UNDERSCORE & LINE RULES), this is a stylistic or background line, not a placeholder underscore.
…
$\therefore m = \frac{3}{11}$
…

Stage II 输出

## THE FINANCIAL CHRONICLE
Vol CXIV, No 20
Sunday, March 17, 2025
New York London Hong Kong Tokyo Frankfurt
DJIA 42.186.57 • 287.41 (+0.65%)
S&P 500 3,738.92 +42.18 (+0.74%)
…
## Fed Holds Rates Steady, Signals Two Cuts Remain on Table for 2025
Powell cites "unusually elevated uncertainty" from tariff policies; dot plot unchanged from December projections
BY JAMES WHITFIELD AND SARAH CHEH | FEDERAL RESERVE CORRESPONDENTS
WASHINGTON — The Federal Reserve held its benchmark interest rate unchanged at 4.25%-4.50% on Wednesday, as widely expected
…

案例 11 · PureDocBench · Real Degraded

人名认错、公式写成文字

Stage I 把「林嘉铭」认成「林露铭」,并把违约金公式写成普通文字;Stage II 两处都改对。

Overall 64.61 → 97.70FormulaCDM 0.024 → 1.000

案例 11 原始页面,红框标出出错位置
原页,红框是出错位置(点图看大图)

Stage I 输出

…
第一条 各方基本信息
<table>
…
<tr><td>乙方(受让方)</td><td colspan="3">深圳前海汇智投资合伙企业(有限合伙)</td></tr><tr><td>统一社会信用代码</td><td>91440300MA5FP7TN8K</td><td>执行事务合伙人</td><td>林露铭</td></tr>
…
</table>
…
## 第七条 违约责任

7.1 任何一方违反本协议项下的义务、陈述或保证的,…

违约金 = 股权转让总对价 × 10% + 逾期付款金额 × 0.05% × 逾期天数
…

Stage II 输出

…
第一条 各方基本信息
<table>
…
<tr><td>乙方(受让方)</td><td colspan="3">深圳前海汇智投资合伙企业(有限合伙)</td></tr><tr><td>统一社会信用代码</td><td>91440300MA5FP7TN8K</td><td>执行事务合伙人</td><td>林嘉铭</td></tr>
…
</table>
…
## 第七条 违约责任

7.1 任何一方违反本协议项下的义务、陈述或保证的,…

$$
\text{违约金} = \text{股权转让总对价} \times 10 \% + \text{逾期付款金额} \times 0.05 \% \times \text{逾期天数}
$$
…

案例 12 · PureDocBench · Real Degraded

表单被过度套成表格

Stage I 把临床表单套成表格;Stage II 恢复成逐节的线性结构,仍有局部识别错误(如把「1a」认成「la」)。

Overall 67.08 → 96.66TextEdit 0.648 → 0.056(越低越好)

案例 12 原始页面,红框标出出错位置
原页,红框是出错位置(点图看大图)

Stage I 输出

…
二、直接死亡原因链 Cause of Death Chain
<table><tr><td>1a 直接原因</td><td>感染性休克、多器官功能衰竭(MOF) Septic shock with multiple organ failure</td></tr><tr><td></td><td>↑ 由于 due to</td></tr><tr><td>1b 前因</td><td>重症肺炎(多重耐药菌感染) Severe pneumonia …</td></tr>
…
</table>

三、讨论发言记录
<table><tr><td>汇报医师:李明 住院医师</td></tr>
…

Stage II 输出

…
## 二、直接死亡原因链 Cause of Death Chain

la 直接原因 感染性休克、多器官功能衰竭(MOF) …
↑ 由于 due to
lb 前因 重症肺炎(多重耐药菌感染) …
↑ 由于 due to
Ic 根因 社区获得性肺炎,免疫功能低下 …
II 促进因素 2型糖尿病(20年,HbA1c 9.8%) …
…
## 三、讨论发言记录
汇报医师:李明 住院医师
…
感染科会诊意见:王教授 主任医师
…
ICU主治:陈副主任医师
…

数据与图片来自 WeVisDoc 项目主页「Interactive Recovery Lab」和技术报告附录 B.1,展示的输出取自三次推理中得分居中的一次。

上手部署与落地使用建议

GitHub 代码仓库和 Hugging Face 模型卡都标注 Apache-2.0 许可,公开的是 2B 与 4B 两个模型权重和推理代码。训练数据和数据构建流水线没有开源;报告给出了配比公式的形式,但关键系数(来源平衡指数 ρ、残差权重 β、上下限倍数 ϑ、难例占比 λ 等)没有公布具体数值,别人拿不到复现训练所需的全部条件。

运行环境与启动方式

官方推荐使用 vLLM(版本需 ≥ 0.11.1) 启动推理服务,该方式支持多并发处理、张量并行(Tensor Parallel)加速以及 OpenAI 兼容的接口协议。需要 Python 3.10 以上。vLLM 服务和本地 Transformers 推理依赖的 PyTorch 版本可能冲突,官方建议两者分别用独立的虚拟环境;只负责发请求的客户端机器,装一个轻量的依赖文件就够了。

服务端启动命令示例:

# 激活环境后启动 2B 或 4B 服务
bash scripts/serve_vllm.sh Tencent/WeVisDoc-4B

如果有多张 GPU 且需要处理超长单页,可通过环境变量开启双卡并行并调大序列长度:

CUDA_VISIBLE_DEVICES=0,1 TENSOR_PARALLEL_SIZE=2 MAX_MODEL_LEN=65536 \
  bash scripts/serve_vllm.sh Tencent/WeVisDoc-4B --dtype bfloat16

客户端批量处理支持指定图像目录多线程并发调用:

# 批量处理指定目录下的所有页面图像,结果以 Markdown 格式逐页保存
python -m wevisdoc.client --image-dir ./doc_images --result-dir ./outputs --workers 4

如果仅需本地单卡简单调试,项目也提供了独立的 Transformers 推理脚本:

python -m wevisdoc.local --model Tencent/WeVisDoc-2B --image page.png --output result.md

接入工作流前要处理的四件事

  • PDF 先转图片:WeVisDoc 接收 PNG、JPEG、WebP,不直接读取 PDF。多页 PDF 要先逐页渲染,再把页面图片批量送入模型。
  • 图表内容另行处理:文字输出为 Markdown,公式使用 LaTeX,表格使用 HTML;纯插图和图表会被忽略。需要理解图中趋势或标注时,要再接一个图表分析步骤。
  • 为长页面预留输出空间:客户端默认最多生成 8192 个 token。密集论文、法律文件或大型表格可能被截断,可以调大 --max-tokens,显存不足时则降低图片尺寸或并发量。
  • 关键字段回看原图:手写、历史扫描件和严重破损页面还没有充分评测。合同金额、财务和医疗字段进入后续流程前,应保留页码并回到原图复核。

项目没有公布显卡、显存和速度数据。输出也不带文字坐标,多页之间不会自动续接段落或表格;需要原图高亮或跨页还原时,要在外部流程中补上这些能力。

来源
WeVisDoc: From Coverage to Capability for Robust End-to-End Document Parsing(项目主页)腾讯微信视觉团队(WeChat Vision Team)·查看主材料