入门

快速开始与 API安装在线 OCRCode generator (EN)

模型与产线

PP-OCRv6 模型支持语言PP-StructureV3PaddleOCR-VL

部署与集成

Serving & API (EN)PaddleOCR.js (EN)MCP server (EN)

排错与升级

常见错误从 2.x 迁移Releases (EN)

评估

Our benchmark (EN)Compare OCR tools (EN)License & cost (EN)

工具

在线 OCR安装命令生成器Code generator (EN)报错修复助手2.x → 3.x 代码转换语言代码查询

语言

English简体中文日本語在线体验 OCR
文档解析 · 视觉语言模型

PaddleOCR-VL:版本、安装、服务化部署与基准测试

PaddleOCR-VL 是百度开源的文档解析方案:先由版面分析模型找出页面上的每个区块,再由一个 0.9B 视觉语言模型把每个区块识别为 Markdown、HTML 表格或 LaTeX。1.6 版(2026 年 5 月 28 日)是 PaddleOCR 3.7.0 的默认版本,在第三方 OmniDocBench v1.6_full 榜单上得分 96.34——在列出的 35 个系统中排名第三。

更新于 14 分钟阅读
本页目录
  1. PaddleOCR-VL 是什么
  2. 版本:v1、1.5 与 1.6
  3. 基准测试:PaddleOCR-VL 处于什么水平
  4. 硬件要求
  5. 安装
  6. Python 与命令行用法
  7. 服务化部署:vLLM、SGLang、FastDeploy、llama.cpp
  8. Apple Silicon、AMD、昇腾及其他硬件
  9. Hugging Face 与 Transformers
  10. 托管 API(无需 GPU)
  11. HPD-Parsing:主打吞吐量的姊妹方案
  12. 微调
  13. 常见问题

简短回答:先安装 GPU 版 PaddlePaddle 3.2.1 及以上,再 pip install "paddleocr[doc-parser]",然后调用 PaddleOCRVL().predict("file.pdf")。这会运行完整产线——版面分析加上 0.9B VLM——为每一页输出 Markdown 和 JSON。生产环境中,把 VLM 放到 vLLM、SGLang 或 FastDeploy 推理服务后面,再通过 vl_rec_backend 让产线调用它。没有 GPU 的话,官方托管的 PaddleOCR API 提供的是同一个模型。

我们测了什么、没测什么。我们的测试机没有 GPU,因此没有运行过 PaddleOCR-VL,本页也不报告任何我们自己测得的速度。下面的每条命令和每个参数都已对照 PaddleOCR 3.7.0 wheel、PaddleX 3.7.2 配置和官方文档核实,行号见文末来源。如果想看一个我们在 CPU 上实际运行并计时过的文档解析方案,请见 PP-StructureV3。

PaddleOCR-VL 是什么#

PaddleOCR-VL 是一条两阶段产线,而不是单个模型。1第一阶段是版面分析模型:检测页面上的每个元素(段落、标题、表格、公式、图表、印章),排好阅读顺序并裁剪出来。第二阶段是一个小型视觉语言模型:逐个读取裁剪出的区块,输出 Markdown、HTML 表格、LaTeX 或图表数据表。最后产线按阅读顺序把各部分重新拼接起来。

1 · 输入图片或 PDFPDF 会被拆成单页。方向分类和弯曲矫正可选,默认关闭。
2 · 版面PP-DocLayoutV3一次前向即得到 25 种区块类型、多边形框和阅读顺序(v1 中为 V2)。
3 · 识别0.9B VLMNaViT 风格编码器 + ERNIE-4.5-0.3B 读取每个区块。
4 · 输出Markdown + JSON按页输出,或用 restructure_pages() 跨页合并。

VLM 组件由 NaViT 风格的动态分辨率视觉编码器和 ERNIE-4.5-0.3B 语言模型组成。1Hugging Face API 给出的参数量为 958,588,736(BF16 safetensors),三个版本都一样——v1、1.5 和 1.6 共用同一套架构。4PaddleOCR-VL-1.6-0.9B 这类名称中的“0.9B”仅指这个 VLM 组件,并不是另一种模型规模。1

请使用完整产线。官方文档对此说得很直白:通过 Transformers、vLLM、SGLang 或 FastDeploy 把整页图片直接送进 VLM,与运行 PaddleOCR-VL“is not equivalent”(并不等价)。如果发现精度差或出现幻觉文字,首先检查版面分析阶段有没有在运行。1

选 PaddleOCR-VL 还是 PP-StructureV3?#

两者都能把文档转换为 Markdown 和 JSON,也都包含在 paddleocr[doc-parser] 中。README 的定位是:需要更细粒度坐标(例如表格单元格框和文本行框)时选 PP-StructureV3,VL 系列不返回这些坐标。5PaddleOCR-VL 则是精度之选:在 OmniDocBench v1.5 榜单上,PaddleOCR-VL-1.5 得分 94.50,PP-StructureV3 为 86.73。7PP-StructureV3 在 CPU 上就能流畅运行;PaddleOCR-VL 则是为 GPU 设计的。

