超详细教程|vLLM 部署 PaddleOCR-VL-1.5,及原理解析
1引言
目前医院的维保合同,大部分采用PDF扫描件进行管理。需要手动把这些编码和合同到期日期手动录入到系统中,容易出错,效率低下。
比如下面这张图片:

需要提取统一社会信用代码,名称,类型等信息,还要包含登记机关和登记日期。
登机机关是一个印章,登记日期存在遮挡和错位。
为了解决这些问题,采用百度飞桨的PaddleOCR模型进行处理。
百度飞桨的模型,对于档案合同这类排版有错位,印章遮挡的文件识别较好。
详细可以参考模型的功能简介。
下面就演示一下如何部署百度飞桨的Paddle模型,并通过其来识别内容。
主要内容:如何部署模型,模型的工作原理及测试验证。
2 软硬件环境
先说一下笔者的软件硬件环境,
一台双卡的4090,共48G显存(24G*2主机,windows+Docker Desktop, WSL使用的Ubuntu24.04的系统。

部署这些模型一定要参考官网
PaddleOCR 文档(https://www.paddleocr.ai/main/)
正如百度官网所述的,为了避免出问题,推荐使用docker的方式部署。

3 下载Docker镜像
考虑到医院的安全性,所有的模型都是本地私有部署。在公网下载完模型和镜像,在离线的机器上部署。
Paddle OCR VL 1.5的模型部署,需要两个离线的镜像。与两个离线镜像对应的非离线镜像。
它们的区别如下。我们这里主要下载前两个。

下载第一个镜像
paddleocr-vl:latest-nvidia-gpu-offline
# 在能够联网的机器上执行 docker pull ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddleocr-vl:latest-nvidia-gpu-offline # 将镜像保存到文件中 docker save ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddleocr-vl:latest-nvidia-gpu-offline -o paddleocr-vl-latest-nvidia-gpu-offline.tar # 将镜像文件传输到离线机器 # 在离线机器上执行 docker load -i paddleocr-vl-latest-nvidia-gpu-offline.tar # 之后可以在离线机器上使用 `docker run` 启动容器
同样的方式下载第二个镜像,并保存:
# 在能够联网的机器上执行 docker pull ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddleocr-genai-vllm-server:latest-nvidia-gpu-offline docker save ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddleocr-genai-vllm-server:latest-nvidia-gpu-offline -o paddleocr-genai-vllm-server-nvidia-gpu-offline.tar docker load -i paddleocr-genai-vllm-server-nvidia-gpu-offline.tar
4 下载docker compose文件
采用docker compose的方式启动:
需要下载compose文件
(https://github.com/PaddlePaddle/PaddleOCR/tree/main/deploy/paddleocr_vl_docker/accelerators/nvidia-gpu)

5部署模型
下载的5个文件放在同一个文件夹。在windows命令行,执行下面的操作
前面两个镜像,通过上文提供的docker load指令导入到机器中。然后启动docker服务
cd <5个文件的目录> docker load -i paddleocr-vl-latest-nvidia-gpu-offline.tar docker load -i paddleocr-genai-vllm-server-nvidia-gpu-offline.tar docker compse up -d
6 工作原理:
我们下载了4个文件,它们是如何工作的呢?
分析来解析一下每一个文件。先看两个镜像文件的作用。
6.1 paddleocr-vl
paddleocr-vl-api镜像是一个轻量级的Web服务器,和一个版面解析模型PP-DocLayout ,其负责进行版面分析。真正的OCR识别,需要采用推理模型,通过vllm或者fastcopy等多种后端加速推理模型来处理。笔者使用的是vllm加速推理引擎。
6.2 paddleocr-genai-vllm-server
paddleocr-vlm-server就是大脑,负责接收版本传过来的数据,进行繁重的GPU计算。其中包含了真正的Paddle OCR VL 1.5的模型
6.3启动流程
通过解读compose.yaml文件。
启动阶段:
(1)Docker Compose 先启动 paddleocr-vlm-server。
它会不断运行 curl -f http://localhost:8080/health 来检查自己是否就绪。
(2)一旦(paddleocr-vlm-server)“大脑”就绪,paddleocr-vl-api 开始启动。
它会读取配置文件(即命令中提到的 yaml 文件),配置文件中会写明后端的地址(通常是 http://paddleocr-vlm-server:8080/v1,Docker Compose 会自动解析服务名为 IP)。
总结流程如下:

6.4工作流程
通过解析pip_config_vllm.yaml文件
基本流程如下:
paddleocr-vl-api 镜像默认启动的 8080 端口服务。
paddleocr-vl-api 收到图片 -> 内部预处理 -> 向 paddleocr-vlm-server 发送 HTTP 请求 -> 等待识别结果 -> 返回给你。

7 测试验证
由于端口冲突,笔者把paddle-vl-api默认的8080改成了6511。
通过访问Swagger UI获取的API文档

根据API文档提供的说明,使用PostMan调用测试:

8 总结:
知其然并知其所以然。
✅ Docker 部署,零环境痛苦
✅ 离线部署,医院内网安全可用
✅ vLLM 加速,推理又快又准
✅ 懂原理 + 会部署,知其然更知其所以然
手动录入时代彻底结束!PaddleOCR‑VL‑1.5 + vLLM 强强联手,印章能认、错位能读、内网能跑、部署简单,医院档案管理直接自动化~
看完这篇,你也能轻松搭建一套属于自己的高性能 OCR 服务!觉得有用就收藏 + 转发,下次部署不迷路~

浙公网安备 33010602011771号