|
| 1 | +--- |
| 2 | +comments: true |
| 3 | +--- |
| 4 | + |
| 5 | +# PaddleOCR-VL-DCU 环境配置教程 |
| 6 | + |
| 7 | +本教程是 DCU 的环境配置教程,目的是完成相关的环境配置,环境配置完毕后请参考 [PaddleOCR-VL 使用教程](./PaddleOCR-VL.md) 使用 PaddleOCR-VL。 |
| 8 | + |
| 9 | +## 1. 环境准备 |
| 10 | + |
| 11 | +此步骤主要介绍如何搭建 PaddleOCR-VL 的运行环境,有以下两种方式,任选一种即可: |
| 12 | + |
| 13 | +- 方法一:使用官方 Docker 镜像。 |
| 14 | + |
| 15 | +- 方法二:手动安装 PaddlePaddle 和 PaddleOCR。 |
| 16 | + |
| 17 | +### 1.1 方法一:使用 Docker 镜像 |
| 18 | + |
| 19 | +我们推荐使用官方 Docker 镜像(要求 Docker 版本 >= 19.03): |
| 20 | + |
| 21 | +```shell |
| 22 | +docker run -it \ |
| 23 | + --rm \ |
| 24 | + --user root \ |
| 25 | + --privileged \ |
| 26 | + --device /dev/kfd \ |
| 27 | + --device /dev/dri \ |
| 28 | + --device /dev/mkfd \ |
| 29 | + --group-add video \ |
| 30 | + --cap-add SYS_PTRACE \ |
| 31 | + --security-opt seccomp=unconfined \ |
| 32 | + -v /opt/hyhal/:/opt/hyhal/:ro \ |
| 33 | + --shm-size=64G \ |
| 34 | + ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddleocr-vl:latest-dcu-offline \ |
| 35 | + /bin/bash |
| 36 | +# 在容器中调用 PaddleOCR CLI 或 Python API |
| 37 | +``` |
| 38 | + |
| 39 | +### 1.2 方法二:手动安装 PaddlePaddle 和 PaddleOCR |
| 40 | + |
| 41 | +如果您无法使用 Docker,也可以手动安装 PaddlePaddle 和 PaddleOCR。要求 Python 版本为 3.8–3.12。 |
| 42 | + |
| 43 | +**我们强烈推荐您在虚拟环境中安装 PaddleOCR-VL,以避免发生依赖冲突。** 例如,使用 Python venv 标准库创建虚拟环境: |
| 44 | + |
| 45 | +```shell |
| 46 | +# 创建虚拟环境 |
| 47 | +python -m venv .venv_paddleocr |
| 48 | +# 激活环境 |
| 49 | +source .venv_paddleocr/bin/activate |
| 50 | +``` |
| 51 | + |
| 52 | +执行如下命令完成安装: |
| 53 | + |
| 54 | +```shell |
| 55 | +python -m pip install paddlepaddle-dcu==3.2.1 -i https://www.paddlepaddle.org.cn/packages/stable/dcu/ |
| 56 | +python -m pip install -U "paddleocr[doc-parser]" |
| 57 | +python -m pip install https://paddle-whl.bj.bcebos.com/nightly/cu126/safetensors/safetensors-0.6.2.dev0-cp38-abi3-linux_x86_64.whl |
| 58 | +``` |
| 59 | + |
| 60 | +> **请注意安装 3.2.1 及以上版本的飞桨框架,同时安装特殊版本的 safetensors。** |
| 61 | +
|
| 62 | +## 2. 快速开始 |
| 63 | + |
| 64 | +请参考[PaddleOCR-VL 使用教程](./PaddleOCR-VL.md)相同章节。 |
| 65 | + |
| 66 | +## 3. 使用推理加速框架提升 VLM 推理性能 |
| 67 | + |
| 68 | +默认配置下的推理性能未经过充分优化,可能无法满足实际生产需求。此步骤主要介绍如何使用 vLLM 推理加速框架来提升 PaddleOCR-VL 的推理性能。 |
| 69 | + |
| 70 | +### 3.1 启动 VLM 推理服务 |
| 71 | + |
| 72 | +PaddleOCR 提供了 Docker 镜像,用于快速启动 vLLM 推理服务。可使用以下命令启动服务(要求 Docker 版本 >= 19.03): |
| 73 | + |
| 74 | +```shell |
| 75 | +docker run -it \ |
| 76 | + --rm \ |
| 77 | + --user root \ |
| 78 | + --privileged \ |
| 79 | + --device /dev/kfd \ |
| 80 | + --device /dev/dri \ |
| 81 | + --device /dev/mkfd \ |
| 82 | + --group-add video \ |
| 83 | + --cap-add SYS_PTRACE \ |
| 84 | + --security-opt seccomp=unconfined \ |
| 85 | + -v /opt/hyhal/:/opt/hyhal/:ro \ |
| 86 | + --shm-size=64G \ |
| 87 | + ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddleocr-genai-vllm-server:latest-dcu-offline \ |
| 88 | + paddleocr genai_server --model_name PaddleOCR-VL-0.9B --host 0.0.0.0 --port 8118 --backend vllm |
| 89 | +``` |
| 90 | + |
| 91 | +### 3.2 客户端使用方法 |
| 92 | + |
| 93 | +请参考[PaddleOCR-VL 使用教程](./PaddleOCR-VL.md) 相同章节。 |
| 94 | + |
| 95 | +## 4. 服务化部署 |
| 96 | + |
| 97 | +>请注意,本节所介绍 PaddleOCR-VL 服务与上一节中的 VLM 推理服务有所区别:后者仅负责完整流程中的一个环节(即 VLM 推理),并作为前者的底层服务被调用。 |
| 98 | +
|
| 99 | +此步骤主要介绍如何使用 Docker Compose 将 PaddleOCR-VL 部署为服务并调用,具体流程如下: |
| 100 | + |
| 101 | +1. 从 [此处](https://github.com/PaddlePaddle/PaddleOCR/blob/main/deploy/paddleocr_vl_docker/compose_dcu.yaml) 复制内容保存为 `compose.yaml` 文件。 |
| 102 | + |
| 103 | +2. 复制以下内容并保存为 `.env` 文件: |
| 104 | + |
| 105 | + ``` |
| 106 | + API_IMAGE_TAG_SUFFIX=latest-dcu-offline |
| 107 | + VLM_BACKEND=vllm |
| 108 | + VLM_IMAGE_TAG_SUFFIX=latest-dcu-offline |
| 109 | + ``` |
| 110 | +
|
| 111 | +3. 在 `compose.yaml` 和 `.env` 文件所在目录下执行以下命令启动服务器,默认监听 **8080** 端口: |
| 112 | +
|
| 113 | + ```shell |
| 114 | + # 必须在 compose.yaml 和 .env 文件所在的目录中执行 |
| 115 | + docker compose up |
| 116 | + ``` |
| 117 | +
|
| 118 | + 启动后将看到类似如下输出: |
| 119 | +
|
| 120 | + ```text |
| 121 | + paddleocr-vl-api | INFO: Started server process [1] |
| 122 | + paddleocr-vl-api | INFO: Waiting for application startup. |
| 123 | + paddleocr-vl-api | INFO: Application startup complete. |
| 124 | + paddleocr-vl-api | INFO: Uvicorn running on http://0.0.0.0:8080 (Press CTRL+C to quit) |
| 125 | + ``` |
| 126 | +
|
| 127 | +此方式基于 vLLM 框架对 VLM 推理进行加速,更适合生产环境部署。 |
| 128 | +
|
| 129 | +此外,使用此方式启动服务器后,除拉取镜像外,无需连接互联网。如需在离线环境中部署,可先在联网机器上拉取 Compose 文件中涉及的镜像,导出并传输至离线机器中导入,即可在离线环境下启动服务。 |
| 130 | +
|
| 131 | +如需调整产线相关配置(如模型路径、批处理大小、部署设备等),可参考 4.4 小节。 |
| 132 | +
|
| 133 | +### 4.3 客户端调用方式 |
| 134 | +
|
| 135 | +请参考[PaddleOCR-VL 使用教程](./PaddleOCR-VL.md) 相同章节。 |
| 136 | +
|
| 137 | +### 4.4 产线配置调整说明 |
| 138 | +
|
| 139 | +请参考[PaddleOCR-VL 使用教程](./PaddleOCR-VL.md) 相同章节。 |
| 140 | +
|
| 141 | +## 5. 模型微调 |
| 142 | +
|
| 143 | +请参考[PaddleOCR-VL 使用教程](./PaddleOCR-VL.md) 相同章节。 |
0 commit comments