国产av一二三区|日本不卡动作网站|黄色天天久久影片|99草成人免费在线视频|AV三级片成人电影在线|成年人aV不卡免费播放|日韩无码成人一级片视频|人人看人人玩开心色AV|人妻系列在线观看|亚洲av无码一区二区三区在线播放

網(wǎng)易首頁(yè) > 網(wǎng)易號(hào) > 正文 申請(qǐng)入駐

MinerU 再次改變 OCR,5 倍提升

0
分享至

關(guān)于 OCR 這個(gè)話題,我之前寫過不少:

今天這篇要聊的東西可能是 OCR 領(lǐng)域近年來最大的范式轉(zhuǎn)換,MinerU 團(tuán)隊(duì)用擴(kuò)散模型重新定義了文檔 OCR 的解碼方式

MinerU:OCR 領(lǐng)域的扛把子

先說說 MinerU 這個(gè)項(xiàng)目在 OCR 圈子的地位

MinerU 由上海人工智能實(shí)驗(yàn)室的 OpenDataLab 團(tuán)隊(duì)開發(fā),最初誕生于 InternLM 大模型的預(yù)訓(xùn)練數(shù)據(jù)處理過程中

做過 RAG 的朋友應(yīng)該都知道,文檔解析是 RAG 流水線上最關(guān)鍵的一環(huán)——你的知識(shí)庫(kù)質(zhì)量上限,就取決于你的文檔解析能力

而 MinerU 幾乎是開源文檔解析工具的事實(shí)標(biāo)準(zhǔn):

  • 全格式覆蓋:支持 PDF、圖片、DOCX 輸入,輸出 Markdown 和 JSON

  • 109 種語(yǔ)言的 OCR 支持

  • 全平臺(tái)兼容:Windows、Linux、Mac,CPU/GPU/NPU/MPS 都能跑

  • 功能全面:自動(dòng)去除頁(yè)眉頁(yè)腳頁(yè)碼、保留文檔結(jié)構(gòu)、提取表格公式、處理復(fù)雜多欄布局

剛剛,MinerU 發(fā)布了3.0.0 大版本更新——新增了原生 DOCX 解析、pipeline 后端在 OmniDocBench v1.5 上得分達(dá)到 86.2,上線了多 GPU 部署路由

更關(guān)鍵的是,MinerU 的 VLM 版本 MinerU2.5 在 OmniDocBench 等權(quán)威 Benchmark 上一直是各路 OCR 模型的對(duì)標(biāo)基準(zhǔn)。

新范式:用 Diffusion 重新思考 OCR

好了,鋪墊完背景,來說今天的主角——MinerU-Diffusion

這是 MinerU 團(tuán)隊(duì)在 3 月 24 日放出的全新框架,論文標(biāo)題非常到位:

Rethinking Document OCR as Inverse Rendering via Diffusion Decoding(將文檔 OCR 重新定義為通過擴(kuò)散解碼的逆渲染問題)

一句話總結(jié):把傳統(tǒng)的自回歸(從左到右一個(gè)字一個(gè)字吐)解碼,換成了并行的擴(kuò)散去噪解碼

這個(gè)思路非常有意思

為什么自回歸解碼不適合 OCR?

現(xiàn)在主流的 OCR 方案,本質(zhì)上都是一個(gè)路子:視覺編碼器把圖片變成特征,然后語(yǔ)言模型一個(gè) token 一個(gè) token 地從左到右生成文字

這個(gè)架構(gòu)有三個(gè)致命問題:

1. 速度瓶頸

自回歸解碼是串行的——生成第 100 個(gè) token 必須等前 99 個(gè)都完成。

文檔越長(zhǎng),越慢,延遲線性增長(zhǎng)。

2. 錯(cuò)誤累積

前面錯(cuò)了一個(gè),后面大概率跟著錯(cuò)。

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

對(duì)于長(zhǎng)文檔、復(fù)雜表格和公式這種動(dòng)輒幾千 token 的場(chǎng)景,這個(gè)問題尤為致命。

3. 依賴語(yǔ)言先驗(yàn)而非視覺證據(jù)

這是論文中最犀利的觀察

自回歸模型在解碼時(shí)會(huì)不自覺地依賴"語(yǔ)義補(bǔ)全"——它更多是靠上下文猜接下來的字是什么,而非認(rèn)真看圖片上寫的是什么