版本:v1、1.5 与 1.6#

  1. PaddleOCR-VL(v1)随 PaddleOCR 3.3.0 发布。支持 109 种语言;文本、表格、公式和图表;arXiv 2510.14528。54
  2. 支持 Hugging Face Transformers。4
  3. 官方支持 vLLM。4
  4. PaddleOCR-VL-1.5随 PaddleOCR 3.4.0 发布。新的 PP-DocLayoutV3 版面模型支持多边形框,新增印章识别、文字定位识别(spotting)、跨页表格合并和标题层级;新增藏文和孟加拉文;arXiv 2601.21957。15
  5. 1.5 支持 llama.cpp(GGUF)。4
  6. PaddleOCR-VL-1.6随 PaddleOCR 3.6.0 发布。架构与 1.5 相同;据百度称,古籍、生僻字、印章、文字定位和图表的效果更好。技术报告 arXiv 2606.03264 于 6 月 3 日发布。19
  7. 发布独立的高吞吐文档解析方案 HPD-Parsing(见下文)。5
版本Python / 命令行取值版面模型VLM 组件
PaddleOCR-VL(v1)v1PP-DocLayoutV2PaddleOCR-VL-0.9B
PaddleOCR-VL-1.5v1.5PP-DocLayoutV3PaddleOCR-VL-1.5-0.9B
PaddleOCR-VL-1.6v1.6(默认)PP-DocLayoutV3PaddleOCR-VL-1.6-0.9B

版面模型和组件名来自 PaddleX 3.7.2 的产线配置。3VLM 通过任务提示词工作:v1 支持 OCR:、Table Recognition:、Formula Recognition: 和 Chart Recognition:;1.5 和 1.6 新增 Spotting: 和 Seal Recognition:。4PP-DocLayoutV2 和 V3 使用同样的 25 个标签,包括 display_formula、inline_formula、vertical_text、seal 和 chart。15V3 在一次前向中同时预测多边形框和阅读顺序;它自己的模型卡称 GLM-OCR 也在使用它。15

109 种还是 111 种语言?使用教程说该系列支持 109 种语言。README 的 3.4.0 条目说 PaddleOCR-VL-1.5 支持 111 种,而 1.5 的模型卡只说新增了藏文和孟加拉文,没有给出总数。154最可能的解读是 v1 为 109 种、1.5 起为 111 种,但没有任何官方页面明确这样说过。

基准测试:PaddleOCR-VL 处于什么水平#

文档解析领域引用最多的基准是 OmniDocBench,由 OpenDataLab 发布——这个团队也在开发 MinerU,而 MinerU 就出现在同一张榜单上。下面的榜单来自 OmniDocBench 自己的 README,而不是百度。各行数据按原样照录。6其中“综合得分”(Overall)为 ((1 − TextEdit) × 100 + TableTEDS + FormulaCDM) / 3,基于 1,651 页计算。6

前 10 名相差不到 3.2 分

OmniDocBench v1.6_full 端到端综合得分,越高越好。取自截至 2026 年 10 月 27 日 OmniDocBench README 中 35 行数据的前 10 名。

模型(规模)综合得分
TeleOCR (1.2B)96.91
OvisOCR2 (0.8B)96.47
PaddleOCR-VL-1.6 (0.9B)96.34
MinerU2.5-Pro (1.2B)95.75
GLM-OCR (0.9B)95.22
PaddleOCR-VL-1.5 (0.9B)94.93
PaddleOCR-VL v1 (0.9B)94.18
Unlimited-OCR (3B)94.00
Qianfan-OCR (4B)93.90
Youtu-Parsing (2.5B)93.74
由 OpenDataLab 发布于 OmniDocBench README(表格标题为“v1.6_full”),2026-10-27 获取。非 paddleocr.dev 实测。

在这十个系统中,PaddleOCR-VL-1.6 的公式得分最高(CDM 97.53),TeleOCR 的表格得分领先,OvisOCR2 的文本编辑距离最好。6作为参照,同一张表中 Gemini 3 Pro 为 92.91,dots.ocr 为 90.77,GPT-5.2 为 86.59,MinerU 产线为 86.47。GPT-4o 和 PP-StructureV3 不在这张表中。6请记住,在一个 1,651 页的基准上相差 1–2 分,对你自己的文档说明不了太多——请用自己的样本测试。

关于这些数字的三点说明。(1) 百度自己的文档给出的 1.6 得分是 96.33 或“96.3%”;OmniDocBench 的表格写的是 96.34。96(2) OmniDocBench 的更新日志称,基准已于 2026 年 4 月 30 日升级(“from v1.6 to v1.7”),但表格标题仍是“v1.6_full”;我们沿用表格标题。6(3) 不同版本 OmniDocBench 的分数不可直接比较:1.5 在 v1.5 榜单上得 94.50,在 v1.6_full 上得 94.93。7

