NVIDIA Triton 推論伺服器透過 HTTP 與 gRPC 提供機器學習模型服務。它支援多種後端,包括 TensorRT、PyTorch、ONNX Runtime、TensorFlow、Python 與 ensemble,並提供批次處理、指標、模型版本控制與並行控制。
從容器開始 #
支援的 Triton 容器透過 NVIDIA NGC 發佈:
sh
docker pull nvcr.io/nvidia/tritonserver:<tag>
docker run --gpus all --rm -p 8000:8000 -p 8001:8001 \
-v "$PWD/models:/models" \
nvcr.io/nvidia/tritonserver:<tag> tritonserver \
--model-repository=/models請選取後端支援與模型相符的標籤。精簡映像檔只包含伺服器,其他映像檔則會加入選定的框架或 SDK 元件。請查閱發行說明,確認伺服器、CUDA 驅動程式與模型執行階段之間的相容性。
模型儲存庫配置 #
Triton 會從模型儲存庫探索模型;儲存庫中每個模型各有一個目錄,並包含一個或多個數字版本目錄:
text
models/
classifier/
config.pbtxt
1/
model.onnxconfig.pbtxt 宣告模型輸入、輸出、批次處理行為與後端特定設定。Triton 可以為支援的格式推斷部分設定,但明確的設定更清楚,而且許多功能都要求明確設定。Python 後端模型通常會在其版本目錄中提供 model.py,並實作 Triton 的後端介面。
請求與操作 #
用戶端在推論請求中傳送具名張量,並在回應中接收具名輸出張量。動態批次處理可以合併相容請求以提升輸送量,但其佇列延遲與批次大小必須依照延遲目標調校。
只公開符合環境需求的端點與模型儲存庫存取權限。監控 Prometheus 指標端點,使用具代表性的輸入形狀進行測試,並為模型建立版本,以便簡單執行回滾。
評論
在 GitHub 上閱讀或評論(發表評論需要登入)