論文專門設(shè)計(jì)了一個(gè)Semantic Shuffle測(cè)試來證明這個(gè)問題:把文檔中的單詞打亂順序,重新排版成圖片,讓模型去識(shí)別。

結(jié)果自回歸模型的準(zhǔn)確率隨著打亂程度直線下跌,而擴(kuò)散模型基本紋絲不動(dòng)。

下圖就是 Semantic Shuffle 測(cè)試的結(jié)果,可以清楚看到 AR(自回歸)和 Diffusion(擴(kuò)散)兩種解碼方式面對(duì)語(yǔ)義打亂時(shí)的表現(xiàn)差異:


Semantic Shuffle 測(cè)試結(jié)果

這說明什么?自回歸模型做 OCR 時(shí)有很大程度上是在"理解"文本然后"猜"出來的。而 OCR 的本質(zhì)應(yīng)該是忠實(shí)地"看"圖片上寫了什么,跟文字有沒有語(yǔ)義無(wú)關(guān)。

MinerU-Diffusion 如何解題?

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

什么意思?文檔渲染是:結(jié)構(gòu)化文本 → 2D 圖片

OCR 就是反過來:2D 圖片 → 結(jié)構(gòu)化文本

既然渲染過程不需要從左到右逐字生成,OCR 解碼憑什么必須從左到右?

下圖展示了自回歸解碼和擴(kuò)散解碼兩種方式的對(duì)比:


自回歸 vs 擴(kuò)散解碼

基于這個(gè)洞察,MinerU-Diffusion 設(shè)計(jì)了三大核心技術(shù):

1. Block-wise 分塊擴(kuò)散解碼器

不搞全局的擴(kuò)散(那樣計(jì)算量太大),把輸出序列分成若干個(gè) Block。Block 內(nèi)部用擴(kuò)散并行生成,Block 之間保留粗粒度的自回歸結(jié)構(gòu),兼顧了效率和全局一致性。

擴(kuò)散解碼的過程如下——黑色 token 是已確認(rèn)的,紅色 token 正在更新,黃色 token 是未處理的 mask,整個(gè)過程是并行推進(jìn)的:


擴(kuò)散解碼過程

2. 不確定性驅(qū)動(dòng)的兩階段課程學(xué)習(xí)

訓(xùn)練分兩步走:

  • 第一階段:用大規(guī)模多樣化數(shù)據(jù)建立基礎(chǔ)能力(約 750 萬(wàn)樣本)

  • 第二階段:通過多次推理找出模型"不確定"的硬骨頭樣本,人工精標(biāo)后重點(diǎn)訓(xùn)練

這個(gè)策略非常聰明。擴(kuò)散模型的訓(xùn)練比自回歸更不穩(wěn)定,數(shù)據(jù)利用效率也更低,分階段先建立基本功、再專攻難點(diǎn),是一個(gè)務(wù)實(shí)的工程選擇。

下圖展示了 MinerU-Diffusion 的訓(xùn)練架構(gòu)——左側(cè)是 mask 訓(xùn)練過程,右側(cè)是 Block 注意力機(jī)制的結(jié)構(gòu):


訓(xùn)練架構(gòu)

3. 動(dòng)態(tài)置信度調(diào)度

解碼時(shí),模型會(huì)根據(jù)每個(gè) token 的置信度動(dòng)態(tài)決定是否"落筆確認(rèn)"。高置信的直接定了,低置信的繼續(xù)去噪。這個(gè)閾值就像一個(gè)"旋鈕",可以在速度和精度之間靈活調(diào)節(jié)。

跑分:快 3 倍,準(zhǔn)確率不掉

直接看數(shù)據(jù):

在 OmniDocBench v1.5 評(píng)測(cè)中(帶 GT Layout),以 τ=0.97 動(dòng)態(tài)解碼對(duì)比:

指標(biāo)

MinerU2.5 (自回歸)

MinerU-Diffusion (擴(kuò)散, τ=0.97)

Overall ↑

Text Edit ↓

Formula CDM ↑

Table TEDS ↑

吞吐量 TPS

Overall 分?jǐn)?shù)幾乎一模一樣,但吞吐量接近 2 倍!

