网易首页 > 网易号 > 正文 申请入驻

MinerU 再次改变 OCR,5 倍提升

0
分享至

关于 OCR 这个话题,我之前写过不少:

今天这篇要聊的东西可能是 OCR 领域近年来最大的范式转换,MinerU 团队用扩散模型重新定义了文档 OCR 的解码方式

MinerU:OCR 领域的扛把子

先说说 MinerU 这个项目在 OCR 圈子的地位

MinerU 由上海人工智能实验室的 OpenDataLab 团队开发,最初诞生于 InternLM 大模型的预训练数据处理过程中

做过 RAG 的朋友应该都知道,文档解析是 RAG 流水线上最关键的一环——你的知识库质量上限,就取决于你的文档解析能力

而 MinerU 几乎是开源文档解析工具的事实标准:

  • 全格式覆盖:支持 PDF、图片、DOCX 输入,输出 Markdown 和 JSON

  • 109 种语言的 OCR 支持

  • 全平台兼容:Windows、Linux、Mac,CPU/GPU/NPU/MPS 都能跑

  • 功能全面:自动去除页眉页脚页码、保留文档结构、提取表格公式、处理复杂多栏布局

刚刚,MinerU 发布了3.0.0 大版本更新——新增了原生 DOCX 解析、pipeline 后端在 OmniDocBench v1.5 上得分达到 86.2,上线了多 GPU 部署路由

更关键的是,MinerU 的 VLM 版本 MinerU2.5 在 OmniDocBench 等权威 Benchmark 上一直是各路 OCR 模型的对标基准。

新范式:用 Diffusion 重新思考 OCR

好了,铺垫完背景,来说今天的主角——MinerU-Diffusion

这是 MinerU 团队在 3 月 24 日放出的全新框架,论文标题非常到位:

Rethinking Document OCR as Inverse Rendering via Diffusion Decoding(将文档 OCR 重新定义为通过扩散解码的逆渲染问题)

一句话总结:把传统的自回归(从左到右一个字一个字吐)解码,换成了并行的扩散去噪解码

这个思路非常有意思

为什么自回归解码不适合 OCR?

现在主流的 OCR 方案,本质上都是一个路子:视觉编码器把图片变成特征,然后语言模型一个 token 一个 token 地从左到右生成文字

这个架构有三个致命问题:

1. 速度瓶颈

自回归解码是串行的——生成第 100 个 token 必须等前 99 个都完成。

文档越长,越慢,延迟线性增长。

2. 错误累积

前面错了一个,后面大概率跟着错。

就像多米诺骨牌,一倒一片。

对于长文档、复杂表格和公式这种动辄几千 token 的场景,这个问题尤为致命。

3. 依赖语言先验而非视觉证据

这是论文中最犀利的观察

自回归模型在解码时会不自觉地依赖"语义补全"——它更多是靠上下文猜接下来的字是什么,而非认真看图片上写的是什么

论文专门设计了一个Semantic Shuffle测试来证明这个问题:把文档中的单词打乱顺序,重新排版成图片,让模型去识别。

结果自回归模型的准确率随着打乱程度直线下跌,而扩散模型基本纹丝不动。

下图就是 Semantic Shuffle 测试的结果,可以清楚看到 AR(自回归)和 Diffusion(扩散)两种解码方式面对语义打乱时的表现差异:

这说明什么?自回归模型做 OCR 时有很大程度上是在"理解"文本然后"猜"出来的。而 OCR 的本质应该是忠实地"看"图片上写了什么,跟文字有没有语义无关。

MinerU-Diffusion 如何解题?

MinerU-Diffusion 的核心思想是:把 OCR 看作"逆渲染"

什么意思?文档渲染是:结构化文本 → 2D 图片

OCR 就是反过来:2D 图片 → 结构化文本

既然渲染过程不需要从左到右逐字生成,OCR 解码凭什么必须从左到右?

下图展示了自回归解码和扩散解码两种方式的对比:

基于这个洞察,MinerU-Diffusion 设计了三大核心技术:

1. Block-wise 分块扩散解码器

不搞全局的扩散(那样计算量太大),把输出序列分成若干个 Block。Block 内部用扩散并行生成,Block 之间保留粗粒度的自回归结构,兼顾了效率和全局一致性。

扩散解码的过程如下——黑色 token 是已确认的,红色 token 正在更新,黄色 token 是未处理的 mask,整个过程是并行推进的:

2. 不确定性驱动的两阶段课程学习

训练分两步走:

  • 第一阶段:用大规模多样化数据建立基础能力(约 750 万样本)

  • 第二阶段:通过多次推理找出模型"不确定"的硬骨头样本,人工精标后重点训练

