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