每个版本提升了多少?#

每次发布都有提升

拍摄页面的提升最大。综合得分。OmniDocBench v1.6_full 为第三方基准;Real5-OmniDocBench(扫描、弯曲、屏幕翻拍、光照、倾斜)由 PaddleOCR 团队构建。

OmniDocBench v1.6_full(第三方)Real5-OmniDocBench(官方自报)
版本OmniDocBench v1.6_full(第三方)Real5-OmniDocBench(官方自报)
PaddleOCR-VL v194.1885.54
PaddleOCR-VL-1.594.9392.05
PaddleOCR-VL-1.696.3493.19
OmniDocBench README(main 分支)与各 Hugging Face 仓库中的 .eval_results/real5_omnidocbench.yaml。Real5-OmniDocBench 是百度自己的基准。

在 Real5-OmniDocBench 上,从 v1 到 1.5 的跃升主要来自困难样本:倾斜页面从 77.47 提升到 91.66,屏幕翻拍从 82.54 提升到 91.76,这与 PP-DocLayoutV3 改用多边形版面框相吻合。8请把这些当作厂商数据看待。在独立榜单上提升幅度更小:v1 到 1.5 为 +0.75,1.5 到 1.6 为 +1.41。6

硬件要求#

在 NVIDIA GPU 上,要求取决于运行 VLM 的推理引擎:1

VLM 推理引擎计算能力(CC)CUDA
PaddlePaddle(默认)≥ 7.0≥ 11.8
Transformers≥ 7.0≥ 11.8
vLLM≥ 8.0≥ 12.6
SGLang8.0 – 低于 12.0≥ 12.6
FastDeploy8.0 – 低于 12.0≥ 12.6
  • T4 和 V100(CC 7.x)可以启动 vLLM,但文档说“prone to timeouts or OOM”(容易超时或显存不足),不推荐使用。这些显卡请使用 PaddlePaddle 推理引擎。1
  • RTX 30/40/50 和 A10/A100 的 CC 均在 8 以上,所有后端都可用,只是 RTX 50(Blackwell,CC 12)不在 SGLang 和 FastDeploy 的支持范围内。Blackwell 有单独的指南:需要支持 CUDA 12.9+ 的驱动和 -sm120 镜像。11
  • 显存:仓库中没有任何地方给出最低要求。唯一与显存相关的说明是针对 NVIDIA RTX 3060 的调优建议:为 vLLM 或 FastDeploy 设置 gpu-memory-utilization: 0.7。1
  • x64 CPU:支持矩阵把 x64 CPU 上的本地 PaddlePaddle 推理标为支持,但 MCP 服务器文档说 VL 系列“CPU inference is not recommended”(不推荐 CPU 推理)。116我们没有测过耗时。

各推理方式支持哪些设备#

版面 + VLM 推理引擎NVIDIAx64 CPUApple SiliconAMD昇腾
PaddlePaddle支持支持支持支持待定
Transformers支持支持待定待定待定
+ vLLM 服务支持不支持不支持支持支持
+ SGLang 服务支持不支持不支持待定待定
+ FastDeploy 服务支持不支持不支持待定待定
+ MLX-VLM 服务不支持不支持支持不支持不支持
+ llama.cpp 服务支持支持待定待定待定

“+ 服务”各行表示版面分析在客户端用 PaddlePaddle 运行,VLM 在对应的推理服务上运行。“待定”表示文档标注为进行中或尚未验证。官方矩阵还涵盖昆仑芯、海光、沐曦、天数智芯和 Intel Arc(见下文)。vLLM、SGLang 和 FastDeploy 不能在 Windows 上原生运行,因此在 Windows 上请使用 Docker。1

安装#

VL 指南要求 PaddlePaddle 3.2.1 或更高版本、Python 3.9–3.13,并建议使用虚拟环境。不要同时安装 CPU 版和 GPU 版 PaddlePaddle。1

python -m venv .venv_paddleocr && source .venv_paddleocr/bin/activate
python -m pip install paddlepaddle-gpu==3.2.1 -i https://www.paddlepaddle.org.cn/packages/stable/cu126/
python -m pip install -U "paddleocr[doc-parser]"
python -m venv .venv_paddleocr && source .venv_paddleocr/bin/activate
python -m pip install paddlepaddle==3.2.1 -i https://www.paddlepaddle.org.cn/packages/stable/cpu/
python -m pip install -U "paddleocr[doc-parser]"
# 约 8 GB 的镜像,已预装 PaddlePaddle;需要支持 CUDA 12.6+ 的驱动
docker run -it --gpus all --network host --user root \
  ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddleocr-vl:latest-nvidia-gpu \
  /bin/bash
