NVIDIA Triton 推論伺服器

最後更新: 2021-09-18 04:18:49 +0800 +0800
原文以英文撰寫。您正在閱讀AI翻譯版本。

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.onnx

config.pbtxt 宣告模型輸入、輸出、批次處理行為與後端特定設定。Triton 可以為支援的格式推斷部分設定,但明確的設定更清楚,而且許多功能都要求明確設定。Python 後端模型通常會在其版本目錄中提供 model.py,並實作 Triton 的後端介面。

請求與操作 #

用戶端在推論請求中傳送具名張量,並在回應中接收具名輸出張量。動態批次處理可以合併相容請求以提升輸送量,但其佇列延遲與批次大小必須依照延遲目標調校。

只公開符合環境需求的端點與模型儲存庫存取權限。監控 Prometheus 指標端點,使用具代表性的輸入形狀進行測試,並為模型建立版本,以便簡單執行回滾。

評論

在 GitHub 上閱讀或評論(發表評論需要登入)