Linux安裝部署百度飛槳3.0
- 1.官方文檔指引
- 2.確認服務器型號
- 2.1 確認Python版本
- 2.2 確認pip是否安裝
- 2.3 確認計算平臺
- 3.本機安裝(基于通過 pip 安裝)
- 3.1 下載安裝 PaddlePaddle
- 3.2 安裝PaddleX
- 3.2.1 安裝PaddleX
- 3.2.2 命令行規范
- 3.2.3 運行示例
- 3.2.4 查看python安裝的包所在位置
- 3.3 安裝高性能推理插件
- 3.4 卸載pip安裝的paddlepaddle和paddlex
- 4.docker安裝(基于 Docker 安裝飛槳)
- 4.1 檢查docker版本
- 4.2 安裝飛槳 PaddlePaddle
- 4.2.1 Docker 版本 >= 19.03
- 4.2.1.1 各版本命令
- 4.2.1.2 執行
- 4.2.2 Docker 版本 <= 19.03 但 >= 17.06
- 4.3 基于Docker獲取PaddleX
- 4.3.1 Docker 版本 >= 19.03
- 4.3.1.1各版本命令
- 4.3.1.2 運行
- 4.3.2 Docker 版本 <= 19.03 但 >= 17.06
- 5.PaddleX 服務化部署(基于pip部署,基礎服務化部署)
- 5.1 官方部署文檔
- 5.2 安裝服務化部署插件
- 5.3 與 服務化部署相關的命令行選項
- 5.4 安裝一條產線
1.官方文檔指引
PaddleX 3.0 是基于飛槳框架構建的低代碼開發工具,它集成了眾多開箱即用的預訓練模型,可以實現模型從訓練到推理的全流程開發,支持國內外多款主流硬件,助力AI 開發者進行產業實踐。
Python 運行環境:目前支持 Python 3.8 至 Python 3.12。PaddleX 3.0-rc0 版本依賴的 PaddlePaddle 版本為 3.0.0rc0以上版本。
飛槳:開始使用
PaddleX:PaddleX 文檔
【注:本文使用Linux系統、pip方式安裝、英偉達芯片】
2.確認服務器型號
2.1 確認Python版本
確認Python版本是否滿足框架最低版本要求
python --version
2.2 確認pip是否安裝
- 什么是 pip ?
pip 是 Python 中的標準庫管理器。它允許你安裝和管理不屬于 Python標準庫 的其它軟件包。 - 查看是否安裝
pip --version
- 安裝pip(如未安裝pip)
sudo apt install python3-pip
2.3 確認計算平臺
- 查看顯卡驅動程序版本
nvidia-smi
“Driver Version” 后面的數字就是當前 NVIDIA 顯卡驅動的版本號
3.本機安裝(基于通過 pip 安裝)
3.1 下載安裝 PaddlePaddle
根據自己服務器的版本信息,選擇合適的paddle進行安裝
# cpu
python -m pip install paddlepaddle==3.0.0rc0 -i https://www.paddlepaddle.org.cn/packages/stable/cpu/# gpu,該命令僅適用于 CUDA 版本為 11.8 的機器環境
python -m pip install paddlepaddle-gpu==3.0.0rc0 -i https://www.paddlepaddle.org.cn/packages/stable/cu118/# gpu,該命令僅適用于 CUDA 版本為 12.3 的機器環境
python -m pip install paddlepaddle-gpu==3.0.0rc0 -i https://www.paddlepaddle.org.cn/packages/stable/cu123/
我們這里選擇450.80.02+(cu118)版本
# gpu,該命令僅適用于 CUDA 版本為 11.8 的機器環境
python -m pip install paddlepaddle-gpu==3.0.0rc0 -i https://www.paddlepaddle.org.cn/packages/stable/cu118/
顯示Successfully installed,即表示成功。
3.2 安裝PaddleX
3.2.1 安裝PaddleX
pip install paddlex==3.0rc0
安裝時間有點長,需要耐心等待,出現如下頁面即表示安裝成功。
3.2.2 命令行規范
統一的命令行格式為:
paddlex --pipeline [產線名稱] --input [輸入圖片] --device [運行設備]
PaddleX的每一條產線對應特定的參數,您可以在各自的產線文檔中查看具體的參數說明。每條產線需指定必要的三個參數:
- pipeline:產線名稱或產線配置文件
- input:待處理的輸入文件(如圖片)的本地路徑、目錄或 URL
- device: 使用的硬件設備及序號(例如gpu:0表示使用第 0 塊 GPU),也可選擇使用 NPU(npu:0)、 XPU(xpu:0)、CPU(cpu)等
3.2.3 運行示例
# 通用OCR
paddlex --pipeline image_classification --input https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_image_classification_001.jpg --device gpu:0
運行結果示例
3.2.4 查看python安裝的包所在位置
進入python命令行
import site
print(site.getsitepackages())
3.3 安裝高性能推理插件
如果你的設備是 CPU,請使用以下命令安裝 PaddleX 的 CPU 版本:
paddlex --install hpi-cpu
如果你的設備是 GPU,請使用以下命令安裝 PaddleX 的 GPU 版本。請注意,GPU 版本包含了 CPU 版本的所有功能,因此無需單獨安裝 CPU 版本:
paddlex --install hpi-gpu# 或者(使用清華源)paddlex --install hpi-gpu -i https://pypi.tuna.tsinghua.edu.cn/simple
我這里是gpu,所以使用的是第二個
目前高性能推理支持的處理器架構、操作系統、設備類型和 Python 版本如下表所示:
處理器架構 | 操作系統 | 設備類型 | Python 版本 |
---|---|---|---|
x86-64 | Linux | CPU | 3.8–3.12 |
x86-64 | Linux | GPU (CUDA 11.8 + cuDNN 8.6) | 3.8–3.12 |
3.4 卸載pip安裝的paddlepaddle和paddlex
- 查看已安裝的paddlepaddle paddlex
pip list | grep paddle
- 卸載
# paddlepaddle-gpu paddlex 根據上述查詢出來的決定
pip uninstall paddlepaddle-gpu paddlex
4.docker安裝(基于 Docker 安裝飛槳)
4.1 檢查docker版本
docker --version
4.2 安裝飛槳 PaddlePaddle
我的docker版本是24.0.7,所以選擇第一個安裝方案。
4.2.1 Docker 版本 >= 19.03
4.2.1.1 各版本命令
# 對于 cpu 用戶:
docker run --name paddlex -v $PWD:/paddle --shm-size=8G --network=host -it ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddle:3.0.0rc0 /bin/bash# 對于 gpu 用戶:
# GPU 版本,需顯卡驅動程序版本 ≥450.80.02(Linux)或 ≥452.39(Windows)
docker run --gpus all --name paddlex -v $PWD:/paddle --shm-size=8G --network=host -it ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddle:3.0.0rc0-gpu-cuda11.8-cudnn8.6-trt8.5 /bin/bash# GPU 版本,需顯卡驅動程序版本 ≥545.23.06(Linux)或 ≥545.84(Windows)
docker run --gpus all --name paddlex -v $PWD:/paddle --shm-size=8G --network=host -it ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddle:3.0.0rc0-gpu-cuda12.3-cudnn9.0-trt8.6 /bin/bash
4.2.1.2 執行
使用飛槳官方 Docker 鏡像,創建一個名為 paddlepaddle 的容器,并將當前工作目錄映射到容器內的 /paddle 目錄
docker run --gpus all --name paddlepaddle -v $PWD:/paddle --shm-size=8G --network=host -it ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddle:3.0.0rc0-gpu-cuda11.8-cudnn8.6-trt8.5 /bin/bash
安裝成功
若想暫時退出容器但保留其運行狀態,使用 Ctrl + P 再按 Ctrl + Q 組合鍵;若要完全退出并停止容器,在容器內使用 exit 命令 。后續還可使用 docker start 命令重新啟動已停止的容器。
4.2.2 Docker 版本 <= 19.03 但 >= 17.06
# 對于 cpu 用戶:
docker run --name paddlex -v $PWD:/paddle --shm-size=8G --network=host -it ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddle:3.0.0rc0 /bin/bash# 對于 gpu 用戶:
# CUDA11.8 用戶
nvidia-docker run --name paddlex -v $PWD:/paddle --shm-size=8G --network=host -it ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddle:3.0.0rc0-gpu-cuda11.8-cudnn8.6-trt8.5 /bin/bash# CUDA12.3 用戶
nvidia-docker run --name paddlex -v $PWD:/paddle --shm-size=8G --network=host -it ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddle:3.0.0rc0-gpu-cuda12.3-cudnn9.0-trt8.6 /bin/bash
4.3 基于Docker獲取PaddleX
4.3.1 Docker 版本 >= 19.03
4.3.1.1各版本命令
# 對于 CPU 用戶
docker run --name paddlex -v $PWD:/paddle --shm-size=8g --network=host -it ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlex/paddlex:paddlex3.0.0rc0-paddlepaddle3.0.0rc0-cpu /bin/bash# 對于 GPU 用戶
# GPU 版本,需顯卡驅動程序版本 ≥450.80.02(Linux)或 ≥452.39(Windows)
docker run --gpus all --name paddlex -v $PWD:/paddle --shm-size=8g --network=host -it ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlex/paddlex:paddlex3.0.0rc0-paddlepaddle3.0.0rc0-gpu-cuda11.8-cudnn8.6-trt8.5 /bin/bash# GPU 版本,需顯卡驅動程序版本 ≥545.23.06(Linux)或 ≥545.84(Windows)
docker run --gpus all --name paddlex -v $PWD:/paddle --shm-size=8g --network=host -it ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlex/paddlex:paddlex3.0.0rc0-paddlepaddle3.0.0rc0-gpu-cuda12.3-cudnn9.0-trt8.6 /bin/bash
4.3.1.2 運行
使用 PaddleX 官方 Docker 鏡像,創建一個名為 paddlex 的容器,并將當前工作目錄映射到容器內的 /paddle 目錄
docker run --gpus all --name paddlex -v $PWD:/paddle --shm-size=8g --network=host -it ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlex/paddlex:paddlex3.0.0rc0-paddlepaddle3.0.0rc0-gpu-cuda11.8-cudnn8.6-trt8.5 /bin/bash
- 安裝成功
如需映射端口可使用
docker run --gpus all --name paddlex -v $PWD:/paddle --shm-size=8g --network=host -p 6666:6666 -it ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlex/paddlex:paddlex3.0.0rc0-paddlepaddle3.0.0rc0-gpu-cuda11.8-cudnn8.6-trt8.5 /bin/bash
- 進入容器
docker exec -it paddlex /bin/bash
這里的 -i 選項表示保持標準輸入打開,-t 選項為終端分配一個偽終端,/bin/bash 是要在容器內執行的 shell 命令。
4.3.2 Docker 版本 <= 19.03 但 >= 17.06
# 對于 CPU 用戶
docker run --name paddlex -v $PWD:/paddle --shm-size=8g --network=host -it ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlex/paddlex:paddlex3.0.0rc0-paddlepaddle3.0.0rc0-cpu /bin/bash# 對于 GPU 用戶
# 對于 CUDA11.8 用戶
nvidia-docker run --name paddlex -v $PWD:/paddle --shm-size=8g --network=host -it ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlex/paddlex:paddlex3.0.0rc0-paddlepaddle3.0.0rc0-gpu-cuda11.8-cudnn8.6-trt8.5 /bin/bash# 對于 CUDA12.3 用戶
nvidia-docker run --name paddlex -v $PWD:/paddle --shm-size=8g --network=host -it ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlex/paddlex:paddlex3.0.0rc0-paddlepaddle3.0.0rc0-gpu-cuda12.3-cudnn9.0-trt8.6 /bin/bash
5.PaddleX 服務化部署(基于pip部署,基礎服務化部署)
針對用戶的不同需求,PaddleX 提供多種產線服務化部署方案:
- 基礎服務化部署:簡單易用的服務化部署方案,開發成本低。
- 高穩定性服務化部署:基于 NVIDIA Triton Inference Server 打造。與基礎服務化部署相比,該方案提供更高的穩定性,并允許用戶調整配置以優化性能。
注意:PaddleX 對產線而不是模塊進行服務化部署。當前部署使用基礎服務化部署。
5.1 官方部署文檔
服務化部署:PaddleX 服務化部署指南
5.2 安裝服務化部署插件
paddlex --install serving
5.3 與 服務化部署相關的命令行選項
名稱 | 說明 |
---|---|
–pipeline | 產線名稱或產線配置文件路徑。 |
–device | 產線部署設備。默認為 cpu(如 GPU 不可用)或 gpu(如 GPU 可用)。 |
–host | 服務器綁定的主機名或 IP 地址。默認為 0.0.0.0 。 |
–port | 服務器監聽的端口號。默認為 8080 。 |
–use_hpip | 如果指定,則啟用高性能推理插件。 |
5.4 安裝一條產線
測試運行,安裝一條產線(通用圖像分類產線:image_classification )
# 以圖像分類產線為例,使用方式如下:
paddlex --pipeline image_classification \--input https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_image_classification_001.jpg \--device gpu:0 \--save_path ./output/ \--topk 5
若想暫時退出容器但保留其運行狀態,使用 Ctrl + P 再按 Ctrl + Q 組合鍵;若要完全退出并停止容器,在容器內使用 exit 命令 。后續還可使用 docker start 命令重新啟動已停止的容器。
- 測試遠程接口調用
判斷服務器網絡和端口 是否可訪問
【注意】這里的端口是服務器暴露到外部訪問的端口,通常需要做服務器端口和容器端口的映射,一般兩者端口都保持一致,方便管理。如果出現端口沖突,可以修改,但最好做好記錄。
# Windows操作系統 telnet [服務器IP] [服務器端口]
telnet xxx.xxx.xx.xxx 6666
彈出黑色空白界面,按下CTRL + ] 鍵,即可進入如下頁面,表示網絡狀態是連通的。