Python#

Triton 推理服务器进程内 Python API [BETA]#

从 24.01 版本开始,Triton 推理服务器将包含一个 Python 包,使开发人员能够在其 Python 应用程序中嵌入 Triton 推理服务器实例。进程内 Python API 旨在匹配进程内 C API 的功能,同时提供更高级别的抽象。该 API 的核心依赖于 C API 的 1:1 Python 绑定,并提供 C API 的所有灵活性和强大功能,以及更易于使用的界面。

[!Note] 由于 API 处于 BETA 阶段,请预期在我们测试不同功能并获得反馈时会进行一些更改。欢迎所有反馈,我们期待收到您的来信!

要求#

以下说明需要安装了 Docker 的 Linux 系统。对于 CUDA 支持,请确保您的 CUDA 驱动程序满足深度学习框架支持矩阵“NVIDIA 驱动程序”部分中的要求:https://docs.nvda.net.cn/deeplearning/frameworks/support-matrix/index.html

安装#

本教程和 Python API 包旨在在 nvcr.io/nvidia/tritonserver:24.01-py3 Docker 镜像中安装和运行。

提供了一组方便的脚本,用于创建基于 nvcr.io/nvidia/tritonserver:24.01-py3 镜像的 Docker 镜像,其中安装了 Python API 以及示例所需的其他依赖项。

Triton 推理服务器 24.01 + Python API#

克隆仓库#
构建 triton-python-api:r24.01 镜像#
支持的后端#

构建的镜像包含 tritonserver nvcr.io/nvidia/tritonserver:24.01-py3 容器中默认附带的所有后端。

dali  fil  identity  onnxruntime  openvino  python  pytorch  repeat  square  tensorflow  tensorrt
包含的模型#

default 构建包含一个 identity 模型,该模型可用于练习基本操作,包括发送不同数据类型的输入张量。identity 模型将提供的形状为 [-1, -1] 的输入复制到形状为 [-1, -1] 的输出。输入命名为 data_type_input,输出命名为 data_type_output(例如 string_inputstring_outputfp16_inputfp16_output)。

Hello World#

启动 triton-python-api:r24.01 容器#

以下命令启动一个容器并将当前目录作为 workspace 卷挂载。

进入 Python Shell#

创建并启动服务器实例#

列出模型#

server.models()
示例输出#

server.models() 返回可用模型的字典及其当前状态。

发送推理请求#

迭代处理响应#

model.infer() 返回一个迭代器,可用于处理推理请求的结果。

示例输出#

Stable Diffusion#

此示例基于 Popular_Models_Guide/StableDiffusion 教程。

请注意,以下命令将花费数分钟,具体取决于您的硬件配置和网络连接。

构建的镜像包含 tritonserver nvcr.io/nvidia/tritonserver:24.01-py3 容器中默认附带的所有后端。

dali  fil  identity  onnxruntime  openvino  python  pytorch  repeat  square  tensorflow  tensorrt

diffusion 构建包含一个 stable_diffustion 管道,该管道接受文本提示并返回生成的图像。有关模型和管道的更多详细信息,请参阅 Popular_Models_Guide/StableDiffusion 教程。

启动容器#

以下命令启动一个容器并将当前目录作为 workspace 卷挂载。

进入 Python Shell#

创建并启动服务器实例#

列出模型#

server.models()
示例输出#

发送推理请求#

迭代处理响应并保存图像#

示例输出#
sample_generated_image

图 1 sample_generated_image#