{"notes":[{"id":"text-spotting/paddleocr-vl","category":"text-spotting","legacyPath":"","legacySlug":"","legacyPaths":[],"title":"PaddleOCR-VL","subtitle":"先排版，再讀字","author":"Z. Yuan","paperDate":"2025-10-16","publishedOn":"2026-10-31","world":"external/paddleocr-vl","paperTitle":"PaddleOCR-VL: Boosting Multilingual Document Parsing via a 0.9B Ultra-Compact Vision-Language Model","paperUrl":"https://arxiv.org/abs/2510.14528","bibliography":{"title":"PaddleOCR-VL: Boosting Multilingual Document Parsing via a 0.9B Ultra-Compact Vision-Language Model","authors":["Cheng Cui","Ting Sun","Suyin Liang","Tingquan Gao","Zelun Zhang","Jiaxuan Liu","Xueqing Wang","Changda Zhou","Hongen Liu","Manhui Lin","Yue Zhang","Yubo Zhang","Handong Zheng","Jing Zhang","Jun Zhang","Yi Liu","Dianhai Yu","Yanjun Ma"],"url":"https://arxiv.org/abs/2510.14528","pdfUrl":"https://arxiv.org/pdf/2510.14528v4","codeUrl":"https://github.com/PaddlePaddle/PaddleOCR","preprint":{"id":"2510.14528","submittedOn":"2025-10-16","url":"https://arxiv.org/abs/2510.14528"},"publication":null,"citation":"@misc{textspottingpaddleocrvl2025,\n  title = {{PaddleOCR-VL: Boosting Multilingual Document Parsing via a 0.9B Ultra-Compact Vision-Language Model}},\n  author = {Cheng Cui and Ting Sun and Suyin Liang and Tingquan Gao and Zelun Zhang and Jiaxuan Liu and Xueqing Wang and Changda Zhou and Hongen Liu and Manhui Lin and Yue Zhang and Yubo Zhang and Handong Zheng and Jing Zhang and Jun Zhang and Yi Liu and Dianhai Yu and Yanjun Ma},\n  year = {2025},\n  eprint = {2510.14528},\n  archivePrefix = {arXiv},\n  url = {https://arxiv.org/abs/2510.14528}\n}\n","citationPath":"/content/papers/citations/text-spotting/paddleocr-vl.c7969231dd04.bib"},"thumbnail":{"src":"/content/papers/assets/8ee9dd9a20b760af5b9fa7f40b97755487d35e7d6eab2577db214b267ad05ef7.png","width":1288,"height":555},"locale":"zh-hant","path":"/content/papers/zh-hant/text-spotting/paddleocr-vl.35e4925f99c6.md","headings":[{"id":"定義問題","text":"定義問題","depth":2},{"id":"解決問題","text":"解決問題","depth":2},{"id":"兩個階段","text":"兩個階段","depth":3},{"id":"版面偵測加上排序","text":"版面：偵測加上排序","depth":3},{"id":"辨識09b-的小模型","text":"辨識：0.9B 的小模型","depth":3},{"id":"訓練與資料","text":"訓練與資料","depth":3},{"id":"討論","text":"討論","depth":2},{"id":"omnidocbench-v15","text":"OmniDocBench v1.5","depth":3},{"id":"速度","text":"速度","depth":3},{"id":"後續版本","text":"後續版本","depth":3},{"id":"讀這篇時要知道的事","text":"讀這篇時要知道的事","depth":3},{"id":"結論","text":"結論","depth":2}],"anchorAliases":{},"guide":null,"relatedReading":[]}],"text":"文件解析走到 2025 年，大致分成兩條路。\n\n一條是**分段式**：版面偵測、文字辨識、表格辨識、公式辨識，各用一個專門模型，再串成流程。準確，但零件多，接縫多，錯誤會一路往下傳。\n\n另一條是**端到端**：一個 VLM 看整頁影像，直接寫出 Markdown。流程簡單，可是一頁文件要生成幾千個 token，又慢又吃記憶體；遇到多欄或圖文混排的頁面，閱讀順序常常亂掉，還可能生出原文沒有的內容。\n\n百度 PaddlePaddle 團隊的 PaddleOCR-VL 選了一個折衷：**版面交給專門的偵測模型，每一塊的內容交給一個很小的 VLM**。這篇在 2025 年 10 月 16 日上傳 arXiv，本文依 11 月 25 日的 v4 閱讀，程式與模型都已開源。\n\n## 定義問題\n\n作者對兩條路線的批評很直接。\n\n分段式系統整合複雜、錯誤會累積，碰到很複雜的文件也有上限。端到端模型則仰賴很長的自迴歸生成，延遲與記憶體都高；在多欄或圖文混排的頁面上，版面分析容易不穩，還會產生幻覺。\n\n他們想要的系統要能處理多種語言與元素，又要小到能實際部署。\n\n## 解決問題\n\n### 兩個階段\n\n[![PaddleOCR-VL 總覽：左側為 PDF、PNG、JPG 等非結構化文件；中間先由 PP-DocLayoutV2 做版面分析，輸出區塊位置、類別與閱讀順序，再分批交給 PaddleOCR-VL-0.9B，依 OCR、表格、公式、圖表四種指令辨識；右側輸出 Markdown 與 JSON](/content/papers/assets/8ee9dd9a20b760af5b9fa7f40b97755487d35e7d6eab2577db214b267ad05ef7.png)](/content/papers/assets/8ee9dd9a20b760af5b9fa7f40b97755487d35e7d6eab2577db214b267ad05ef7.png)\n\n*原論文 Figure 2，取自 [**v4 PDF 第 5 頁**](https://arxiv.org/pdf/2510.14528v4#page=5)，CC BY 4.0。*\n\n從左往右看：\n\n1. **PP-DocLayoutV2** 讀整頁影像，找出每個區塊的位置與類別（文字、表格、公式、圖表等），並預測它們的閱讀順序。\n2. 每個區塊裁下來，分批交給 **PaddleOCR-VL-0.9B**，依區塊類別給它對應的指令：OCR、表格辨識、公式辨識或圖表辨識。\n3. 一個輕量的後處理把兩段的結果組起來，輸出 Markdown 與 JSON。\n\n### 版面：偵測加上排序\n\nPP-DocLayoutV2 由兩個網路串成：\n\n- 一個以 **RT-DETR** 為基礎的偵測模型，找出版面元素並分類。\n- 一個 6 層 Transformer 的**指標網路**（pointer network），負責排出閱讀順序。\n\n排序的做法值得看一下。偵測出來的區塊，先用絕對 2D 位置編碼加上類別嵌入表示；注意力裡再加入 Relation-DETR 的幾何偏差，讓模型直接考慮兩個區塊之間的相對位置。接著，一個兩兩關係的輸出頭替每一對區塊算出「誰應該先讀」的分數，得到一個 $N\\times N$ 的矩陣。最後用一個確定性的「累計勝場」解碼，排出一致的順序。\n\n拿一個三區塊的頁面試試看：上方一個標題，下面分成左右兩欄。表中的數字是「左邊這一列的區塊應該比上方那一欄的區塊先讀」的機率（示意數字）：\n\n| | 標題 | 左欄 | 右欄 |\n| --- | --- | --- | --- |\n| 標題 | — | 0.92 | 0.95 |\n| 左欄 | | — | 0.81 |\n\n兩兩比一次：標題贏左欄、贏右欄，兩勝；左欄贏右欄，一勝；右欄零勝。依勝場排序，就是標題 → 左欄 → 右欄。\n\n這種做法的好處是，順序來自整體的比較，不會被某一對判斷錯誤帶偏太多；而且它是一個獨立的小模型，可以單獨訓練、單獨評估。\n\n### 辨識：0.9B 的小模型\n\nPaddleOCR-VL-0.9B 採用 LLaVA 式的架構，三個部分：\n\n- **視覺編碼器**：NaViT 風格，支援原生解析度輸入，以 Keye-VL 的視覺模型初始化。作者說，影像不必縮放或切塊變形，幻覺比較少，文字密集的內容也表現較好。\n- **投影層**：兩層 MLP，把相鄰的視覺特徵合併後送進語言模型。\n- **語言模型**：**ERNIE-4.5-0.3B**，並加入 3D-RoPE。作者特別解釋了為什麼選這麼小的語言模型：自迴歸生成一次只吐一個 token，解碼器的大小直接決定延遲。\n\n整個模型支援 109 種語言。\n\n### 訓練與資料\n\n訓練分兩段：\n\n1. **對齊預訓練**：2,900 萬組影像與文字配對，訓練一個 epoch，最大解析度 1280×28×28。\n2. **指令微調**：270 萬筆資料，訓練兩個 epoch，最大解析度提高到 2048×28×28。任務有四種：OCR、表格（輸出 OTSL 格式）、公式（區分行內與獨立公式的 LaTeX）、圖表（輸出 Markdown 表格）。\n\n資料來源包括公開資料集、合成資料、網路蒐集的各類文件與團隊多年累積的內部資料。標註流程很值得一看：\n\n1. 先用團隊的分段式工具 PP-StructureV3 產生初步的偽標註。\n2. 把原圖和偽標註一起交給 ERNIE-4.5-VL、Qwen2.5-VL 這類大型多模態模型，讓它們修正。\n3. 最後做一道**幻覺過濾**，刪掉大模型可能捏造的內容。\n\n連製作訓練資料，都得防範大模型補字。\n\n他們還建了一套評估引擎，把文字分成中文、英文、印刷、手寫、日文、拉丁文、emoji 等 23 類，表格分成 20 類，依此找出困難樣本，再針對性地補資料。\n\n## 討論\n\n### OmniDocBench v1.5\n\n在 OmniDocBench v1.5（1,355 頁）上，PaddleOCR-VL 的整體分數是 92.86，第二名 MinerU2.5 是 90.67。各項子指標也都領先：文字編輯距離 0.035、公式 CDM 91.22、表格 TEDS 90.89、閱讀順序編輯距離 0.043。\n\n在 olmOCR-Bench 上，它的整體分數是 80.0，ArXiv 與頁首頁尾兩類最高。\n\n這些都是作者自己報告的結果。之後 DeepSeek-OCR 2 的論文引用 OmniDocBench 官方成績時，PaddleOCR-VL 同樣是 92.86，排在所有模型的最前面。\n\n### 速度\n\n作者在單張 A100 上，以 512 份 PDF 為一批，量測從輸入 PDF 路徑到產出完整 Markdown 的端到端時間。以 FastDeploy 部署時，PaddleOCR-VL 每秒處理的頁數比 MinerU2.5 高 53.1%，每秒輸出的 token 數高 50.9%。\n\n小的語言模型，加上只辨識裁下來的區塊，讓它在速度上佔了不少便宜。\n\n### 後續版本\n\nPaddleOCR-VL 之後還有 1.5 版（2026 年 1 月）與 1.6 版（2026 年 6 月）。在 OmniDocBench v1.6 的官方排行榜上，PaddleOCR-VL-1.6 的整體分數是 96.34，名列前茅。[OmniDocBench README](https://github.com/opendatalab/OmniDocBench)\n\n### 讀這篇時要知道的事\n\n1. **成績多為自報**。OmniDocBench 的成績後來在官方排行榜上可以對照，其他內部評估無法獨立驗證。\n2. **版面錯了，後面也救不回來**。兩階段設計把風險集中在版面分析：區塊漏偵測，那塊文字就不會被辨識。PP-DocLayoutV2 的偵測部分以 2 萬多筆自建樣本訓練，再凍結偵測、單獨訓練排序網路。\n3. **大模型參與了標註**。偽標註經過 ERNIE-4.5-VL 與 Qwen2.5-VL 修正，再做幻覺過濾；過濾能抓到多少，論文沒有給出數字。\n\n## 結論\n\nPaddleOCR-VL 的設計是一個很務實的分工：\n\n1. **版面交給偵測模型**：RT-DETR 找區塊，指標網路以兩兩比較排出閱讀順序。\n2. **內容交給很小的 VLM**：NaViT 視覺編碼器加 0.3B 的 ERNIE，針對四種元素各給一種指令。\n3. **成績與速度兼顧**：OmniDocBench v1.5 整體 92.86，吞吐量比 MinerU2.5 高約五成。\n\n從端到端的潮流往回看，這個設計像是把分段式流程請了回來，只是負責讀字的零件換成了小型 VLM。每次只讀一塊、輸出也短，作者認為這同時降低了延遲與幻覺的風險。\n","imageSizes":{"/content/papers/assets/8ee9dd9a20b760af5b9fa7f40b97755487d35e7d6eab2577db214b267ad05ef7.png":{"width":1288,"height":555}}}
