{"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-hans","path":"/content/papers/zh-hans/text-spotting/paddleocr-vl.24c57f4c25b6.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}}}