# 然后在容器内运行 paddleocr 命令行或 Python
# 离线版(约 10 GB):...:latest-nvidia-gpu-offline

两点来自我们自己测试的版本说明。使用 PyPI 上默认的 paddlepaddle(撰写本文时为 3.3.1)时,我们在 CPU 上运行 PP-OCRv6 推理会因 ConvertPirAttribute2RuntimeAttribute 错误而崩溃——所以我们锁定了指南中给出的确切版本。另外,如果看到 A dependency error occurred during pipeline creation,说明安装 paddleocr 时没有带 [doc-parser] extra。两者都收录在我们的报错排查中;各操作系统和 CUDA 选项的完整组合见安装教程。

Python 与命令行用法#

from paddleocr import PaddleOCRVL

pipeline = PaddleOCRVL()          # 默认加载 v1.6
# pipeline = PaddleOCRVL(pipeline_version="v1.5")
# pipeline = PaddleOCRVL(engine="transformers")
# pipeline = PaddleOCRVL(device="cpu")   # Apple Silicon

for res in pipeline.predict("paper.png"):
    res.print()
    res.save_to_json(save_path="output")
    res.save_to_markdown(save_path="output")
    res.save_to_word(save_path="output")   # .docx
paddleocr doc_parser -i paper.png --save_path ./output

# 指定版本,或切换推理引擎
paddleocr doc_parser -i paper.png --pipeline_version v1.5 --save_path ./output
paddleocr doc_parser -i paper.png --engine transformers --save_path ./output

# 先校正旋转或弯曲的页面
paddleocr doc_parser -i photo.jpg --use_doc_orientation_classify True --use_doc_unwarping True

pipeline_version 只接受 "v1"、"v1.5" 和 "v1.6",分别对应 PaddleX 产线 PaddleOCR-VL、PaddleOCR-VL-1.5 和 PaddleOCR-VL-1.6。2每个结果的 parsing_res_list 结构与 PP-StructureV3 相同——block_label、block_content、block_bbox、block_order——保存方法有 save_to_json、save_to_markdown、save_to_html、save_to_xlsx、save_to_word 和 save_to_img。1

多页 PDF:restructure_pages()#

PDF 会按页各返回一个结果。要合并跨页延续的表格、在整篇文档范围内重建标题层级,或把所有内容合并成一个结果,请把页面列表传给 restructure_pages():1

pythonpdf_to_markdown.py
from paddleocr import PaddleOCRVL

pipeline = PaddleOCRVL()
pages = list(pipeline.predict("report.pdf"))

# 代码中 merge_tables 和 relevel_titles 默认已经是 True
merged = pipeline.restructure_pages(pages, concatenate_pages=True)

for res in merged:        # concatenate_pages=True 时只有一个结果
    res.save_to_markdown(save_path="output")

PaddleOCR 3.7.0 中的签名是 restructure_pages(res_list, merge_tables=True, relevel_titles=True, concatenate_pages=False),返回一个列表。2官方示例显式传入了 merge_tables=True, relevel_titles=True,看起来像是默认关闭;实际上并非如此。只有 concatenate_pages 需要手动打开。另外还有一个更简单的 concatenate_markdown_pages(markdown_list) 辅助方法,与 PP-StructureV3 中的那个相同。

常用参数#

参数默认值作用
pipeline_version"v1.6"加载哪个版本。
vl_rec_backendnative(配置)native、vllm-server、sglang-server、fastdeploy-server、mlx-vlm-server、llama-cpp-server。
vl_rec_server_url—VLM 服务的 URL,例如 http://localhost:8118/v1。
vl_rec_max_concurrency—客户端向服务端发送的并发请求数。
use_layout_detectionTrue关闭后,整张图片会连同一个提示词直接送给 VLM。
prompt_label"ocr"仅在关闭版面检测时生效:ocr、formula、table、chart、spotting、seal。
use_chart_recognitionFalse把图表转换为表格。
use_seal_recognitionFalse识别印章(1.5+)。
use_ocr_for_image_blockFalse同时识别被标为图片的区块中的文字。
use_doc_orientation_classify / use_doc_unwarpingFalse在版面分析前校正旋转或弯曲的页面。
merge_layout_blocksTrue合并相邻的版面区块。
layout_shape_mode"auto"框的几何形状:rect、quad、poly 或 auto。
markdown_ignore_labels7 个标签不写入 Markdown 的区块:number、footnote、header、header_image、footer、footer_image、aside_text。
max_new_tokens、temperature、top_p、repetition_penalty—VLM 采样参数。

vl_rec_* 类参数只能在构造函数中设置;其余参数既可在构造函数中设置,也可在每次调用 predict() 时设置,但 prompt_label、layout_shape_mode 和采样参数只能在 predict() 中设置。默认值来自使用文档和 3.7.0 源码;prompt_label 的取值来自 PaddleX 3.7.2 代码,它接受六个标签,尽管报错信息里只列出四个。123有一处矛盾:文档给出 layout_threshold 的默认值为 0.5,而 PaddleX 配置中 1.5 和 1.6 使用 0.3,v1 则按类别使用 0.4–0.5。3要查看你的产线实际使用的配置,可调用 pipeline.export_paddlex_config_to_yaml("vl.yaml");修改后再用 PaddleOCRVL(paddlex_config="vl.yaml") 传回。2

