triton-inference-server/backend

Common source, scripts and utilities for creating Triton backends.

What it solves

This project provides the infrastructure and documentation for creating "backends" for the Triton Inference Server. A backend is the actual implementation that executes a model, allowing Triton to support a wide variety of deep-learning frameworks (like PyTorch, TensorFlow, and ONNX Runtime) or custom C/C++ logic for operations such as image pre-processing.

How it works

Triton uses a standardized C interface (the Triton Backend API) to communicate with backends. Each backend is implemented as a shared library (named libtriton_<backend-name>.so) that Triton loads at runtime.

The API defines several key abstractions:

  • Backend: The overall implementation shared across all models using that backend.
  • Model: Represents a specific loaded model.
  • Model Instance: An execution unit of a model; Triton can create multiple instances to handle requests.
  • Request/Response: Objects used to pass input tensors to the backend and return output tensors to Triton.

Who it’s for

  • ML Engineers: Who need to deploy models from different frameworks into a single production environment.
  • Backend Developers: Who want to build custom C/C++ or Python logic to execute specific model operations or pre-processing steps within the Triton ecosystem.

Highlights

  • Framework Agnostic: Supports a vast array of frameworks including TensorRT, ONNX Runtime, TensorFlow, PyTorch, OpenVINO, and vLLM.
  • Extensible: Allows developers to create their own custom backends via a C interface.
  • Flexible Deployment: Backends can be installed globally or bundled with specific model versions.
  • Custom Logic: Supports the Python backend for writing model logic in Python without needing to convert to TorchScript or other formats.

Related

  • Project
  • Project
  • Project
  • Project
  • Project