本文為您介紹如何進行模型服務定時部署。
背景資訊
目前支援使用以下任意一種方式來定時部署EAS服務。
在Designer中通過更新EAS服務組件,來更新已部署的EAS服務。
搭配使用EAS和DataWorks來定時部署EAS服務。
前提條件
使用方式情節一部署EAS服務
待更新的模型已儲存在OSS Bucket中。
使用方式情節二部署EAS服務
購買DataWorks獨享調度資源群組,詳情請參見新增和使用獨享調度資源群組。
購買PAI,詳情請參見開通並建立預設工作空間。
完成定時訓練,並將模型儲存至固定地址,詳情請參見使用DataWorks離線調度Designer工作流程。
如果RAM使用者進行定時自動模型部署,則需要對其賦予DataWorks相關許可權及EAS模型部署許可權,詳情請參見RAM使用者登入並使用DataWorks和雲產品依賴與授權:EAS。
使用限制
使用方式情節二部署EAS服務:
僅支援使用DataWorks獨享調度資源群組,不支援使用公用資源群組。
方案一:使用Designer-更新EAS服務元件
步驟一:建立Designer工作流程
如果您的模型是基於Designer工作流程訓練得到的,可以直接在訓練組件下遊串連更新EAS服務組件,詳情請參見線上模型服務定時自動更新。
如果您的模型不是在Designer中訓練得到的,但是儲存在OSS Bucket中,也可以建立一個空白工作流程,詳情請參見建立自訂工作流程。並參照下圖拖入讀OSS資料組件和更新EAS服務元件連線使用。在讀OSS資料組件中配置OSS資料路徑為模型儲存的路徑即可。
如果您的模型是從一個自己規劃的OSS目錄中按時間讀取的,可以在工作流程中配置全域變數。並在讀OSS資料群組件中引入全域變數進行模型路徑配置,例如:
oss://examplebucket.oss-cn-shanghai-internal.aliyuncs.com/${date}/heart.pmml
。說明您可以先使用頁面的OSS直接選取器選到一個有效模型檔案路徑,再將路徑中和時間變數相關的部分用全域變數進行替換,可以減少手動進行endpoint等配置輸入的複雜度。
步驟二:部署上述工作流程至DataWorks
參考使用DataWorks離線調度Designer工作流程,將上述工作流程一鍵部署至DataWorks作為定時調度節點。
如果您在步驟一中引入了Designer全域變數,請參考樣本2:定時調度參數替換,在節點調度配置中將全域變數的配置替換成所需的系統變數。
步驟三:部署後查看定時更新的服務版本
查看定時部署的模型服務版本,具體操作步驟如下。
登入PAI控制台。
在左側導覽列單擊工作空間列表,在工作空間列表頁面中單擊周期性更新的模型服務所處的工作空間名稱,進入對應工作空間內。
按照下圖操作指引,查看模型服務自動更新的所有歷史版本。
方案二:手動在DataWorks中進行部署
步驟一:建立獨享調度資源群組
登入DataWorks控制台。
單擊左側導覽列資源群組列表,在獨享資源群組頁簽下單擊建立調度資源群組,在購買頁面根據業務需要配置相應的參數,配置要點如下。
參數
描述
地區
選擇後續需要使用此獨享資源群組的地區。
說明獨享調度資源群組不支援跨地區使用。例如,華東2(上海)地區的獨享資源,只能給華東2(上海)地區的工作空間使用。
獨享資源類型
選擇為獨享調度資源。
獨享調度資源
選擇獨享調度資源群組的規格大小,不同規格的費用及最大並發運行執行個體數存在差異。詳情請參見獨享調度資源群組計費說明:訂用帳戶。
資源數量
資源群組中的機器數量。為保證生產環境的高可用性,資源數量建議選擇為2個及2個以上。
計費周期
獨享資源群組為訂用帳戶服務,為保障服務不中斷,建議您勾選到期自動續約。資源群組建立完後,您也可以前往阿里雲續約管理頁面,開啟或取消自動續約服務。詳情請參見通用參考:停止使用DataWorks商品。
資源名稱
設定資源群組的名稱,此名稱需在租戶內唯一,請避免重複,否則會導致在後續進行確定操作時報錯。
說明租戶即主帳號,一個租戶(主帳號)下可以有多個使用者(子帳號)。
單擊立即購買,根據介面提示進行付款等操作後即可完成購買獨享調度資源群組。
購買後,DataWorks即開始初始化此獨享資源群組,當資源群組狀態為運行中後,獨享資源群組即已添加至控制台。
說明獨享資源群組的初始化需要約20分鐘,請您耐心等待其狀態更新為運行中。
步驟二:綁定歸屬的工作空間
獨享調度資源群組需要綁定歸屬的工作空間,才可以在對應的工作空間下選擇該資源群組。
在資源群組列表的獨享資源群組頁簽下,單擊相應資源群組後的修改歸屬工作空間。
在修改歸屬工作空間單擊對應工作空間後的綁定,即可將獨享資源群組綁定至此工作空間。
步驟三:建立商務程序
登入DataWorks控制台,切換至目標地區後,單擊左側導覽列的 ,在下拉框中選擇對應工作空間後單擊進入資料開發。
在資料開發頁面,滑鼠移至上方至表徵圖,單擊建立商務程序。
在建立商務程序對話方塊中,輸入業務名稱和描述。
單擊建立。
在商務程序頁面,拖拽通用Shell節點至右側畫布。
在建立節點頁面的名稱文字框,輸入部署節點。
單擊確認。
步驟四:部署初始模型
因為定時自動部署是在初始模型服務基礎上,增加一個模型服務版本,作為線上運行服務。所以定時自動部署之前,需要先部署初始模型。如果已經存在初始模型服務,則直接執行步驟五。
編輯部署指令碼。
在商務程序頁面,雙擊已建立的Shell節點(部署節點)。
在Shell節點頁面,輸入如下命令。
# 編寫服務部署描述檔案。 cat << EOF > echo.json { "name": "yourModelName", "generate_token": "true", "model_path": "yourModelAdress", "processor": "yourProcessorType", "metadata": { "instance": 1, #可以根據實際情況修改Instance數量。 "cpu": 2, #可以根據實際情況修改CPU數量。 "memory": 4000 } } EOF # 執行部署命令。 /home/admin/usertools/tools/eascmd64 -i <yourAccessKeyID> -k <yourAccessKeySecret> -e pai-eas.cn-shanghai.aliyuncs.com create echo.json
重要如果您使用的獨享調度資源群組是在2022年8月10日之前建立的,則上述指令碼的第16行代碼,需要將
/home/admin/usertools/tools/eascmd64 ***
修改為/home/admin/usertools/tools/eascmd ***
。echo.json是描述服務相關資訊(模型儲存位置及使用資源等)的JSON檔案,以下參數需要根據實際情況配置:
name:模型服務名稱必須在同地區內唯一,是模型服務的唯一標識,可以結合業務含義命名。
model_path:訓練模型的儲存位置,支援HTTP和OSS地址。
如果使用HTTP地址,則所需的檔案必須為TAR、GZ、BZ2及ZIP等壓縮包格式。如果使用OSS地址,則可以指定壓縮包檔案路徑或目錄路徑。使用OSS地址時,需要指定Endpoint,即在上述服務部署描述檔案中增加
"oss_endpoint":"oss-cn-beijing.aliyuncs.com",
程式碼(按照實際情況修改地區)。說明使用OSS儲存模型時,需要為PAI賦予OSS存取權限,詳情請參見OSS授權。
processor:Processor類型。
metadata:服務的Meta資訊,需要根據實際情況修改。詳細的欄位資訊請參見命令使用說明。
yourAccessKeyID:Access Key ID。如何擷取AccessKey,詳情請參見如何擷取AccessKey。
yourAccessKeySecret:Access Key Secret。如何擷取AccessKey,詳情請參見如何擷取AccessKey
Endpoint:部署命令
-e
後的Endpoint參數與地區的對應關係如下。地區
Endpoint
華東2(上海)
pai-eas.cn-shanghai.aliyuncs.com
華北2(北京)
pai-eas.cn-beijing.aliyuncs.com
華東1(杭州)
pai-eas.cn-hangzhou.aliyuncs.com
華南1(深圳)
pai-eas.cn-shenzhen.aliyuncs.com
中國(香港)
pai-eas.cn-hongkong.aliyuncs.com
新加坡
pai-eas.ap-southeast-1.aliyuncs.com
印尼(雅加達)
pai-eas.ap-southeast-5.aliyuncs.com
德國(法蘭克福)
pai-eas.eu-central-1.aliyuncs.com
運行指令碼。
在Shell節點頁面,單擊頁面上方的表徵圖。
在警告對話方塊,單擊繼續運行。
在運行參數頁面,選擇調度資源群組為已建立的獨享資源群組。
單擊確定。
運行完成後,即可產生一個線上的模型服務。您可以參見以下步驟,在PAI控制台查看該模型服務。
(可選)查看部署的模型服務。
登入PAI控制台。
在左側導覽列單擊工作空間列表,在工作空間列表頁面中單擊待操作的工作空間名稱,進入對應工作空間內。
按照下圖操作指引,查看已部署的模型服務。
後續步驟中,將不斷對該模型服務增加服務版本,從而實現模型定時部署。
步驟五:編輯定時自動部署指令碼
編輯步驟四中的Shell節點指令碼,樣本如下(如果已執行步驟四,則前14行代碼無需修改。如果未執行步驟四,則需要根據實際情況修改前14行代碼中的參數值)。
# 編寫服務部署描述檔案。 cat << EOF > echo.json { "name": "yourModelName", "generate_token": "true", "model_path": "yourModelAdress", "processor": "yourProcessorType", "metadata": { "instance": 1, "cpu": 2, "memory": 4000 } } EOF #第14行代碼。 # 執行模型更新部署。每執行一次定時部署調度,系統就會在原模型服務基礎上,增加一個模型服務版本,作為最新的線上運行服務。 /home/admin/usertools/tools/eascmd64 -i <yourAccessKeyID> -k <yourAccessKeySecret> -e pai-eas.cn-shanghai.aliyuncs.com modify <yourModelName> -s echo.json # 此處可以編寫服務的測試邏輯。 # 如果測試服務發生異常,則使用下述命令復原模型服務。 #/home/admin/usertools/tools/eascmd64 -i <yourAccessKeyID> -k <yourAccessKeySecret> -e pai-eas.cn-shanghai.aliyuncs.com version -f <The name of the model to be rolled back> 1
重要如果您使用的獨享調度資源群組是在2022年8月10日之前建立的,則上述指令碼的第16行和第19行代碼,需要將
/home/admin/usertools/tools/eascmd64 ***
修改為/home/admin/usertools/tools/eascmd ***
。其中的參數解釋請參見步驟四:部署初始模型。
步驟六:執行定時調度
執行調度任務。
在Shell節點頁面,單擊頁面右側的調度配置。
在調度配置頁面的時間屬性地區,選擇調度周期。
在調度依賴地區,單擊依賴的上遊節點後的使用工作空間根節點。
配置依賴關係,詳情請參見配置同周期調度依賴。
單擊Shell節點頁面上方的表徵圖,儲存配置。
單擊Shell節點頁面上方的表徵圖,提交調度任務。
查看定時調度的運行執行個體。
在Shell節點頁面,單擊右上方的營運。
在營運中心頁面,選擇周期任務營運>周期執行個體。
在執行個體詳情頁面,查看模型自動部署的定時時間。
選擇操作列下的更多>查看作業記錄,查看每次定時部署的作業記錄。
查看定時部署的模型服務。
登入PAI控制台。
在左側導覽列單擊工作空間列表,在工作空間列表頁面中單擊待操作的工作空間名稱,進入對應工作空間內。
按照下圖操作指引,查看模型服務自動更新的所有歷史版本。