服务化部署:vLLM、SGLang、FastDeploy、llama.cpp#

上面的快速开始方式在一个 Python 进程内运行全部内容。文档称其适合“rapid validation”(快速验证),生产环境则推荐使用独立的 VLM 推理服务。1分工如下:VLM 服务端只运行 0.9B 模型;你的客户端——仍然是 PaddleOCRVL 产线——在本地做版面分析,再把裁剪出的区块发送给服务端。由于客户端仍要运行版面模型,文档建议客户端也使用 GPU。1

启动 VLM 推理服务#

docker run -it --rm --gpus all --network host \
  ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddleocr-genai-vllm-server:latest-nvidia-gpu \
  paddleocr genai_server --model_name PaddleOCR-VL-1.6-0.9B --host 0.0.0.0 --port 8118 --backend vllm
docker run -it --rm --gpus all --network host \
  ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddleocr-genai-fastdeploy-server:latest-nvidia-gpu \
  paddleocr genai_server --model_name PaddleOCR-VL-1.6-0.9B --host 0.0.0.0 --port 8118 --backend fastdeploy
python -m venv .venv_vlm && source .venv_vlm/bin/activate
python -m pip install "paddleocr[doc-parser]"
paddleocr install_genai_server_deps vllm      # 或:sglang、fastdeploy
paddleocr genai_server --model_name PaddleOCR-VL-1.6-0.9B --backend vllm --port 8118
# GGUF 文件:huggingface.co/PaddlePaddle/PaddleOCR-VL-1.6-GGUF
./build/bin/llama-server \
  -m /path/to/PaddleOCR-VL-1.6-GGUF.gguf \
  --mmproj /path/to/PaddleOCR-VL-1.6-GGUF-mmproj.gguf \
  --port 8111 --host 0.0.0.0 --temp 0

以上命令原样摘自使用教程。1install_genai_server_deps 安装的 vLLM 和 SGLang 构建面向 CUDA 12.6,且 vLLM/SGLang 需要 FlashAttention 2.8.2。Transformers 推理引擎不能与 vLLM 或 SGLang 共用一个环境,因为它们需要不同版本的 transformers。1服务端调优参数写在一个 YAML 文件里,通过 --backend_config 传入(例如 vLLM 的 gpu-memory-utilization 和 max-num-seqs)。

Docker 镜像大小离线版
paddleocr-vl(完整产线)~8 GB~10 GB
paddleocr-genai-vllm-server~13 GB~15 GB
paddleocr-genai-fastdeploy-server~43 GB~45 GB

让产线调用推理服务#

from paddleocr import PaddleOCRVL

pipeline = PaddleOCRVL(
    vl_rec_backend="vllm-server",      # 或 sglang-server、fastdeploy-server
    vl_rec_server_url="http://localhost:8118/v1",
    vl_rec_max_concurrency=16,         # 根据你的 GPU 调整
)
for res in pipeline.predict("report.pdf"):
    res.save_to_markdown(save_path="output")
paddleocr doc_parser --input report.pdf \
  --vl_rec_backend vllm-server \
  --vl_rec_server_url http://localhost:8118/v1
# 用普通 `vllm serve` 启动的服务(端口 8000):传入 HF 仓库 ID
paddleocr doc_parser --input report.pdf \
  --vl_rec_backend vllm-server \
  --vl_rec_server_url http://localhost:8000/v1 \
  --vl_rec_api_model_name 'PaddlePaddle/PaddleOCR-VL-1.6'

托管的 VLM 端点用法相同,另加 --vl_rec_api_key。根据文档,SiliconFlow(硅基流动)只提供 v1 和 1.5(请使用 pipeline_version="v1.5"),Novita AI 只提供 v1。1

完整的 HTTP API#

如果需要一个运行整条产线的 HTTP 接口,文档提供了 Docker Compose 方案(监听 8080 端口)或 paddlex --serve --pipeline PaddleOCR-VL。两者都一次只处理一个请求;需要并发时,文档指向另一套高性能服务化部署(HPS)方案。1请求格式和客户端见我们的服务化部署与 API 指南(英文)。

官方公布的吞吐量(百度数据)#

百度公布了 PaddleOCR-VL-1.5 在 OmniDocBench v1.5 上的端到端吞吐量(单张 A100,批大小 512):FastDeploy 2.3 为 1.4335 页/秒,vLLM 0.10.2 为 1.1433,SGLang 0.5.2 为 1.0091。同一张表中,MinerU2.5 在 vLLM 上为 0.9984 页/秒。10这些表格在仓库中只以图片形式存在,数值由我们转录。1.6 的文档称其推理速度与 1.5 相同。9我们没有自己的 GPU 数据。

