簡介
TIS(Triton Inference Server)是NVIDIA推出的AI模型部署框架,前身為ensorRT Inference Server,它支持多種深度學習框架作為backend(如TensorFlow、PyTorch、TensorRT、ONNX等)甚至可以集成多個backend,如下圖所示,通過TIS部署的服務可以通過HTTP或者gRPC的方式請求,目前,PyTorch的模型部署其實還不是很完善,主流的部署框架其實就是TorchServe和Triton,相較于前者使用Java,我這邊還是比較喜歡Triton一些,所以這個系列的核心就是利用Triton部署PyTorch模型,

安裝
安裝Triton之前必須確保顯卡驅動正確安裝,且已經成功安裝docker和nvidia-docker,具體可以參考我之前的教程,因為后續的安裝都需要基于docker來進行(也推薦采用這種方式),
接下來,需要登錄NVIDIA NGC以便于獲取鏡像的地址,不過這時并不能成功獲取鏡像,需要先獲得API Key才能獲取鏡像,注冊流程見下圖,

注冊后,使用下面的框中命令登錄docker,登錄成功后(會有Login Succeeded提示),

接著,再訪問TIS鏡像地址獲取鏡像地址,并使用下圖框中的命令拉取最新的鏡像,當然,這個版本很新,對顯卡驅動要求較高,我所用的機器的顯卡驅動也才455版本,因此我這里使用舊版本,命令如下,

docker pull nvcr.io/nvidia/tritonserver:20.10-py3
此時也可以通過將鏡像保存到本地以便使用,這是因為其實從nvidia官方下載這個鏡像其實挺慢的,相關的命令如下,
# 保存鏡像
docker save -o tritonserver-20.10-py3.tar nvcr.io/nvidia/tritonserver:20.10-py3
# 加載鏡像
sudo docker load < tritonserver-21.07-py3.tar
運行
在運行鏡像之前,我們按照官方的推薦建立一個模型倉庫,該倉庫中按照模型名存放著tensorrt engine檔案,該檔案夾有如下格式,具體如何設定組態檔后面的文章會提到(主要是模型組態檔和各個版本的模型檔案,參考官方示例,這里的1指的就是版本1),
model_repository/
└── inception_graphdef
├── 1
│ └── model.graphdef
├── config.pbtxt
└── inception_labels.txt
然后,我們運行可使用GPU的鏡像并將模型倉庫映射到容器中的根目錄下的models檔案夾中,命令如下,其中的命令均為docker常用命令(設定是使用本機第3號GPU卡),這里不多做贅述,可以查看我的Docker教程,
docker run --gpus '"device=3"' --rm -p8000:8000 -p8001:8001 -p8002:8002 -v/home/zhouchen/model_repository:/models nvcr.io/nvidia/tritonserver:20.10-py3 tritonserver --model-repository=/models
此時出現下圖所示的狀態,沒有報ERROR代表服務開啟成功,

由于這時候后端還沒有寫具體的介面,這里呼叫默認介面測驗一下,使用命令curl -v localhost:8000/v2/health/ready,有如下的反饋代表后端部署成功,可以正常訪問,
* Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to localhost (127.0.0.1) port 8000 (#0)
> GET /v2/health/ready HTTP/1.1
> Host: localhost:8000
> User-Agent: curl/7.58.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Content-Length: 0
< Content-Type: text/plain
<
* Connection #0 to host localhost left intact
至此,初步TIS的部署就初步完成了,
總結
本文主要介紹了Triton Inference Server的安裝教程,具體可以查看官方檔案,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/294583.html
標籤:其他
上一篇:遠程除錯方法
下一篇:計算機網路——應用層