而且這還只是置信度閾值 0.97 的結(jié)果

調(diào)到 0.95(Overall 93.37,精度與 MinerU2.5 幾乎無(wú)差),吞吐量達(dá)到 108.9 TPS,2.1 倍加速

再放到 0.6,164.8 TPS,3.26 倍加速,準(zhǔn)確率仍然超過 90%

下面這張圖非常直觀地展示了精度-吞吐量的權(quán)衡曲線:


精度-吞吐量權(quán)衡

在公式識(shí)別和表格識(shí)別上,MinerU-Diffusion 也表現(xiàn)出色:

  • 公式識(shí)別(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),每個(gè)指標(biāo)都領(lǐng)先 4~9 分

  • 表格識(shí)別(OCRBench v2):TEDS 81.18 / TEDS-S 88.66,跟一眾 AR 模型不相上下

效果展示:看看擴(kuò)散解碼到底怎么工作的

光看數(shù)字不過癮,論文里給了大量的定性示例,非常直觀

端到端文檔解析效果

下面展示幾種典型文檔頁(yè)面的完整識(shí)別結(jié)果,每組從左到右分別是:原始頁(yè)面、布局檢測(cè)結(jié)果、最終解析渲染輸出。

學(xué)術(shù)論文頁(yè)面——包含表格、圖片、標(biāo)題、公式等復(fù)雜元素,布局檢測(cè)精確,解析結(jié)果完整保留了文檔結(jié)構(gòu):


學(xué)術(shù)論文解析 - 原始輸入學(xué)術(shù)論文解析 - 布局檢測(cè)學(xué)術(shù)論文解析 - 渲染輸出

報(bào)紙版面——密集的多欄排版,閱讀順序正確恢復(fù):


報(bào)紙解析 - 原始輸入報(bào)紙解析 - 布局檢測(cè)

公式密集的試卷——大量數(shù)學(xué)公式精準(zhǔn)識(shí)別為 LaTeX:


試卷解析 - 原始輸入試卷解析 - 布局檢測(cè)試卷解析 - 渲染輸出

擴(kuò)散解碼的漸進(jìn)生成過程

這組圖更有意思——展示了擴(kuò)散解碼器在不同任務(wù)上是怎么"一步步去噪"的

上面是原始輸入,下面是解碼過程的可視化,可以看到 token 從 mask 狀態(tài)逐步被確認(rèn)的全過程。

布局檢測(cè)的擴(kuò)散解碼——模型逐步確認(rèn)頁(yè)面各區(qū)域的位置和類別:


布局解碼示例1-輸入布局解碼示例1-過程

文本識(shí)別的擴(kuò)散解碼——文字從 mask 中并行"浮現(xiàn)"出來:


文本解碼示例-輸入文本解碼示例-過程

表格識(shí)別的擴(kuò)散解碼——表格結(jié)構(gòu)和內(nèi)容同步恢復(fù):


表格解碼示例-輸入表格解碼示例-過程

公式識(shí)別的擴(kuò)散解碼——LaTeX 符號(hào)從噪聲中逐步精確還原:


公式解碼示例-輸入公式解碼示例-過程

可以看到,擴(kuò)散解碼是全局并行推進(jìn)的——不像自回歸那樣從左上角一路寫到右下角,而是整個(gè)頁(yè)面同時(shí)"顯影"。這種解碼模式天然適合文檔這種二維空間結(jié)構(gòu)。

模型規(guī)格與使用

MinerU-Diffusion-V1 是一個(gè)2.5B 參數(shù)的模型,支持四種任務(wù):

Prompt 類型

功能

輸出格式

Layout Detection

頁(yè)面級(jí)布局解析

邊界框 + 標(biāo)簽

Text Recognition

純文本 OCR

原始 OCR 文本

Formula Recognition

公式提取

LaTeX

Table Recognition

表格提取

OTSL 結(jié)構(gòu)化表格

支持三種推理引擎:HuggingFace Transformers、Nano-DVLM(單 GPU 推理)、SGLang(高性能服務(wù)化部署)。

快速上手

安裝環(huán)境:

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 需要單獨(dú)安裝預(yù)編譯 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())

端到端頁(yè)面解析也支持:

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 可以直接體驗(yàn):MinerU-Diffusion Demo