Apple Silicon、AMD、昇腾及其他硬件#

每种加速硬件都有自己的官方指南,各自注明了一款经过验证的设备:11

硬件验证设备VLM 运行方式
Apple SiliconM4(列出了 M1–M3,未确认)PaddlePaddle 在 CPU 上运行,或 pip install "mlx-vlm>=0.3.11"、mlx_vlm.server --port 8111,客户端使用 --vl_rec_backend mlx-vlm-server。不支持 Docker。
AMD GPUMI300XvLLM 镜像 paddleocr-genai-vllm-server:latest-amd-gpu(约 31 GB)
NVIDIA BlackwellRTX 5070支持 CUDA 12.9+ 的驱动、-sm120 镜像、从 cu129 源安装 PaddlePaddle
华为昇腾910B不支持本地直接推理;使用 vLLM 服务
昆仑芯 XPUP800PaddlePaddle 或 FastDeploy
沐曦 GPUC550PaddlePaddle 或 FastDeploy
海光 DCUK100AIPaddlePaddle 或 vLLM
Intel ArcArc B60 ProvLLM
天数智芯 GPUBI-V150PaddlePaddle 或 FastDeploy

Hugging Face 与 Transformers#

模型权重发布在 Hugging Face 上:PaddlePaddle/PaddleOCR-VL、-1.5 和 -1.6,另有一个 GGUF 版本和独立的 PP-DocLayoutV3 版面模型。模型卡中附有一个直接调用 Transformers 的示例,发送一张图片和一个任务提示词,例如 OCR: 或 Table Recognition:;1.5 和 1.6 需要 transformers>=5.0.0。4这是元素级识别——适合处理裁剪好的表格或公式,但不是整页解析器。如果要通过 Transformers 处理整篇文档,请保留产线并切换其推理引擎:PaddleOCRVL(engine="transformers")。1

托管 API(无需 GPU)#

PaddleOCR 3.7.0 自带官方托管服务的客户端,文档解析默认使用 PaddleOCR-VL-1.6。13你需要从 AI Studio(飞桨星河社区)获取访问令牌。我们对照 3.7.0 源码核实了代码,但没有实际调用过该服务。

# export PADDLEOCR_ACCESS_TOKEN="..."
from paddleocr import PaddleOCRClient, Model

client = PaddleOCRClient()
result = client.parse_document(
    file_path="report.pdf",
    model=Model.PADDLE_OCR_VL_16,   # 默认值
)
for page in result.pages:
    print(page.markdown_text)
client.close()
export PADDLEOCR_ACCESS_TOKEN="..."
paddleocr api --model_type doc_parsing --file_path report.pdf

AI Studio 的配额页面称,每个用户每个模型每天最多解析 3,000 页,且每个文件只解析前 100 页;异步 API 指南则说单个请求最多支持 1,000 页 PDF。两份官方页面说法不一致,请用自己的文件测试。14我们能查阅到的页面上都没有公布价格。详细说明、TypeScript 和 Go 的 SDK 以及错误码见我们的 API 页面(英文)。

HPD-Parsing:主打吞吐量的姊妹方案#

HPD-Parsing 于 2026 年 7 月 22 日发布,是一个独立的约 1B 文档 VLM,基于 InternVL3.5-1B 构建,面向大批量解析。它不是把一页解码成一条长 token 序列,而是由一个主版面分支派生出多个内容分支并行解码,并通过渐进式多 token 预测(Progressive Multi-Token Prediction,P-MTP)进一步减少解码步数。12

  • 精度(官方自报):在 OmniDocBench v1.6 上综合得分 94.91。HPD-Parsing 不在 OmniDocBench README 的表格中,因此没有独立数据;作为对比,PaddleOCR-VL-1.6 在该表中为 96.34。126
  • 速度(官方自报):在 A800 80GB 上使用 vLLM、批大小 512 时为 2.68 页/秒、4,752.1 tokens/秒,自回归基线为 1.02 页/秒。12
  • 环境要求:NVIDIA GPU(已在 H100、H800、H20、A100、A800、A30、L20、RTX Pro 6000 上验证)、支持 CUDA 12.8+ 的驱动、Linux x86-64、Python 3.10–3.13,以及基于 v0.17.1 的定制 vLLM 构建。它完全不使用 paddleocr 包。12
bashHPD-Parsing 服务(Docker)
docker run -it --rm --gpus all --network host \
  ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/hpd-parsing-vllm:latest-nvidia-gpu

服务监听 8118 端口,兼容 OpenAI API;客户端每页都发送固定提示词 document parsing with fork.。12如果每 GPU 小时处理的页数比最后一点精度更重要,且你使用的是受支持的数据中心 GPU,选 HPD-Parsing;如果看重精度、更广泛的硬件支持以及 paddleocr 工具链,选 PaddleOCR-VL。

