PaddleMIX基于Paddle Inference,提供了python的部署方案。部署方式分为两种:
-
通过 APPflow ,设置static_mode = True 变量开启静态图推理,同时可配合trt加速推理;该方式部分模型不支持静态图以及trt,具体模型可参考跨模态多场景应用;
-
单模型部署
在使用 PaddleMIX 一键预测 APPflow 时,可通过设置 static_mode = True 变量开启静态图推理,同时可配合trt加速推理。
>>> from paddlemix.appflow import Appflow
>>> from PIL import Image
>>> task = Appflow(app="openset_det_sam",
models=["GroundingDino/groundingdino-swint-ogc","Sam/SamVitH-1024"],
static_mode=True,
precision="fp32")
>>> image_pil = Image.open("beauty.png").convert("RGB")
>>> result = task(image=image_pil,prompt="women")
参数 | 是否必须 | 含义 |
---|---|---|
--app | Yes | 应用名称 |
--models | Yes | 需要使用的模型,可以是单个模型,也可以多个组合 |
--static_mode | Option | 是否静态图推理,默认False |
--precision | Option | 当 static_mode == True 时使用,默认fp32,可选择trt_fp32、trt_fp16 |
说明:
- 部分模型不支持静态图以及trt,具体可参考跨模态多场景应用
- 生成的静态图将在模型名字对应的文件夹下 如:GroundingDino/groundingdino-swint-ogc/
Python端预测部署主要包含两个步骤:
- 导出预测模型
- 基于Python进行预测
当前支持模型:
以 groundingdino 为例子。
cd deploy/groundingdino
# 导出groundingdino模型
python export.py \
--dino_type GroundingDino/groundingdino-swint-ogc
导出后目录下,包括 model_state.pdiparams
, model_state.pdiparams.info
, model_state.pdmodel
等文件。
python predict.py \
--text_encoder_type GroundingDino/groundingdino-swint-ogc \
--model_path output_groundingdino/GroundingDino/groundingdino-swint-ogc \
--input_image https://bj.bcebos.com/v1/paddlenlp/models/community/GroundingDino/000000004505.jpg \
--output_dir ./groundingdino_predict_output \
--prompt "bus"