这个策略非常聪明。扩散模型的训练比自回归更不稳定,数据利用效率也更低,分阶段先建立基本功、再专攻难点,是一个务实的工程选择。

下图展示了 MinerU-Diffusion 的训练架构——左侧是 mask 训练过程,右侧是 Block 注意力机制的结构:

3. 动态置信度调度

解码时,模型会根据每个 token 的置信度动态决定是否"落笔确认"。高置信的直接定了,低置信的继续去噪。这个阈值就像一个"旋钮",可以在速度和精度之间灵活调节。

跑分:快 3 倍,准确率不掉

直接看数据:

在 OmniDocBench v1.5 评测中(带 GT Layout),以 τ=0.97 动态解码对比:

指标

MinerU2.5 (自回归)

MinerU-Diffusion (扩散, τ=0.97)

Overall ↑

Text Edit ↓

Formula CDM ↑

Table TEDS ↑

吞吐量 TPS

Overall 分数几乎一模一样,但吞吐量接近 2 倍!

而且这还只是置信度阈值 0.97 的结果

调到 0.95(Overall 93.37,精度与 MinerU2.5 几乎无差),吞吐量达到 108.9 TPS,2.1 倍加速

再放到 0.6,164.8 TPS,3.26 倍加速,准确率仍然超过 90%

下面这张图非常直观地展示了精度-吞吐量的权衡曲线:

在公式识别和表格识别上,MinerU-Diffusion 也表现出色:

  • 公式识别(UniMER-Test):CPE 91.6 / HWE 91.6 / SCE 92.0 / SPE 96.8,全面碾压 GPT-4o(CPE 82.7 / HWE 85.9 / SCE 87.8),每个指标都领先 4~9 分

  • 表格识别(OCRBench v2):TEDS 81.18 / TEDS-S 88.66,跟一众 AR 模型不相上下

效果展示:看看扩散解码到底怎么工作的

光看数字不过瘾,论文里给了大量的定性示例,非常直观

端到端文档解析效果

下面展示几种典型文档页面的完整识别结果,每组从左到右分别是:原始页面、布局检测结果、最终解析渲染输出。

学术论文页面——包含表格、图片、标题、公式等复杂元素,布局检测精确,解析结果完整保留了文档结构:

报纸版面——密集的多栏排版,阅读顺序正确恢复:

公式密集的试卷——大量数学公式精准识别为 LaTeX:

扩散解码的渐进生成过程

这组图更有意思——展示了扩散解码器在不同任务上是怎么"一步步去噪"的

上面是原始输入,下面是解码过程的可视化,可以看到 token 从 mask 状态逐步被确认的全过程。

布局检测的扩散解码——模型逐步确认页面各区域的位置和类别:

文本识别的扩散解码——文字从 mask 中并行"浮现"出来:

表格识别的扩散解码——表格结构和内容同步恢复:

公式识别的扩散解码——LaTeX 符号从噪声中逐步精确还原:

可以看到,扩散解码是全局并行推进的——不像自回归那样从左上角一路写到右下角,而是整个页面同时"显影"。这种解码模式天然适合文档这种二维空间结构。

模型规格与使用

MinerU-Diffusion-V1 是一个2.5B 参数的模型,支持四种任务:

Prompt 类型

功能

输出格式

Layout Detection

页面级布局解析

边界框 + 标签

Text Recognition

纯文本 OCR

原始 OCR 文本

Formula Recognition

公式提取

LaTeX

Table Recognition

表格提取

OTSL 结构化表格

支持三种推理引擎:HuggingFace Transformers、Nano-DVLM(单 GPU 推理)、SGLang(高性能服务化部署)。

快速上手

安装环境:

conda create -n dmineru python=3.12 -y
conda activate dmineru


pip install torch==2.8.0 torchvision==0.23.0 torchaudio==2.8.0 --index-url https://download.pytorch.org/whl/cu128
pip install "transformers>=4.52.1"
# flash-attn 需要单独安装预编译 wheel(需匹配 CUDA/PyTorch 版本)
wget https://github.com/Dao-AILab/flash-attention/releases/download/v2.8.3/flash_attn-2.8.3+cu12torch2.8cxx11abiFALSE-cp312-cp312-linux_x86_64.whl
pip install flash_attn-2.8.3+cu12torch2.8cxx11abiFALSE-cp312-cp312-linux_x86_64.whl
pip install -r requirements.txt

用 Transformers 跑一下:

import torch
from transformers import AutoModel, AutoProcessor, AutoTokenizer

model_id = "opendatalab/MinerU-Diffusion-V1-0320-2.5B"
image_path = "path/to/page.png"

tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)
processor = AutoProcessor.from_pretrained(model_id, trust_remote_code=True, use_fast=False)
model = AutoModel.from_pretrained(
model_id, trust_remote_code=True,
torch_dtype=torch.bfloat16, low_cpu_mem_usage=True
).eval().to("cuda")

messages = [
{"role": "system", "content": [{"type": "text", "text": "You are a helpful assistant."}]},
{"role": "user", "content": [
{"type": "image", "image": image_path},
{"type": "text", "text": "\nText Recognition:"},
]},
]

prompt_text = processor.apply_chat_template(messages, add_generation_prompt=True)
if isinstance(prompt_text, tuple):
prompt_text = prompt_text[0]

inputs = processor(images=[image_path], text=prompt_text, truncation=True, max_length=4096, return_tensors="pt")
input_ids = inputs["input_ids"].to(torch.long).to("cuda")
pixel_values = inputs["pixel_values"].to(torch.bfloat16).to("cuda")
image_grid_thw = inputs.get("image_grid_thw")
if image_grid_thw isnotNone:
image_grid_thw = image_grid_thw.to(torch.long).to("cuda")

with torch.no_grad():
outputs = model.generate(
pixel_values=pixel_values,
image_grid_thw=image_grid_thw,
input_ids=input_ids,
mask_token_id=tokenizer.convert_tokens_to_ids("<|MASK|>"),
denoising_steps=32,
gen_length=1024,
block_length=32,
temperature=1.0,
remasking_strategy="low_confidence_dynamic",
dynamic_threshold=0.95,
tokenizer=tokenizer,
stopping_criteria=["<|endoftext|>", "<|im_end|>"],
)

output_ids = outputs[0] if isinstance(outputs, tuple) else outputs
text = tokenizer.decode(output_ids[0], skip_special_tokens=False)
for stop in ("<|endoftext|>", "<|im_end|>"):
text = text.split(stop, 1)[0]
print(text.strip())

端到端页面解析也支持:

cd /path/to/MinerU-Diffusion
MODEL_PATH=/path/to/model \
IMAGE_PATH=/path/to/input-page.png \
OUTPUT_PATH=/path/to/output.md \
bash scripts/run_end2end.sh

HuggingFace 上也有 Gradio Demo 可以直接体验:MinerU-Diffusion Demo

这个项目的意义,在我看来不只是"一个更快的 OCR 模型"。它验证了一个根本性的观点——OCR 的本质是视觉任务,解码方式应该与任务本质对齐。自回归解码是语言模型的标配,但 OCR 不是语言生成——你是在读图片,不是在写文章。

MinerU 团队从 MinerU 到 MinerU2.5 再到今天的 MinerU-Diffusion,一路走来持续在 OCR 领域推动技术前沿。这次用 Diffusion 思路来解 OCR,确实是一步好棋。

制作不易,如果这篇文章觉得对你有用,可否点个关注。给我个三连击:点赞、转发和在看。若可以再给我加个,谢谢你看我的文章,我们下篇再见!

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
马斯克:没有人比我给乌克兰的援助更多,愿你们下地狱

马斯克:没有人比我给乌克兰的援助更多,愿你们下地狱

移光幻影
2026-10-25 09:57:06
光这个海报封面,都把我吓得一哆嗦

光这个海报封面,都把我吓得一哆嗦

熊倌儿
2026-10-23 08:44:57
大众电车被疯狂下定 消费者对自主豪车已失望透顶

大众电车被疯狂下定 消费者对自主豪车已失望透顶

华庭讲美食
2026-10-25 10:55:05
仅7个多月,德媒对樊振东的称呼又变了,2字之差释放强烈信号

仅7个多月,德媒对樊振东的称呼又变了,2字之差释放强烈信号

以茶带书
2026-10-26 15:20:51
法媒:亚马尔排名CIES金球奖第1,奥利塞第2,凯恩和梅西排34

法媒:亚马尔排名CIES金球奖第1,奥利塞第2,凯恩和梅西排34

懂球帝
2026-10-26 18:39:11
两台冰柜被平台“仅退款”后,买家称已销毁,商家跨省赶到上海维权,发现冰柜正插着电在使用!律师:可能涉嫌诈骗罪

两台冰柜被平台“仅退款”后,买家称已销毁,商家跨省赶到上海维权,发现冰柜正插着电在使用!律师:可能涉嫌诈骗罪

扬子晚报
2026-10-26 16:19:44
老干妈HR回应AI裁员传闻

老干妈HR回应AI裁员传闻

凤凰网财经
2026-10-26 16:36:48
塞尔维亚选举,一名政坛新人领衔反对派获胜:现年56岁,大学教授,长期一线行医,曾公开支持反腐,优先推进国内经济复苏,不急于加入欧盟

