Ubuntu/Python-2.7 | ubuntu/python-3.6 |
---|---|
多模型服務器(MMS)是一種靈活且易於使用的工具,用於使用使用任何ML/DL框架訓練的深度學習模型。
使用MMS服務器CLI或預配置的Docker映像來啟動設置HTTP端點以處理模型推理請求的服務。
下面提供了有關服務和包裝的快速概述和示例。文檔文件夾中提供了詳細的文檔和示例。
加入我們Slack頻道與開發團隊保持聯繫,提出問題,找出什麼是烹飪等等!
在進一步進行本文檔之前,請確保您有以下先決條件。
Ubuntu,Centos或MacOS。 Windows支持是實驗性的。以下說明僅關注Linux和MacOS。
Python-多模型服務器要求Python運行工人。
PIP -PIP是Python軟件包管理系統。
Java 8 -Multi Model Server需要Java 8啟動。您有以下安裝Java 8的選項:
對於Ubuntu:
sudo apt-get install openjdk-8-jre-headless
對於Centos:
sudo yum install java-1.8.0-openjdk
對於MacOS:
brew tap homebrew/cask-versions
brew update
brew cask install adoptopenjdk8
步驟1:設置虛擬環境
我們建議在虛擬環境中安裝和運行多模型服務器。在虛擬環境中運行和安裝所有Python依賴性是一個很好的做法。這將提供依賴關係和輕鬆依賴管理的隔離。
一種選擇是使用Virtualenv。這用於創建虛擬Python環境。您可以為Python 2.7安裝並激活virtualenv,如下所示:
pip install virtualenv
然後創建一個虛擬環境:
# Assuming we want to run python2.7 in /usr/local/bin/python2.7
virtualenv -p /usr/local/bin/python2.7 /tmp/pyenv2
# Enter this virtual environment as follows
source /tmp/pyenv2/bin/activate
有關更多信息,請參閱Virtualenv文檔。
步驟2:安裝MXNET MMS不會默認安裝MXNET引擎。如果尚未在虛擬環境中安裝,則必須安裝其中一個MXNET PIP軟件包。
對於CPU推斷,建議使用mxnet-mkl
。按照以下方式安裝它:
# Recommended for running Multi Model Server on CPU hosts
pip install mxnet-mkl
對於GPU推斷,建議使用mxnet-cu92mkl
。按照以下方式安裝它:
# Recommended for running Multi Model Server on GPU hosts
pip install mxnet-cu92mkl
步驟3:安裝或升級MMS如下:
# Install latest released version of multi-model-server
pip install multi-model-server
要從以前版本的multi-model-server
升級,請參閱遷移參考文檔。
筆記:
model-archiver
將以MMS作為依賴關係安裝。有關更多選項和詳細信息,請參見Model-Arachiver。安裝後,您可以將MMS Model Server啟動並很快運行。嘗試--help
來查看所有可用的CLI選項。
multi-model-server --help
對於此快速啟動,我們將跳過大多數功能,但是請務必在準備就緒時查看完整的服務器文檔。
這是服務對象分類模型的簡單示例:
multi-model-server --start --models squeezenet=https://s3.amazonaws.com/model-server/model_archive_1.0/squeezenet_v1.1.mar
在執行上面的命令後,您的主機上運行MMS,偵聽推理請求。請注意,如果在MMS啟動過程中指定模型 - 它將自動將後端工人縮放到等於可用VCPU的數字(如果您在CPU實例上運行)或可用GPU的數量(如果您在GPU實例上運行)。如果有大量計算資源(VCPU或GPU)強大的主機,此啟動和自動化過程可能需要大量時間。如果您想最大程度地減少MMS啟動時間任何特定模型)。
要測試它,您可以打開一個運行MMS旁邊的新終端窗口。然後,您可以使用curl
下載小貓的這些可愛圖片之一,而Curl的-o
標誌將為您命名為kitten.jpg
。然後,您將用小貓的圖像curl
POST
到MMS預測端點。
在下面的示例中,我們為這些步驟提供了快捷方式。
curl -O https://s3.amazonaws.com/model-server/inputs/kitten.jpg
curl -X POST http://127.0.0.1:8080/predictions/squeezenet -T kitten.jpg
預測端點將返回JSON中的預測響應。它看起來像以下結果:
[
{
"probability" : 0.8582232594490051 ,
"class" : " n02124075 Egyptian cat "
},
{
"probability" : 0.09159987419843674 ,
"class" : " n02123045 tabby, tabby cat "
},
{
"probability" : 0.0374876894056797 ,
"class" : " n02123159 tiger cat "
},
{
"probability" : 0.006165083032101393 ,
"class" : " n02128385 leopard, Panthera pardus "
},
{
"probability" : 0.0031716004014015198 ,
"class" : " n02127052 lynx, catamount "
}
]
您將在對預測端點的curl
調用的響應以及運行MMS的終端窗口中的服務器日誌中看到此結果。它也用指標在本地登錄。
可以從模型動物園下載其他型號,因此也可以嘗試其中一些。
現在,您已經看到與MMS一起使用深度學習模型是多麼容易!您想知道更多嗎?
要停止當前運行模型服務器實例,請運行以下命令:
$ multi-model-server --stop
您會看到輸出指定多模型服務器已停止。
MMS使您可以將所有模型工件包裝成單個模型存檔。這使得共享和部署模型變得容易。要打包模型,請查看模型檔案館文檔
瀏覽到文檔讀取文件以獲取完整的文檔索引。這包括更多示例,如何自定義API服務,API端點詳細信息等。
以下是由MMS支持的深度學習應用程序的一些示例演示:
產品審查分類![]() | 視覺搜索![]() |
面部情緒識別![]() | 神經風格轉移![]() |
我們歡迎所有貢獻!
要提交錯誤或請求功能,請提交GitHub問題。歡迎拉動請求。