這個(gè)項(xiàng)目的意義,在我看來不只是"一個(gè)更快的 OCR 模型"。它驗(yàn)證了一個(gè)根本性的觀點(diǎn)——OCR 的本質(zhì)是視覺任務(wù),解碼方式應(yīng)該與任務(wù)本質(zhì)對(duì)齊。自回歸解碼是語(yǔ)言模型的標(biāo)配,但 OCR 不是語(yǔ)言生成——你是在讀圖片,不是在寫文章。

MinerU 團(tuán)隊(duì)從 MinerU 到 MinerU2.5 再到今天的 MinerU-Diffusion,一路走來持續(xù)在 OCR 領(lǐng)域推動(dòng)技術(shù)前沿。這次用 Diffusion 思路來解 OCR,確實(shí)是一步好棋。

制作不易,如果這篇文章覺得對(duì)你有用,可否點(diǎn)個(gè)關(guān)注。給我個(gè)三連擊:點(diǎn)贊、轉(zhuǎn)發(fā)和在看。若可以再給我加個(gè),謝謝你看我的文章,我們下篇再見!

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。

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.

相關(guān)推薦
熱點(diǎn)推薦
離異美少婦偷偷生下孩子,走投無(wú)路找前夫復(fù)合,要求前夫?qū)λ?fù)責(zé)

離異美少婦偷偷生下孩子,走投無(wú)路找前夫復(fù)合,要求前夫?qū)λ?fù)責(zé)

小米拉
2026-04-21 08:31:37
CBA|廣東輸給山西,北汽“自動(dòng)”獲得前四,繼續(xù)爭(zhēng)第三

CBA|廣東輸給山西,北汽“自動(dòng)”獲得前四,繼續(xù)爭(zhēng)第三

北青網(wǎng)-北京青年報(bào)
2026-04-21 09:04:15
王平河系列:江湖無(wú)前輩(9/10)

王平河系列:江湖無(wú)前輩(9/10)

金昔說故事
2026-04-21 08:47:43
國(guó)米意杯惡戰(zhàn)遇德比落敗時(shí)兩大裁判 法布雷加斯將放出變陣大招

國(guó)米意杯惡戰(zhàn)遇德比落敗時(shí)兩大裁判 法布雷加斯將放出變陣大招

國(guó)際足球冷雪
2026-04-21 06:29:31
兵敗如山倒!國(guó)產(chǎn)新能源,撕下了二線豪華品牌最后的“遮羞布”

兵敗如山倒!國(guó)產(chǎn)新能源,撕下了二線豪華品牌最后的“遮羞布”

斷翼的鳥兒
2026-04-18 23:13:17
賽季打完,5位小角色打出身價(jià):阿夫頂薪了,小里拒絕肥約賭對(duì)了

賽季打完,5位小角色打出身價(jià):阿夫頂薪了,小里拒絕肥約賭對(duì)了

大西體育
2026-04-20 23:32:49
日本挑釁引發(fā)爭(zhēng)議,網(wǎng)友懷疑地震背后藏核試驗(yàn)!中國(guó)迅速反擊,意圖何在?

日本挑釁引發(fā)爭(zhēng)議,網(wǎng)友懷疑地震背后藏核試驗(yàn)!中國(guó)迅速反擊,意圖何在?

林子說事
2026-04-21 08:31:45
臉沒恢復(fù)就別出來拍劇了,頂著腫脹臉、笨重假發(fā)套,太讓人出戲了

臉沒恢復(fù)就別出來拍劇了,頂著腫脹臉、笨重假發(fā)套,太讓人出戲了

白面書誏
2026-04-14 18:34:11
從“熱情接機(jī)”到“惡意造謠”:雷軍京滬續(xù)航挑戰(zhàn)遭黑產(chǎn)碰瓷,小米強(qiáng)硬表態(tài)

從“熱情接機(jī)”到“惡意造謠”:雷軍京滬續(xù)航挑戰(zhàn)遭黑產(chǎn)碰瓷,小米強(qiáng)硬表態(tài)

TechWeb
2026-04-20 10:35:06
馬英九基金會(huì)風(fēng)暴,李德維怒了,向馬英九開火,蕭旭岑回應(yīng)亮了

馬英九基金會(huì)風(fēng)暴,李德維怒了,向馬英九開火,蕭旭岑回應(yīng)亮了

