triton-inference-server/backend

Common source, scripts and utilities for creating Triton backends.

解决的问题

该项目提供了为 Triton Inference Server 创建「后端」所需的基础设施和文档。后端是实际执行模型的实现,使 Triton 能够支持各种深度学习框架(如 PyTorch、TensorFlow 和 ONNX Runtime)或用于图像预处理等操作的自定义 C/C++ 逻辑。

工作原理

Triton 使用标准化的 C 接口(Triton Backend API)与后端通信。每个后端都以共享库(命名为 libtriton_<backend-name>.so)的形式实现,并由 Triton 在运行时加载。

API 定义了几个关键抽象:

  • Backend:所有使用该后端的模型共享的整体实现。
  • Model:表示一个特定加载的模型。
  • Model Instance:模型的执行单元;Triton 可以创建多个实例来处理请求。
  • Request/Response:用于将输入张量传递给后端并返回输出张量给 Triton 的对象。

适用人群

  • 机器学习工程师:需要将不同框架的模型部署到单一生产环境中的开发者。
  • 后端开发者:希望在 Triton 生态系统中构建自定义 C/C++ 或 Python 逻辑,以执行特定模型操作或预处理步骤的开发者。

主要亮点

  • 框架无关:支持广泛的框架,包括 TensorRT、ONNX Runtime、TensorFlow、PyTorch、OpenVINO 和 vLLM。
  • 可扩展:允许开发者通过 C 接口创建自己的自定义后端。
  • 灵活部署:后端可全局安装,也可与特定模型版本捆绑安装。
  • 自定义逻辑:支持 Python 后端,可在不转换为 TorchScript 或其他格式的情况下用 Python 编写模型逻辑。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目