微调#

VLM 可以通过 ERNIEKit 进行监督微调(SFT);版面模型和阅读顺序模型则不能。1有一处不一致:v1 算法文档的 FAQ 在一个回答中说微调“not supported”(不支持),在另一个回答中又推荐用 ERNIEKit SFT。以使用教程中的 ERNIEKit 章节为准。

常见问题#

PaddleOCR-VL 和 PaddleOCR-VL-0.9B 有什么区别?

PaddleOCR-VL 是完整产线:版面模型加识别模型。PaddleOCR-VL-0.9B(以及 PaddleOCR-VL-1.5-0.9B、PaddleOCR-VL-1.6-0.9B)只是其中的 VLM 识别模型。不经过版面分析阶段、直接用 0.9B 模型处理整页,与完整产线并不等价,通常精度也更低。

如何指定使用 PaddleOCR-VL-1.6?

它是 PaddleOCR 3.6.0 及以后版本的默认版本:PaddleOCRVL() 就会加载它。如需显式指定,传入 pipeline_version="v1.6",命令行则用 --pipeline_version v1.6。对于 VLM 推理服务,模型名是 PaddleOCR-VL-1.6-0.9B。

PaddleOCR-VL 必须用 GPU 吗?

严格来说不是——官方矩阵把使用 PaddlePaddle 的 x64 CPU 和 Apple Silicon 列为支持——但文档说 VL 系列不推荐 CPU 推理。在 NVIDIA 上,PaddlePaddle 推理引擎需要计算能力 7.0+ 和 CUDA 11.8+;vLLM 需要 CC 8.0+ 和 CUDA 12.6+。没有 GPU 时,托管 API 是现实的选择,或者改用 PP-StructureV3,我们在 4 核 CPU 上运行过它。

PaddleOCR-VL 需要多少显存?

官方文档没有给出最低要求。唯一与显存相关的说明针对 RTX 3060:在 vLLM 或 FastDeploy 服务上把 gpu-memory-utilization 设为 0.7。我们没有运行过,所以不做猜测。

PaddleOCR-VL 有 API 吗?

有两种。官方托管 API(AI Studio)默认运行 PaddleOCR-VL-1.6;用访问令牌调用 PaddleOCRClient().parse_document(...) 或 paddleocr api --model_type doc_parsing 即可。或者自行部署:Docker Compose 提供一个监听 8080 端口的完整 HTTP 服务,paddleocr genai_server 则提供一个仅含 VLM、兼容 OpenAI 接口的服务供产线调用。见服务化部署与 API(英文)。

PaddleOCR-VL 比 MinerU 或 GPT-5 更好吗?

在 OmniDocBench v1.6_full 榜单上,PaddleOCR-VL-1.6(96.34)领先于 MinerU2.5-Pro(95.75)、Gemini 3 Pro(92.91)和 GPT-5.2(86.59),落后于 TeleOCR(96.91)和 OvisOCR2(96.47)。这只是一个基准;一两分的差距在你的文档上未必成立。我们的对比页面(英文)涵盖了更多工具。

PaddleOCR-VL 支持多少种语言?

文档说该系列支持 109 种;README 说 PaddleOCR-VL-1.5 支持 111 种,新增了藏文和孟加拉文。没有任何官方页面对两者做过统一说明。如果只是识别已知语言的纯文本行,PP-OCRv6 和支持语言列表可能更简单。

能把整个 PDF 转换成一个 Markdown 文件吗?

可以。先用 list(pipeline.predict("file.pdf")) 收集各页结果,再调用 pipeline.restructure_pages(pages, concatenate_pages=True)。跨页表格合并和标题层级重建默认都是开启的。

