Skip to content

Mini Triton Inference Server

一个纯 Python 的 Triton Inference Server 教学实现,不依赖 tritonserver 二进制或 GPU,可在 macOS / CPU 上直接运行。

覆盖的核心概念

  • Model Repository:目录结构与模型加载
  • config.pbtxt 解析max_batch_sizeinput/outputinstance_groupdynamic_batchingensemble_schedulingparameters
  • Backend 抽象:Python / ONNX Runtime / TensorRT-LLM / vLLM 的 mock backend
  • 调度器
    • Dynamic Batching:按 preferred_batch_sizemax_queue_delay_microseconds 组 batch
    • Ensemble Scheduling:按依赖图串联 preprocessing → inference → postprocessing
  • HTTP 服务入口:模拟 Triton 的 /v2/models/{name}/infer
  • Metrics:Prometheus 风格的请求数、延迟、batch size 直方图

运行方式

bash
cd docs/04-llmops/triton/mini-demo
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
python -m triton_mini.demo
pytest tests/

与真实 Triton 的差异

维度Mini Demo真实 Triton Inference Server
运行方式纯 PythonC++ core + backend shared libraries
Backendmock Python 函数TensorRT、ONNX Runtime、PyTorch、Python 等
网络协议模拟 HTTP/JSONHTTP/REST、gRPC、C API
调度单线程、教学级多线程、多实例、序列 batching、Rate Limiter
显存管理CUDA / shared memory / system memory 池
生产功能Model Analyzer、Metrics、Tracing、Warmup、模型热更新

本 Demo 的价值在于把 Triton 的“仓库-配置-后端-调度”四层抽象用可运行代码展现出来,便于理解其设计思想。

Released under CC-BY-SA-4.0 License.