部署與生產
你的安裝,部署模型和實驗都是“一鍵式”的。使用SKIL的集群感知系統(tǒng)狼钮,模型可以通過整個集群或單個機器上的API進行部署和訪問,具體取決于你的設置捡絮。
部署在SKIL中有一個特殊的空間熬芜,可以通過單擊左側導航中的“部署(Deployments)”來訪問該空間。部署獨立于工作間運行福稳,以確保生產環(huán)境中沒有意外中斷或錯誤涎拉。
創(chuàng)建部署
導航到部署屏幕后,單擊右角的“新建部署(New Deployment)”按鈕。這將打開一個提示鼓拧,可以在其中輸入新部署組的名稱半火。
你可能希望根據(jù)操作方式邏輯地分離部署。例如季俩,你可能有多個產品團隊使用相同的SKIL實例钮糖,或者正在使用一組與特定功能相關的模型。因此酌住,你可以創(chuàng)建“部署A-產品推薦者”和“部署B(yǎng)-欺詐檢測器”店归。
創(chuàng)建部署后,你將看到一個屏幕酪我,允許你上傳深入學習模型消痛、KNN模型和數(shù)據(jù)轉換。
向部署添加轉換和模型有兩個選項:
- 用戶界面文件上傳
- HTTP POST 請求到API
另外還有一個方便的工作間部署功能都哭,將在下一節(jié)中介紹秩伞。
也可以從工作間進行部署
如果你已經從SKIL中的工作間訓練并選擇了一個模型,下一節(jié)將描述如何部署已經存儲在SKIL中的模型质涛。
直接從用戶界面部署新模型或轉換時稠歉,單擊“導入(Import)”按鈕。例如汇陆,當單擊“導入”以獲取深度學習模型時怒炸,將看到以下屏幕:
為模型命名并選擇具有存儲權重的本地文件。此外毡代,如果你不確定文件類型或是否兼容阅羹,請閱讀導入模型頁面。
如果你的模型特別大教寂,那么你需要提供一些JVM參數(shù)捏鱼。JVM參數(shù)與Oracle Java或OpenJDK運行時中使用的典型的JVM參數(shù)相同。例如酪耕,如果要使用具有數(shù)百萬參數(shù)的模型导梆,如VGG-16,則需要提供參數(shù)-xmx15g迂烁。
如果你正在通過編程將模型部署到SKIL看尼,可能是作為自定義管道的一部分,那么你將向/deployment/:deploymentid/model發(fā)出一個HTTP POST請求盟步,其中請求的主體是你希望上傳的模型文件藏斩。
如果你的SKIL節(jié)點是集群的一部分,并且你希望該模型在多個節(jié)點上可用却盘,請將scale設置為等于并發(fā)節(jié)點數(shù)的值狰域。
從工作間部署
假設你已經訓練了你的模型媳拴,并進行了實驗以確定最佳候選,那么你可以直接從特定工作區(qū)的“模型(Models)”選項卡部署兆览。
你可以部署任何工作區(qū)間模型
無論你是否選擇了最佳模型屈溉,部署選項都適用于你訓練過的任何模型。
單擊模型“詳細信息(Details)”窗格右上角的“部署(Deploy)”按鈕啟動部署向導拓颓。向導將引導你完成為模型設置API端點的步驟语婴,這些端點可由外部用戶和服務使用。如果尚未創(chuàng)建部署驶睦,向導將幫助你設置部署。
完成后匿醒,你將被重定向到模型的部署屏幕场航,在那里你可以進行進一步的修改,包括REST端點的名稱廉羔。
多節(jié)點集群
如果你計劃使用集群中的SKIL溉痢,請確保你已成功設置了ZooKeeper,滿足多服務器要求憋他,并選擇了適當?shù)募軜嫼⒈鏒ocker集群。