塞尔维亚选举,一名政坛新人领衔反对派获胜:现年56岁,大学教授,长期一线行医,曾公开支持反腐,优先推进国内经济复苏,不急于加入欧盟

极目新闻
2026-10-26 13:22:43
15岁高中生确诊甲状腺癌,且已转移!家长:孩子从初中开始,就没在凌晨一点前睡过觉;医生:不能因其被称为“懒癌”而掉以轻心

15岁高中生确诊甲状腺癌,且已转移!家长:孩子从初中开始,就没在凌晨一点前睡过觉;医生:不能因其被称为“懒癌”而掉以轻心

南方都市报
2026-10-25 18:40:27
“为无休止的屠杀下地狱吧”:马斯克回应泽连斯基对星链限速

“为无休止的屠杀下地狱吧”:马斯克回应泽连斯基对星链限速

阿尔卑斯瞭望
2026-10-25 18:06:35
“23:59:60”这一特殊时间戳,今后将不再出现,2027年5月20日起,全球范围内停止插入闰秒

“23:59:60”这一特殊时间戳,今后将不再出现,2027年5月20日起,全球范围内停止插入闰秒

大风新闻
2026-10-25 21:12:12
普京:这种说法过分了

普京:这种说法过分了

参考消息
2026-10-26 15:50:09
越来越多人慢慢退出自驾游,不少车主说出3大原因,大家别再犯傻

越来越多人慢慢退出自驾游,不少车主说出3大原因,大家别再犯傻

娱乐圈的笔娱君
2026-10-25 19:20:27
无限开火权,国王队阿库夫的出手次数创下NBA历史新高

无限开火权,国王队阿库夫的出手次数创下NBA历史新高

好火子
2026-10-26 22:28:50
距大选仅12天王毅绕过总理,只见没实权的总统,这盘棋很深

距大选仅12天王毅绕过总理,只见没实权的总统,这盘棋很深

娱乐的宅急便
2026-10-25 17:47:33
风暴已经出现,中国不得不面对!40年来从未出现的四种情况已到来

风暴已经出现,中国不得不面对!40年来从未出现的四种情况已到来

影孖看世界
2026-10-17 21:54:52
网传女孩抑郁症,结三次婚,每次不到半年就离,彩礼不退,已经攒了几十万,光金手镯就有仨

网传女孩抑郁症,结三次婚,每次不到半年就离,彩礼不退,已经攒了几十万,光金手镯就有仨

丫头舫
2026-10-26 23:07:52
中石油成大牛股!不知不觉已暴涨7倍,股价创18年新高,仅次07年上市巅峰时期,中东冲突叠加风格切换,50万坚守股民迎红包

中石油成大牛股!不知不觉已暴涨7倍,股价创18年新高,仅次07年上市巅峰时期,中东冲突叠加风格切换,50万坚守股民迎红包

金融界
2026-10-26 13:43:26
一屋子名流看着她被拖进洗手间:比坏人更可怕的,是满屋子的沉默

一屋子名流看着她被拖进洗手间:比坏人更可怕的,是满屋子的沉默

Xww
2026-10-25 14:52:05
省委书记会场示意我离场,中央调令送达后,全场震惊我赴京城履新

省委书记会场示意我离场,中央调令送达后,全场震惊我赴京城履新

千秋文化
2026-09-26 20:24:16
2026-10-27 02:32:49
Ai学习的老章 incentive-icons
Ai学习的老章
Ai学习的老章
3558文章数 11214关注度
往期回顾 全部

科技要闻

苹果发iPad mini 8:5499元起售 配A20 Pro

头条要闻

外媒称"中印边境发生冲突印度指责中国军队" 中方回应

头条要闻

外媒称"中印边境发生冲突印度指责中国军队" 中方回应

体育要闻

13年后重回诺坎普,穆里尼奥又滑跪了

娱乐要闻

胡歌杨幂刘诗诗袁弘陈龙结伴去埃及

财经要闻

卢锋:全球失衡背后 大国博弈与多边治理

汽车要闻

云辇-M上车 第二代海豹07让驾驶者也能爱上的家用车

态度原创

时尚
房产
艺术
数码
家居

围巾,女人气质的延伸

房产要闻

海甸岛26万人,还缺一个年轻人“待得住”的地方

艺术要闻

柴姆·苏丁:20世纪著名的犹太裔法国表现主义画家

数码要闻

苹果把TechWoven编织面料引入iPad mini 智能保护套售价79美元

家居要闻

2026建博会(广州) 公装联探展交流活动

无障碍浏览 进入关怀版