MinerU-Diffusion这篇论文让我想到一个问题AI 读一份 PDF 的时候它到底是在看图还是在猜词论文PDF下载链接https://arxiv.org/pdf/2603.22458v1这个问题听起来有点怪。OCR 嘛不就是识别文字吗。你给它一张扫描件它把文字、表格、公式抠出来不就完事了吗。但你稍微想深一点就会发现这里面有个很微妙的差别如果一个模型看到一行字有点糊它输出了一句很通顺、很合理、很像原文的内容我们到底应该夸它聪明还是应该警惕它在补全这个区别在聊天机器人里可能不算特别致命。你问它一个开放问题它接着上下文写出一段合理回答本来就是它的工作。但在 OCR 里这事儿就有点危险了。因为 OCR 的目标不是写出一段合理的话而是把图上真的有的东西还原出来。哪怕原文不通顺哪怕表格里有奇怪缩写哪怕公式旁边有一串没人类语感的符号它也应该老老实实还原。它不能因为自己觉得这样更像人话就帮你把它改顺了。所以 MinerU-Diffusion 这篇论文有意思的地方在于它重新问了一遍这个问题文档 OCR 到底应不应该被当成从左到右的语言生成从左到右生成是习惯不一定是真理现在很多 VLM 文档 OCR 系统大体上都是一个熟悉的套路。前面有一个视觉编码器把页面图像变成视觉特征。后面接一个语言解码器把识别结果一个 token 一个 token地吐出来。这个设计很自然。因为大语言模型就是这么生成文本的。从左到右前面生成什么后面接着生成什么。写文章可以这么写聊天可以这么聊代码也可以这么补。但文档 OCR 真的一样吗你看一页论文的时候并不是从左上角第一个 token 开始在脑子里一个字一个字续写到页面结束。你其实是在看一个二维页面。标题在哪正文在哪表格边界在哪公式从哪里开始阅读顺序怎么走这些东西都不是纯语言序列给你的而是页面结构给你的。也就是说一页文档只是最终被序列化成了一串 token不代表它原本就是一个单向序列。这个差别很关键。自回归解码放在文档 OCR 里会带来三个问题。一个是慢长文档、复杂表格、公式这些东西本来输出就长你还要一个 token 一个 token 生成延迟自然跟着上来。一个是串前面如果错了后面可能就会顺着错下去。长序列里这种错误传播放大之后很难看。还有一个更隐蔽语言先验太强。模型太会写合理文本了所以当视觉信号弱、局部模糊、语义被破坏的时候它可能会优先输出一个语言上更顺的答案而不是视觉上更忠实的答案。但也不是说自回归 OCR 都不可靠。自回归模型已经把文档 OCR 推到了很高的水平MinerU2.5、PaddleOCR-VL 这些模型都很强。问题在于OCR 这个任务可能不应该默认套用开放式文本生成的那套因果顺序。尤其是你面对的是论文、报表、扫描件、表格、公式这种复杂文档时你真正想要的不是一个会续写的模型而是一个愿意盯着图像证据干活的模型。论文最漂亮的一刀是把 OCR 改写成反向还原MinerU-Diffusion这篇论文用了一个说法叫 inverse rendering。直译过来就是反向渲染。但如果只是这么翻译基本没啥感觉。我更愿意把它理解成从图像里把结构反向还原出来。正常的渲染是你有一份结构化内容比如文字、表格、公式、版式然后把它画成一张页面图像。OCR 要做的事情刚好反过来。它看到的是页面图像想恢复出背后的结构化 token 序列。听着很简单但这个表述把问题一下子拧过来了。如果 OCR 是语言生成那模型会自然地沿着语言顺序往后写。如果 OCR 是反向还原那模型就应该尽量利用整张图里的视觉证据去恢复每个位置上本来是什么。这里有个很重要的小点一维 token 序列是输出格式不是文档的原始形态。文档原本是二维的。段落、表格、公式、阅读顺序这些关系很大一部分来自空间布局。我们把它压成一串 token只是为了让模型和评测系统好处理不代表任务本身就该被理解成从左到右写作。我觉得这就是这篇论文最值得被认真看的地方。它不是单纯说我要把 自回归 换成 diffusion。它是在说哥们我们可能一开始就把任务说歪了。那 diffusion 怎么放进来如果你只听到这里可能会有一个疑问。就算 OCR 更像反向还原为什么就一定要用 diffusion这也是我觉得这篇论文没有乱套概念的地方。它没有直接把一个全局 diffusion 模型硬塞到长文档上。因为那样也会出问题。长文档 token 太多全局注意力成本会很高。更麻烦的是如果所有位置都一起全局去噪早期的错误可能会在长距离上传开位置对齐也容易漂。文档这个东西又很局部表格区域和正文区域、公式区域和标题区域并不总是需要强行全局耦合。所以 MinerU-Diffusion 做了一个折中。核心机制是块间有序块内并行。我觉得这八个字差不多就是这部分的核心。它把输出序列切成块。块和块之间还保留粗粒度的顺序关系所以不会完全失去结构锚点。每个块内部则用 diffusion 的方式并行去噪多个 token 可以一起更新不必像 自回归 那样一个接一个排队。这个设计挺聪明的。它没有假装文档完全不需要顺序也没有继续把所有东西都锁死在单 token 生成里。它承认文档有序但也承认文档局部结构可以并行恢复。这就是为什么我觉得它比单纯喊一句 diffusion OCR 要扎实。它不是为了追时髦把 diffusion 搬过来而是在问文档的结构到底要求什么样的解码方式顺着这个机制论文还加了两个辅助设计。一个是置信度调度大概意思是不是每一步都一股脑确认所有 token而是根据模型的置信度动态决定哪些 token 可以先定下来哪些还要继续去噪。你可以把它理解成模型不是闭着眼一口气填完整页而是一边填一边判断哪些位置已经比较确定。这个设计对应的是速度和稳定之间的取舍。阈值设得激进一点生成更快但低置信 token 可能更早被确认。阈值保守一点模型会多跑几轮稳定性更好但速度下降。论文里thr0.95是一个比较关键的平衡点Overall 约 93.37同时吞吐约 108.9 TPS。另一个是不确定性课程学习。这个名字听起来很学术但人话版本并不复杂。先让模型在更广、更稳定的数据上学会基本能力再把它容易不确定、边界更难的难样本挑出来做强化。先站稳再修边界。这两件事都不是主菜。主菜还是 block-wise diffusion。置信度调度和课程学习更像两个稳定器一个管推理时怎么确认 token一个管训练时怎么处理难样本。证据最有意思的地方不是分数而是那组语义打乱实验论文当然做了很多benchmark。在OmniDocBench v1.5上有GT Layout设置下MinerU-Diffusion 的Overall约 93.37接近 MinerU2.5 的 93.44 和 PaddleOCR-VL 的 93.91。论文也说在保持竞争性精度的同时解码最高可以到约3.2 倍加速。这些数字有用但坦率的讲这篇论文有意思的是 Semantic Shuffle。这个实验设计很直接。它把文档里的词按比例打乱再重新渲染成视觉上格式一致的新文档。这样一来语言层面的顺序和语义被破坏了但视觉呈现仍然可比。你想想看如果一个 OCR 模型真的主要靠看图它应该还能尽量读出图上的文字。可如果它很依赖语言合理性那语义一乱它就会明显掉下来。论文里的结果显示随着打乱程度增加自回归解码器性能会明显下降而 diffusion-style decoder 更稳。这个实验很妙。因为它不是在问模型会不会写一段更合理的话而是在问模型能不能在语义不合理的时候仍然尊重视觉证据。也就是回到文章开头那个问题它到底是在看图还是在猜词图注Semantic Shuffle 用来测试模型在语义被打乱时是否仍依赖视觉信号。当然这个实验也不能被过度解读。它不能证明 diffusion 在所有 OCR 场景里都更好也不能证明 自回归 模型就不值得用。它证明的是在语义结构被破坏的时候diffusion-style decoder 对语言先验的依赖更低更贴近视觉信号。这个边界要守住。另外速度和精度也要放在设置里看。论文里 Figure 1、Figure 4、Figure 5 和 Table 4 都在讲同一件事MinerU-Diffusion 可以通过置信度阈值调节并行度在效率和精度之间找平衡。论文提到一个比较抓人的结果是在thr0.95附近Overall 约 93.37同时达到约 108.9 TPS对比 MinerU2.5 的匹配精度设置大约有2.1 倍加速阈值更激进时最高加速接近3.2 倍但精度会相应下降。图注速度与精度取舍的关键结果。所以这篇论文不是在说我有一个模型所有指标都碾压了。它更像是在说我换了一种任务表述和解码方式在精度仍然有竞争力的情况下换来了更好的并行效率以及在语义扰动下更强的视觉忠实性。这个判断就比单纯刷榜有意思多了。比结果更值得关注的是它背后的思路我看这篇论文的时候反复想起一个很普通的经验。很多时候我们不是没有模型能力而是把问题问错了。你把一个任务说成聊天它就会按聊天的方式工作。你把一个任务说成写作它就会按写作的方式补全。你把 OCR 说成从左到右生成文本它当然会天然靠近语言模型那套工作方式。但文档 OCR 不是写作而更像验尸。虽然不好听但很准确。你面对的是一张已经存在的页面。你的工作不是发挥不是润色不是让它读起来更顺而是尊重现场把每个痕迹尽量还原出来。从这个角度看MinerU-Diffusion 最重要的贡献不是告诉我们 diffusion 一定比 自回归 高级。它提醒我们模型范式要服从任务而不是反过来。有些任务确实适合从左到右生成。写文章、对话、代码补全这些任务本来就有开放性语言先验是一种能力。但有些任务看起来像文本输出实际上被外部证据强约束。OCR 是这样某些结构化信息抽取、表格还原、版式解析可能也是这样。模型不应该太会发挥它应该更会服从证据。这也许是 diffusion language model 一个很现实的落点。不是一上来就要取代所有大语言模型不是直接杀进开放式写作而是在那些确定性更强、外部证据更强、并行还原更重要的任务里找到自己的位置。我觉得这个方向挺值得继续看。因为它背后真正的问题不是 diffusion 和 自回归 谁赢谁输。而是我们终于开始更认真地问不同任务到底应该被怎样表述。AI 读文档这件事看起来很小。但它把一个更大的问题露出来了。当我们让模型做一件事的时候我们到底是在让它创造还是在让它还原这两个动作最好别混在一起。混在一起之后你得到的东西可能很通顺很聪明很像真的。但它不一定忠实。而文档这件事很多时候忠实比聪明重要。感谢阅读。点个关注不迷路我们后续会持续跟进文档解析、OCR、多模态模型等前沿技术动态第一时间为你解读。
上海人工智能实验室扔出 MinerU-Diffusion:文档解析终于不想再靠猜了
MinerU-Diffusion这篇论文让我想到一个问题AI 读一份 PDF 的时候它到底是在看图还是在猜词论文PDF下载链接https://arxiv.org/pdf/2603.22458v1这个问题听起来有点怪。OCR 嘛不就是识别文字吗。你给它一张扫描件它把文字、表格、公式抠出来不就完事了吗。但你稍微想深一点就会发现这里面有个很微妙的差别如果一个模型看到一行字有点糊它输出了一句很通顺、很合理、很像原文的内容我们到底应该夸它聪明还是应该警惕它在补全这个区别在聊天机器人里可能不算特别致命。你问它一个开放问题它接着上下文写出一段合理回答本来就是它的工作。但在 OCR 里这事儿就有点危险了。因为 OCR 的目标不是写出一段合理的话而是把图上真的有的东西还原出来。哪怕原文不通顺哪怕表格里有奇怪缩写哪怕公式旁边有一串没人类语感的符号它也应该老老实实还原。它不能因为自己觉得这样更像人话就帮你把它改顺了。所以 MinerU-Diffusion 这篇论文有意思的地方在于它重新问了一遍这个问题文档 OCR 到底应不应该被当成从左到右的语言生成从左到右生成是习惯不一定是真理现在很多 VLM 文档 OCR 系统大体上都是一个熟悉的套路。前面有一个视觉编码器把页面图像变成视觉特征。后面接一个语言解码器把识别结果一个 token 一个 token地吐出来。这个设计很自然。因为大语言模型就是这么生成文本的。从左到右前面生成什么后面接着生成什么。写文章可以这么写聊天可以这么聊代码也可以这么补。但文档 OCR 真的一样吗你看一页论文的时候并不是从左上角第一个 token 开始在脑子里一个字一个字续写到页面结束。你其实是在看一个二维页面。标题在哪正文在哪表格边界在哪公式从哪里开始阅读顺序怎么走这些东西都不是纯语言序列给你的而是页面结构给你的。也就是说一页文档只是最终被序列化成了一串 token不代表它原本就是一个单向序列。这个差别很关键。自回归解码放在文档 OCR 里会带来三个问题。一个是慢长文档、复杂表格、公式这些东西本来输出就长你还要一个 token 一个 token 生成延迟自然跟着上来。一个是串前面如果错了后面可能就会顺着错下去。长序列里这种错误传播放大之后很难看。还有一个更隐蔽语言先验太强。模型太会写合理文本了所以当视觉信号弱、局部模糊、语义被破坏的时候它可能会优先输出一个语言上更顺的答案而不是视觉上更忠实的答案。但也不是说自回归 OCR 都不可靠。自回归模型已经把文档 OCR 推到了很高的水平MinerU2.5、PaddleOCR-VL 这些模型都很强。问题在于OCR 这个任务可能不应该默认套用开放式文本生成的那套因果顺序。尤其是你面对的是论文、报表、扫描件、表格、公式这种复杂文档时你真正想要的不是一个会续写的模型而是一个愿意盯着图像证据干活的模型。论文最漂亮的一刀是把 OCR 改写成反向还原MinerU-Diffusion这篇论文用了一个说法叫 inverse rendering。直译过来就是反向渲染。但如果只是这么翻译基本没啥感觉。我更愿意把它理解成从图像里把结构反向还原出来。正常的渲染是你有一份结构化内容比如文字、表格、公式、版式然后把它画成一张页面图像。OCR 要做的事情刚好反过来。它看到的是页面图像想恢复出背后的结构化 token 序列。听着很简单但这个表述把问题一下子拧过来了。如果 OCR 是语言生成那模型会自然地沿着语言顺序往后写。如果 OCR 是反向还原那模型就应该尽量利用整张图里的视觉证据去恢复每个位置上本来是什么。这里有个很重要的小点一维 token 序列是输出格式不是文档的原始形态。文档原本是二维的。段落、表格、公式、阅读顺序这些关系很大一部分来自空间布局。我们把它压成一串 token只是为了让模型和评测系统好处理不代表任务本身就该被理解成从左到右写作。我觉得这就是这篇论文最值得被认真看的地方。它不是单纯说我要把 自回归 换成 diffusion。它是在说哥们我们可能一开始就把任务说歪了。那 diffusion 怎么放进来如果你只听到这里可能会有一个疑问。就算 OCR 更像反向还原为什么就一定要用 diffusion这也是我觉得这篇论文没有乱套概念的地方。它没有直接把一个全局 diffusion 模型硬塞到长文档上。因为那样也会出问题。长文档 token 太多全局注意力成本会很高。更麻烦的是如果所有位置都一起全局去噪早期的错误可能会在长距离上传开位置对齐也容易漂。文档这个东西又很局部表格区域和正文区域、公式区域和标题区域并不总是需要强行全局耦合。所以 MinerU-Diffusion 做了一个折中。核心机制是块间有序块内并行。我觉得这八个字差不多就是这部分的核心。它把输出序列切成块。块和块之间还保留粗粒度的顺序关系所以不会完全失去结构锚点。每个块内部则用 diffusion 的方式并行去噪多个 token 可以一起更新不必像 自回归 那样一个接一个排队。这个设计挺聪明的。它没有假装文档完全不需要顺序也没有继续把所有东西都锁死在单 token 生成里。它承认文档有序但也承认文档局部结构可以并行恢复。这就是为什么我觉得它比单纯喊一句 diffusion OCR 要扎实。它不是为了追时髦把 diffusion 搬过来而是在问文档的结构到底要求什么样的解码方式顺着这个机制论文还加了两个辅助设计。一个是置信度调度大概意思是不是每一步都一股脑确认所有 token而是根据模型的置信度动态决定哪些 token 可以先定下来哪些还要继续去噪。你可以把它理解成模型不是闭着眼一口气填完整页而是一边填一边判断哪些位置已经比较确定。这个设计对应的是速度和稳定之间的取舍。阈值设得激进一点生成更快但低置信 token 可能更早被确认。阈值保守一点模型会多跑几轮稳定性更好但速度下降。论文里thr0.95是一个比较关键的平衡点Overall 约 93.37同时吞吐约 108.9 TPS。另一个是不确定性课程学习。这个名字听起来很学术但人话版本并不复杂。先让模型在更广、更稳定的数据上学会基本能力再把它容易不确定、边界更难的难样本挑出来做强化。先站稳再修边界。这两件事都不是主菜。主菜还是 block-wise diffusion。置信度调度和课程学习更像两个稳定器一个管推理时怎么确认 token一个管训练时怎么处理难样本。证据最有意思的地方不是分数而是那组语义打乱实验论文当然做了很多benchmark。在OmniDocBench v1.5上有GT Layout设置下MinerU-Diffusion 的Overall约 93.37接近 MinerU2.5 的 93.44 和 PaddleOCR-VL 的 93.91。论文也说在保持竞争性精度的同时解码最高可以到约3.2 倍加速。这些数字有用但坦率的讲这篇论文有意思的是 Semantic Shuffle。这个实验设计很直接。它把文档里的词按比例打乱再重新渲染成视觉上格式一致的新文档。这样一来语言层面的顺序和语义被破坏了但视觉呈现仍然可比。你想想看如果一个 OCR 模型真的主要靠看图它应该还能尽量读出图上的文字。可如果它很依赖语言合理性那语义一乱它就会明显掉下来。论文里的结果显示随着打乱程度增加自回归解码器性能会明显下降而 diffusion-style decoder 更稳。这个实验很妙。因为它不是在问模型会不会写一段更合理的话而是在问模型能不能在语义不合理的时候仍然尊重视觉证据。也就是回到文章开头那个问题它到底是在看图还是在猜词图注Semantic Shuffle 用来测试模型在语义被打乱时是否仍依赖视觉信号。当然这个实验也不能被过度解读。它不能证明 diffusion 在所有 OCR 场景里都更好也不能证明 自回归 模型就不值得用。它证明的是在语义结构被破坏的时候diffusion-style decoder 对语言先验的依赖更低更贴近视觉信号。这个边界要守住。另外速度和精度也要放在设置里看。论文里 Figure 1、Figure 4、Figure 5 和 Table 4 都在讲同一件事MinerU-Diffusion 可以通过置信度阈值调节并行度在效率和精度之间找平衡。论文提到一个比较抓人的结果是在thr0.95附近Overall 约 93.37同时达到约 108.9 TPS对比 MinerU2.5 的匹配精度设置大约有2.1 倍加速阈值更激进时最高加速接近3.2 倍但精度会相应下降。图注速度与精度取舍的关键结果。所以这篇论文不是在说我有一个模型所有指标都碾压了。它更像是在说我换了一种任务表述和解码方式在精度仍然有竞争力的情况下换来了更好的并行效率以及在语义扰动下更强的视觉忠实性。这个判断就比单纯刷榜有意思多了。比结果更值得关注的是它背后的思路我看这篇论文的时候反复想起一个很普通的经验。很多时候我们不是没有模型能力而是把问题问错了。你把一个任务说成聊天它就会按聊天的方式工作。你把一个任务说成写作它就会按写作的方式补全。你把 OCR 说成从左到右生成文本它当然会天然靠近语言模型那套工作方式。但文档 OCR 不是写作而更像验尸。虽然不好听但很准确。你面对的是一张已经存在的页面。你的工作不是发挥不是润色不是让它读起来更顺而是尊重现场把每个痕迹尽量还原出来。从这个角度看MinerU-Diffusion 最重要的贡献不是告诉我们 diffusion 一定比 自回归 高级。它提醒我们模型范式要服从任务而不是反过来。有些任务确实适合从左到右生成。写文章、对话、代码补全这些任务本来就有开放性语言先验是一种能力。但有些任务看起来像文本输出实际上被外部证据强约束。OCR 是这样某些结构化信息抽取、表格还原、版式解析可能也是这样。模型不应该太会发挥它应该更会服从证据。这也许是 diffusion language model 一个很现实的落点。不是一上来就要取代所有大语言模型不是直接杀进开放式写作而是在那些确定性更强、外部证据更强、并行还原更重要的任务里找到自己的位置。我觉得这个方向挺值得继续看。因为它背后真正的问题不是 diffusion 和 自回归 谁赢谁输。而是我们终于开始更认真地问不同任务到底应该被怎样表述。AI 读文档这件事看起来很小。但它把一个更大的问题露出来了。当我们让模型做一件事的时候我们到底是在让它创造还是在让它还原这两个动作最好别混在一起。混在一起之后你得到的东西可能很通顺很聪明很像真的。但它不一定忠实。而文档这件事很多时候忠实比聪明重要。感谢阅读。点个关注不迷路我们后续会持续跟进文档解析、OCR、多模态模型等前沿技术动态第一时间为你解读。