# 一、PP-StructureV3 简介
**PP-StructureV3** 产线在通用版面解析v1产线的基础上,强化了版面区域检测、表格识别、公式识别的能力,增加了图表理解和多栏阅读顺序的恢复能力、结果转换 Markdown 文件的能力,在多种文档数据中,表现优异,可以处理较复杂的文档数据。本产线同时提供了灵活的服务化部署方式,支持在多种硬件上使用多种编程语言调用。不仅如此,本产线也提供了二次开发的能力,您可以基于本产线在您自己的数据集上训练调优,训练后的模型也可以无缝集成。
# 二、关键指标
Method Type |
Methods |
OverallEdit↓ |
TextEdit↓ |
FormulaEdit↓ |
TableEdit↓ |
Read OrderEdit↓ |
EN |
ZH |
EN |
ZH |
EN |
ZH |
EN |
ZH |
EN |
ZH |
Pipeline Tools |
PP-structureV3 |
0.147 |
0.212 |
0.059 |
0.09 |
0.295 |
0.535 |
0.159 |
0.109 |
0.075 |
0.114 |
MinerU-0.9.3 |
0.15 |
0.357 |
0.061 |
0.215 |
0.278 |
0.577 |
0.18 |
0.344 |
0.079 |
0.292 |
MinerU-1.3.11 |
0.166 |
0.310 |
0.0826 |
0.2000 |
0.3368 |
0.6236 |
0.1613 |
0.1833 |
0.0834 |
0.2316 |
Marker-1.2.3 |
0.336 |
0.556 |
0.08 |
0.315 |
0.53 |
0.883 |
0.619 |
0.685 |
0.114 |
0.34 |
Mathpix |
0.191 |
0.365 |
0.105 |
0.384 |
0.306 |
0.454 |
0.243 |
0.32 |
0.108 |
0.304 |
Docling-2.14.0 |
0.589 |
0.909 |
0.416 |
0.987 |
0.999 |
1 |
0.627 |
0.81 |
0.313 |
0.837 |
Pix2Text-1.1.2.3 |
0.32 |
0.528 |
0.138 |
0.356 |
0.276 |
0.611 |
0.584 |
0.645 |
0.281 |
0.499 |
Unstructured-0.17.2 |
0.586 |
0.716 |
0.198 |
0.481 |
0.999 |
1 |
1 |
0.998 |
0.145 |
0.387 |
OpenParse-0.7.0 |
0.646 |
0.814 |
0.681 |
0.974 |
0.996 |
1 |
0.284 |
0.639 |
0.595 |
0.641 |
Expert VLMs |
GOT-OCR |
0.287 |
0.411 |
0.189 |
0.315 |
0.36 |
0.528 |
0.459 |
0.52 |
0.141 |
0.28 |
Nougat |
0.452 |
0.973 |
0.365 |
0.998 |
0.488 |
0.941 |
0.572 |
1 |
0.382 |
0.954 |
Mistral OCR |
0.268 |
0.439 |
0.072 |
0.325 |
0.318 |
0.495 |
0.6 |
0.65 |
0.083 |
0.284 |
OLMOCR-sglang |
0.326 |
0.469 |
0.097 |
0.293 |
0.455 |
0.655 |
0.608 |
0.652 |
0.145 |
0.277 |
SmolDocling-256M_transformer |
0.493 |
0.816 |
0.262 |
0.838 |
0.753 |
0.997 |
0.729 |
0.907 |
0.227 |
0.522 |
General VLMs |
Gemini2.0-flash |
0.191 |
0.264 |
0.091 |
0.139 |
0.389 |
0.584 |
0.193 |
0.206 |
0.092 |
0.128 |
Gemini2.5-Pro |
0.148 |
0.212 |
0.055 |
0.168 |
0.356 |
0.439 |
0.13 |
0.119 |
0.049 |
0.121 |
GPT4o |
0.233 |
0.399 |
0.144 |
0.409 |
0.425 |
0.606 |
0.234 |
0.329 |
0.128 |
0.251 |
Qwen2-VL-72B |
0.252 |
0.327 |
0.096 |
0.218 |
0.404 |
0.487 |
0.387 |
0.408 |
0.119 |
0.193 |
Qwen2.5-VL-72B |
0.214 |
0.261 |
0.092 |
0.18 |
0.315 |
0.434 |
0.341 |
0.262 |
0.106 |
0.168 |
InternVL2-76B |
0.44 |
0.443 |
0.353 |
0.29 |
0.543 |
0.701 |
0.547 |
0.555 |
0.317 |
0.228 |
以上部分数据出自:
* OmniDocBench
* OmniDocBench: Benchmarking Diverse PDF Document Parsing with Comprehensive Annotations
# 三、端到端推理benchmark
## 3.1 测试条件
* Paddle 3.0正式版
* PaddleOCR 3.0.0正式版
* MinerU 1.3.10
* CUDA 11.8
* cuDNN 8.9
## 3.2 测试数据
1. 本地推理
测试硬件:NVIDIA Tesla V100 + Intel Xeon Gold 6271C
|
产线配置 |
平均每页耗时(s) |
平均CPU利用率(%) |
峰值RAM用量(MB) |
平均RAM用量(MB) |
平均GPU利用率(%) |
峰值VRAM用量(MB) |
平均VRAM用量(MB) |
PP-StructureV3 |
基础配置 |
1.77 |
111.4 |
6822.4 |
5278.2 |
38.9 |
17403 |
16909.3 |
使用图表识别 |
4.09 |
105.3 |
5628 |
4085.1 |
24.7 |
17403 |
17030.9 |
使用 PP-OCRv5_mobile_det + PP-OCRv5_mobile_rec 轻量模型 |
1.56 |
113.7 |
6712.9 |
5052 |
29.1 |
10929 |
10840.7 |
使用 PP-FormulaNet-M 轻量公式识别模型 |
1.42 |
112.9 |
6944.1 |
5193.6 |
38 |
16390 |
15840 |
使用 PP-OCRv5_mobile_det + PP-OCRv5_mobile_rec + PP-FormulaNet-M |
1.15 |
114.8 |
6666.5 |
5105.4 |
26.1 |
8606 |
8517.2 |
使用 PP-OCRv5_mobile_det + PP-OCRv5_mobile_rec + PP-FormulaNet-M,文本检测模型输入最大尺寸设置为 1200 |
0.99 |
113 |
7172.9 |
5686.4 |
29.2 |
8776 |
8680.8 |
MinerU |
- |
1.57 |
142.9 |
13655.8 |
12083 |
43.3 |
32406 |
9915.4 |
测试硬件:NVIDIA A100 + Intel Xeon Platinum 8350C
|
Pipeline Configurations |
Average time per page (s) |
Average CPU (%) |
Peak RAM Usage (MB) |
Average RAM Usage (MB) |
Average GPU (%) |
Peak VRAM Usage (MB) |
Average VRAM Usage (MB) |
PP-StructureV3 |
Basic |
1.12 |
109.8 |
9418.3 |
7977.9 |
29.8 |
22294 |
21638.4 |
Use chart recognition pipeline |
2.76 |
103.7 |
9253.6 |
7840.6 |
24 |
22298 |
21555.3 |
Use PP-OCRv5_mobile_det + PP-OCRv5_mobile_rec |
1.04 |
110.7 |
9520.8 |
8034.3 |
22 |
12490 |
12383.1 |
Use PP-FormulaNet_plus-M |
0.95 |
111.4 |
9272.9 |
7939.9 |
28.1 |
22350 |
21498.4 |
Use PP-OCRv5_mobile_det + PP-OCRv5_mobile_rec + PP-FormulaNet_plus-M |
0.89 |
112.1 |
9457.2 |
8031.5 |
18.5 |
11642 |
11433.6 |
Use PP-OCRv5_mobile_det + PP-OCRv5_mobile_rec + PP-FormulaNet_plus-M, and max length of text detection set to 1200 |
0.64 |
113.5 |
10401.1 |
8688.8 |
23.7 |
11716 |
11453.9 |
MinerU |
- |
1.06 |
168.3 |
18690.4 |
17213.8 |
27.5 |
78760 |
15119 |
2. 服务化部署
输入数据:1500张图像,包含表格、公式、印章、图表等元素。
使用基础配置。
实例数 |
并发请求数 |
吞吐 |
平均时延(s) |
成功请求数/总请求数 |
4卡*1 |
4 |
1.69 |
2.36 |
1 |
4卡*4 |
16 |
4.05 |
3.87 |
1 |
# 四、PP-StructureV3 Demo示例
更多示例
# 五、使用方法和常见问题
1. 默认模型是什么配置,如果需要更高精度、更快速度、或者更小显存,应该调哪些参数或者更换哪些模型,对结果影响大概有多大?
在“使用轻量OCR模型+轻量公式模型,文本检测max 1200”的基础上,将产线配置文件中的use_chart_recognition设置为False,不加载图表识别模型,可以进一步减少显存用量。在V100测试环境中,峰值和平均显存用量分别从8776.0 MB和8680.8 MB降低到6118.0 MB和6016.7 MB;在A100测试环境中,峰值和平均显存用量分别从11716.0 MB和11453.9 MB降低到9850.0 MB和9593.5 MB。
在Python API或CLI设置device为<设备类型>:<设备编号1>,<设备编号2>...(例如gpu:0,1,2,3)可实现多卡并行推理。如果内置的多卡并行推理功能提速效果仍不满足预期,可参考多进程并行推理示例代码,结合具体场景进行进一步优化:[多进程并行推理](https://github.com/PaddlePaddle/PaddleX/blob/develop/docs/pipeline_usage/instructions/parallel_inference.md#%E5%A4%9A%E8%BF%9B%E7%A8%8B%E5%B9%B6%E8%A1%8C%E6%8E%A8%E7%90%86%E7%A4%BA%E4%BE%8B)。
2. 服务化部署的常见问题
(1)服务可以并发处理请求吗?
对于基础服务化部署方案,服务同一时间只处理一个请求,该方案主要用于快速验证、打通开发链路,或者用在不需要并发请求的场景;
对于高稳定性服务化部署方案,服务默认在同一时间只处理一个请求,但用户可以参考服务化部署指南,通过调整配置实现水平扩展,以使服务同时处理多个请求。
(2)如何降低时延、提升吞吐?
无论使用哪一种服务化部署方案,都可以通过启用高性能推理插件提升模型推理速度,从而降低处理时延。
此外,对于高稳定性服务化部署方案,通过调整服务配置,设置多个实例,也可以充分利用部署机器的资源,有效提升吞吐。