使用 Triton 的 BLS 部署印章识别模型
Triton的Python Backend允许用户在Python中实现预处理、后处理及自定义逻辑,将Python模块嵌入Triton服务器执行。模型需在`model.py`中实现`TritonPythonModel`类,其核心是`execute`方法处理推理请求,`initialize`和`finalize`用于初始化和清理。用户可通过`conda-pack`打包自定义Python环境,并在`config.pbtxt`中通过`EXECUTION_ENV_PATH`参数指定。
BLS(业务逻辑脚本)是Python Backend的核心能力,扩展了Triton的集成模型(ensemble)功能,允许在推理流程中编排复杂的业务逻辑,如条件、循环,并调用其他模型。`pb_utils.InferenceRequest`和`pb_utils.InferenceResponse`是其核心API,用于进行模型间调用和处理响应。`triton_python_backend_utils`提供张量操作等辅助功能。
文章以TrOCR印章识别模型为例,演示了BLS如何整合`seal_encoder`和`seal_decoder`两个ONNX模型,实现端到端识别。BLS脚本负责预处理、模型调用及后处理,配置文件后端需设为`python`。需注意:GPU上的`pb_utils.Tensor`不能直接转NumPy,需通过DLPack先转为PyTorch Tensor再处理。