参考来源

  1. PaddleOCR-VL 使用教程,docs/version3.x/pipeline_usage/PaddleOCR-VL.en.md(仓库 commit dab3fe3,2026-09-16):架构(第 10 行)、版本说明(12–14)、完整产线警告(16–22)、硬件支持矩阵(44–237)、CC/CUDA 要求(240–247)、安装(312–345)、命令行与 Python(356–1690)、VLM 推理服务(1695–1855)、客户端(1856–1946)、调优(1948–2000)、服务化部署(2002–2160)、微调(3365–3369)。中文版:PaddleOCR-VL.md。
  2. PaddleOCR 3.7.0 包源码(PyPI wheel),paddleocr/_pipelines/paddleocr_vl.py:_AVAILABLE_PIPELINE_VERSIONS = ["v1","v1.5","v1.6"]、默认值 "v1.6"、六个 vl_rec_backend 取值、restructure_pages(res_list, merge_tables=True, relevel_titles=True, concatenate_pages=False)(第 25–34、219–229 行)。paddleocr.dev 于 2026-10-27 阅读。
  3. PaddleX 3.7.2 wheel(PyPI,2026-06-25):configs/pipelines/PaddleOCR-VL.yaml、PaddleOCR-VL-1.5.yaml、PaddleOCR-VL-1.6.yaml——版面模型(第 25/26 行)、VLM 组件名(84/60/60)、layout_threshold(28–53 / 29 / 29)、batch_size 64 与 use_queues(4–6);prompt_label 可接受的取值见 inference/pipelines/paddleocr_vl/pipeline.py:855-868。
  4. Hugging Face 模型卡与 API:PaddleOCR-VL(架构 L53,日期 L78–80,提示词 L172–182)、PaddleOCR-VL-1.5(L43、L55–67、L79–80)、PaddleOCR-VL-1.6(L53–81,transformers>=5.0.0 见 L164,提示词 L175 与 L197–204)。参数量 958,588,736(BF16 safetensors 总计)取自 huggingface.co/api/models/PaddlePaddle/PaddleOCR-VL*,2026-10-27 获取。
  5. PaddleOCR README.md:3.3.0 的发布条目(第 119 行)、3.4.0 / PaddleOCR-VL-1.5 及“111 languages”(107–113)、3.6.0 / PaddleOCR-VL-1.6(85–89)、HPD-Parsing(65–68)。
  6. OmniDocBench 榜单,github.com/opendatalab/OmniDocBench main 分支 README,2026-10-27 获取:标题为“OmniDocBench (v1.6_full)”的表格(第 524 行)、综合得分公式(519–521)、1651 页(104)、更新日志“[2026/04/30] Updated from v1.6 to v1.7”(71)与“[2026/09/11] Added TeleOCR, OvisOCR2, and Unlimited-OCR”(66)。各行数据按原样照录。
  7. OmniDocBench v1_5 分支 README:表格“OmniDocBench (v1.5)”(第 417 行)、PaddleOCR-VL-1.5 94.50(432–443)、PaddleOCR-VL 92.86(464–473)、PP-StructureV3 86.73(806–817)。
  8. Real5-OmniDocBench 得分取自各 PaddleOCR-VL Hugging Face 仓库中的 .eval_results/real5_omnidocbench.yaml。该数据集由 PaddleOCR 团队基于 OmniDocBench v1.5 构建(HF PaddleOCR-VL-1.6 模型卡 L275),因此属于官方自报数据。
  9. PaddleOCR-VL-1.6 算法文档 docs/version3.x/algorithm/PaddleOCR-VL/PaddleOCR-VL-1.6.en.md:OmniDocBench v1.6 得分 96.33(第 3 行),与 1.5“identical inference speeds”(64);技术报告 arXiv 2606.03264(2026-06-03)。1.5 的算法文档里仍留着占位文字“achieves xxx% accuracy”(第 14 行)。
  10. 吞吐量表格见 algorithm/PaddleOCR-VL/PaddleOCR-VL-1.5.en.md:65-69(OmniDocBench v1.5,单张 A100)与 PaddleOCR-VL.en.md:113-120(OmniDocBench v1.0)。原文仅以图片形式发布,数值由 paddleocr.dev 转录。
  11. docs/version3.x/pipeline_usage/ 下的各硬件指南:PaddleOCR-VL-Apple-Silicon.en.md(第 12–19、87–109 行)、-AMD-GPU.en.md(12、123、127)、-NVIDIA-Blackwell.en.md(20–22、64、97–98)、-Huawei-Ascend-NPU.en.md(12、20)、-Hygon-DCU、-Iluvatar-GPU、-Intel-Arc-GPU、-Kunlunxin-XPU、-MetaX-GPU(各自第 12 行)。
  12. HPD-Parsing:使用文档(第 7–26、104–155 行;中文版)与 Hugging Face 模型卡(L15、L48、L57、L75、L213)。所有精度和速度数据均为官方自报。
  13. 官方 API SDK 文档 docs/version3.x/inference_deployment/serving/paddleocr_official_api/python.en.md 与 cli.en.md;PaddleOCR 3.7.0 源码 paddleocr/_api_client/client.py:102-117 与 results.py:29-51。
  14. AI Studio《API Quota Rules and Error Code Description》(2026-02-10 更新,ai.baidu.com/ai-doc/AISTUDIO/pmjcld5qm)与《Asynchronous API Usage Guide》(2026-02-04 更新,Mml7n69e7)。
  15. PP-DocLayoutV2 / PP-DocLayoutV3 标签列表:PaddlePaddle/PP-DocLayoutV3 以及 PaddleOCR-VL 仓库中 PP-DocLayoutV2 文件夹内 inference.yml 的第 27–52 行;V3 模型卡 L23、L37、L48–50。
  16. PaddleOCR MCP 服务器文档 docs/version3.x/deployment/mcp_server.en.md:261:PaddleOCR-VL 系列“CPU inference is not recommended”。
更新于 2026年10月27日·我们如何核实