DS北風(fēng)
2026-04-20 16:48:04
丈夫半夜捉奸妻子,妻子給他下安眠藥,2008年叫情夫?qū)⑺麣⑺罀伿?>
    </a>
        <h3>
      <a href=漢史趣聞
2026-04-19 18:02:48
關(guān)注丨剛剛,全線跳水!伊朗,突然宣布

關(guān)注丨剛剛,全線跳水!伊朗,突然宣布

錢眼
2026-04-20 20:12:47
小寶與王某雷,誰(shuí)探訪花的數(shù)量更多?

小寶與王某雷,誰(shuí)探訪花的數(shù)量更多?

挪威森林
2026-01-31 12:15:26
遭同行排擠打壓?張雪:所有品牌都不做我們的售后 只能自己直播

遭同行排擠打壓?張雪:所有品牌都不做我們的售后 只能自己直播

念洲
2026-04-21 08:52:33
美國(guó)人終于清醒了,質(zhì)問:特朗普女婿庫(kù)什納有什么資格去談判?

美國(guó)人終于清醒了,質(zhì)問:特朗普女婿庫(kù)什納有什么資格去談判?

光電科技君
2026-04-20 10:19:30
伊朗做出重大讓步,同意開放一半海峽,交出濃縮鈾也可以談

伊朗做出重大讓步,同意開放一半海峽,交出濃縮鈾也可以談

第一軍情
2026-04-20 12:55:03
武大楊景媛被投訴辭職后續(xù):已考公進(jìn)復(fù)試!筆試成績(jī)還挺高

武大楊景媛被投訴辭職后續(xù):已考公進(jìn)復(fù)試!筆試成績(jī)還挺高

林大師熱點(diǎn)
2026-04-20 20:18:56
為什么說印度的海岸線,遠(yuǎn)看是老天爺賞飯,近看是逗你玩兒?

為什么說印度的海岸線,遠(yuǎn)看是老天爺賞飯,近看是逗你玩兒?

半解智士
2026-04-16 17:10:39
1.7萬(wàn)兵力集結(jié),距臺(tái)灣僅96公里!專家擔(dān)心:日本可能要軍事暴走

1.7萬(wàn)兵力集結(jié),距臺(tái)灣僅96公里!專家擔(dān)心:日本可能要軍事暴走

消失的電波
2026-04-20 10:21:40
終究還是離了!姐姐賣燒餅掙了幾百萬(wàn),全給弟弟買車房,后悔嗎?

終究還是離了!姐姐賣燒餅掙了幾百萬(wàn),全給弟弟買車房,后悔嗎?

許三歲
2026-04-11 16:36:44
2026-04-21 09:40:49
Ai學(xué)習(xí)的老章 incentive-icons
Ai學(xué)習(xí)的老章
Ai學(xué)習(xí)的老章
3339文章數(shù) 11138關(guān)注度
往期回顧 全部

科技要聞

重磅官宣:庫(kù)克卸任,特努斯接任蘋果CEO

頭條要聞

媒體:馬克龍和梅洛尼臉貼臉吻上了 特朗普要吃醋了

頭條要聞

媒體:馬克龍和梅洛尼臉貼臉吻上了 特朗普要吃醋了

體育要聞

“被優(yōu)化”8年后,國(guó)乒方博決定換一條路重新上場(chǎng)

娛樂要聞

《八千里路云和月》田家泰暗殺

財(cái)經(jīng)要聞

減速機(jī)訂單已排到明年!

汽車要聞

把天門山搬進(jìn)廠?開仰望U8沖上45度坡的那刻 我腿軟了

態(tài)度原創(chuàng)

藝術(shù)
手機(jī)
本地
健康
公開課

藝術(shù)要聞

馬英九宋楚瑜大陸行題字火了!鄭麗文和平之旅為何不盡如人意?

手機(jī)要聞

庫(kù)克發(fā)布感謝信,感謝蘋果iPhone等用戶15年來的信任與支持

本地新聞

12噸巧克力有難,全網(wǎng)化身超級(jí)偵探添亂

干細(xì)胞抗衰4大誤區(qū),90%的人都中招

公開課

李玫瑾:為什么性格比能力更重要?

無(wú)障礙瀏覽 進(jìn)入關(guān)懷版