全部產品
Search
文件中心

Platform For AI:如何定時部署EAS服務

更新時間:Nov 29, 2024

本文為您介紹如何進行模型服務定時部署。

背景資訊

目前支援使用以下任意一種方式來定時部署EAS服務。

前提條件

使用限制

使用方式情節二部署EAS服務:

僅支援使用DataWorks獨享調度資源群組,不支援使用公用資源群組

方案一:使用Designer-更新EAS服務元件

步驟一:建立Designer工作流程

  • 如果您的模型是基於Designer工作流程訓練得到的,可以直接在訓練組件下遊串連更新EAS服務組件,詳情請參見線上模型服務定時自動更新image.png

  • 如果您的模型不是在Designer中訓練得到的,但是儲存在OSS Bucket中,也可以建立一個空白工作流程,詳情請參見建立自訂工作流程。並參照下圖拖入讀OSS資料組件和更新EAS服務元件連線使用。在讀OSS資料組件中配置OSS資料路徑為模型儲存的路徑即可。image

  • 如果您的模型是從一個自己規劃的OSS目錄中按時間讀取的,可以在工作流程中配置全域變數e0593dcccb40d8cf3ec4d602893e682a.png並在讀OSS資料群組件中引入全域變數進行模型路徑配置,例如:oss://examplebucket.oss-cn-shanghai-internal.aliyuncs.com/${date}/heart.pmml

    說明

    您可以先使用頁面的OSS直接選取器選到一個有效模型檔案路徑,再將路徑中和時間變數相關的部分用全域變數進行替換,可以減少手動進行endpoint等配置輸入的複雜度。

步驟二:部署上述工作流程至DataWorks

參考使用DataWorks離線調度Designer工作流程,將上述工作流程一鍵部署至DataWorks作為定時調度節點。

如果您在步驟一中引入了Designer全域變數,請參考全域變數,在節點調度配置中將全域變數的配置替換成所需的系統變數。image

步驟三:部署後查看定時更新的服務版本

查看定時部署的模型服務版本,具體操作步驟如下。

  1. 登入PAI控制台,在頁面上方選擇目標地區,並在右側選擇目標工作空間,然後單擊進入EAS

  2. 按照下圖操作指引,查看模型服務自動更新的所有歷史版本。ad4cd8feb8bb34f963f1f7fdc1c18cd8

方案二:手動在DataWorks中進行部署

步驟一:建立獨享調度資源群組

  1. 登入DataWorks控制台

  2. 單擊左側導覽列中的資源群組,預設進入獨享資源群組頁面,在該頁面建立獨享調度資源群組,具體參數配置說明,請參見新增和使用獨享調度資源群組

步驟二:綁定歸屬的工作空間

獨享調度資源群組需要綁定歸屬的工作空間,才可以在對應的工作空間下選擇該資源群組。

  1. 資源群組列表獨享資源群組頁簽下,單擊相應資源群組後的修改歸屬工作空間

  2. 修改歸屬工作空間單擊對應工作空間後的綁定,即可將獨享資源群組綁定至此工作空間。

步驟三:建立商務程序

  1. 登入DataWorks控制台,切換至目標地區後,單擊左側導覽列的資料開發與治理 > 資料開發,在下拉框中選擇對應工作空間後單擊進入資料開發

  2. 資料開發頁面,滑鼠移至上方至建立表徵圖,單擊建立商務程序

  3. 建立商務程序對話方塊中,輸入業務名稱描述

  4. 單擊建立

  5. 按右鍵目標商務程序,選擇建立節點 > 通用 > Shell

  6. 建立節點頁面的名稱文字框,輸入部署節點,然後單擊確認

步驟四:部署初始模型

因為定時自動部署是在初始模型服務基礎上,增加一個模型服務版本,作為線上運行服務。所以定時自動部署之前,需要先部署初始模型。如果已經存在初始模型服務,則直接執行步驟五。

  1. 編輯部署指令碼。

    1. 在商務程序頁面,雙擊已建立的Shell節點(部署節點)。

    2. 在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

  2. 運行指令碼。

    1. 在Shell節點頁面,單擊頁面上方的2表徵圖。

    2. 警告對話方塊,單擊繼續運行

    3. 運行參數頁面,選擇調度資源群組為已建立的獨享資源群組。

    4. 單擊確定

      運行完成後,即可產生一個線上的模型服務。您可以參見以下步驟,在PAI控制台查看該模型服務。

  3. (可選)查看部署的模型服務。

    1. 登入PAI控制台,在頁面上方選擇目標地區,並在右側選擇目標工作空間,然後單擊進入EAS

    2. 在模型線上服務(EAS)頁面,查看已部署的模型服務。

      後續步驟中,將不斷對該模型服務增加服務版本,從而實現模型定時部署。

步驟五:編輯定時自動部署指令碼

  1. 編輯步驟四中的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 ***

    其中的參數解釋請參見步驟四:部署初始模型

步驟六:執行定時調度

  1. 執行調度任務。

    1. 在Shell節點頁面,單擊頁面右側的調度配置

    2. 調度配置頁面的時間屬性地區,選擇調度周期

    3. 調度依賴地區,單擊依賴的上遊節點後的使用工作空間根節點

    4. 配置依賴關係,詳情請參見配置同周期調度依賴

    5. 單擊Shell節點頁面上方的儲存表徵圖,儲存配置。

    6. 單擊Shell節點頁面上方的提交表徵圖,提交調度任務。

  2. 查看定時調度的運行執行個體。

    1. 在Shell節點頁面,單擊右上方的營運

    2. 營運中心頁面,選擇周期任務營運>周期執行個體

    3. 在執行個體詳情頁面,查看模型自動部署的定時時間

    4. 選擇操作列下的更多>查看作業記錄,查看每次定時部署的作業記錄。

  3. 查看定時部署的模型服務。

    1. 登入PAI控制台,在頁面上方選擇目標地區,並在右側選擇目標工作空間,然後單擊進入EAS

    2. 按照下圖操作指引,查看模型服務自動更新的所有歷史版本。ad4cd8feb8bb34f963f1f7fdc1c18cd8