模型開(kāi)發(fā)完畢后需要對(duì)模型存在多種部署應(yīng)用方式,需要根據(jù)現(xiàn)場(chǎng)環(huán)境或客戶(hù)需求選擇合適的模型部署方式。在Tempo人工智能平臺(tái)支持多種模型部署方式,包括異步服務(wù)、同步服務(wù)、流服務(wù)、灰度服務(wù)、調(diào)度任務(wù)、調(diào)度編排、離線調(diào)用,以滿(mǎn)足工程化的應(yīng)用。
一、定時(shí)調(diào)度
最常見(jiàn)的算法模型部署方式是定時(shí)調(diào)度,讓模型以固定的時(shí)間周期性執(zhí)行。
調(diào)度任務(wù)是基于已發(fā)布的異步服務(wù)構(gòu)建調(diào)度任務(wù),通過(guò)調(diào)度任務(wù)的形式來(lái)定期自動(dòng)執(zhí)行指定的流程。調(diào)度任務(wù)是針對(duì)于單個(gè)任務(wù)的使用場(chǎng)景。
調(diào)度編排可以將Tempo人工智能平臺(tái)中發(fā)布成功的異步服務(wù)進(jìn)行統(tǒng)一的調(diào)度管理。支持復(fù)雜業(yè)務(wù)關(guān)系調(diào)度配置、綜合管理任務(wù)執(zhí)行計(jì)劃、任務(wù)歷史數(shù)據(jù)的追補(bǔ)等功能。主要適用于多個(gè)任務(wù)的串連、并連、混編等場(chǎng)景。
詳情查閱:產(chǎn)品幫助文檔
二、在線事件觸發(fā)
在線事件觸發(fā)是通過(guò)在線事件以API接口的方式調(diào)用模型。
異步服務(wù)是通過(guò)將已發(fā)布的流程以REST服務(wù)方式進(jìn)行應(yīng)用,通過(guò)該方式提供的接口,可以獲取任務(wù)的執(zhí)行狀態(tài),以便開(kāi)發(fā)人員基于該狀態(tài)開(kāi)發(fā)其它相關(guān)聯(lián)功能服務(wù)。詳情查閱:產(chǎn)品幫助文檔
同步服務(wù)可以API形式供第三方系統(tǒng)調(diào)用,通過(guò)在第三方系統(tǒng)輸入?yún)?shù),調(diào)用服務(wù),并將服務(wù)的執(zhí)行結(jié)果返回到第三方系統(tǒng)中,支持服務(wù)測(cè)試,可查看實(shí)時(shí)返回的結(jié)果。同步服務(wù)一般提供模型預(yù)測(cè)服務(wù),根據(jù)傳入數(shù)據(jù),實(shí)時(shí)返回預(yù)測(cè)數(shù)據(jù)。要求調(diào)用的流程中必須有同步輸入和同步輸出節(jié)點(diǎn),同步服務(wù)只返回?cái)?shù)據(jù)集結(jié)果。同步服務(wù)流程示例如圖所示:
注:點(diǎn)擊【開(kāi)啟】,啟動(dòng)同步服務(wù),服務(wù)狀態(tài)顯示已啟動(dòng),則可進(jìn)行調(diào)用。也可在配置中通過(guò)添加實(shí)例開(kāi)啟同步服務(wù)。
流服務(wù),即流程中有kafka輸入節(jié)點(diǎn)的服務(wù)。開(kāi)啟服務(wù)后,等待消息隊(duì)列中有數(shù)據(jù)后就會(huì)執(zhí)行流程??稍诜?wù)列表中查看日志信息。
灰度發(fā)布是指在黑與白之間能夠平滑過(guò)度的一種方式,實(shí)現(xiàn)不停機(jī)切換模型。創(chuàng)建灰度服務(wù)時(shí),可以綁定一個(gè)同步服務(wù),或綁定兩個(gè)輸入元信息相同的同步服務(wù),灰度服務(wù)只根據(jù)發(fā)布策略做同步服務(wù)的轉(zhuǎn)發(fā),可根據(jù)實(shí)際運(yùn)行情況變更綁定的同步服務(wù)。
詳情查閱:產(chǎn)品幫助文檔
三、離線調(diào)用
離線調(diào)用是脫離平臺(tái)調(diào)用模型。Tempo人工智能平臺(tái)提供的離線服務(wù)包機(jī)制可以滿(mǎn)足用戶(hù)對(duì)于平臺(tái)中的成果的離線使用需求,用戶(hù)可以基于該離線服務(wù)包封裝自己的應(yīng)用服務(wù),而不依賴(lài)于Tempo人工智能平臺(tái),可以很好的滿(mǎn)足用戶(hù)的工程應(yīng)用需求。
在離線調(diào)度時(shí),首先需要將模型的輸入輸出改成同步輸入和同步輸出。在同步服務(wù)中支持下載公共包和下載服務(wù)包,實(shí)現(xiàn)模型脫離平臺(tái)離線調(diào)用。在平臺(tái)中支持2種方式:流程和管道。流程是常規(guī)的流程發(fā)布的同步服務(wù);管道是指在管道分析頁(yè)建立預(yù)測(cè)流程,發(fā)布為同步服務(wù),方便用戶(hù)建立輕量化的預(yù)測(cè)或處理過(guò)程,脫離原有的spark框架高效執(zhí)行(但功能有限)。可結(jié)合實(shí)際業(yè)務(wù)需求選擇合適的方式。
在普通流程離線調(diào)用時(shí),需要注意以下幾點(diǎn)建議:
1)該模式不適用于訓(xùn)練建模的流程,但可以用于預(yù)測(cè)推理的流程;
2)該模式不適用于對(duì)現(xiàn)有流程進(jìn)行大的修改,如增刪節(jié)點(diǎn),更改節(jié)點(diǎn)之間的連接關(guān)系、節(jié)點(diǎn)參數(shù)的大批量修改等;
3)該模型對(duì)于Python擴(kuò)展編程等節(jié)點(diǎn)中的代碼修改一定要慎重,避免因?yàn)楦袷絾?wèn)題導(dǎo)致的執(zhí)行失敗。
在管道離線調(diào)用時(shí),目前支持的處理節(jié)點(diǎn)較少,在建立模型時(shí)同時(shí)需要考慮平臺(tái)已有功能的支持程度。
詳情查閱:產(chǎn)品幫助文檔
四、基于三方模型的部署
用戶(hù)基于線下好的Python模型,可以直接通過(guò)三方模型進(jìn)行部署,同樣支持同步服務(wù)、異步服務(wù)、調(diào)度任務(wù)。