在部署服務時,只指定單一規格的計算資源,會出現由於該規格庫存不足導致服務長時間無法拉起的情況。針對該問題,EAS部署環節支援多規格執行個體選擇,通過遍曆設定檔中提供的規格列表來拉起資源,從而極大降低單一規格庫存不足帶來的部署風險。本文為您介紹多規格執行個體配置方法。
前提條件
如果您使用本地用戶端方式配置多規格執行個體,則需要完成以下操作:
已下載EASCMD用戶端並認證成功,具體操作,請參見下載並認證用戶端。
使用限制
僅支援部署在公用資源群組上的EAS服務配置多規格執行個體。
如何使用多規格執行個體
您可以在建立服務時配置多規格執行個體,也可以對已有的服務直接更新來實現多規格執行個體的配置。
以下面的資源配置目標為例來介紹如何通過控制台和本地用戶端實現多規格執行個體的配置。
資源類型 | 機器型號 | 執行個體規格 | 出價 |
搶佔型 | 8vcpu+16GB | ecs.c8i.2xlarge | 1 |
常規型 | 4vcpu+8GB | ecs.c8i.xlarge | 不需要 |
通過控制台配置多規格執行個體
登入PAI控制台,左側導覽列選擇模型部署 > 模型線上服務(EAS),如果有多個工作空間,選擇待操作的工作空間名稱進入EAS。
建立服務:在推理服務頁簽,單擊部署服務,選擇自訂模型部署 > 自訂部署。
更新服務:在推理服務頁簽的服務列表中找到要操作的服務,操作列單擊更新。
在資源部署資訊模組,配置以下關鍵參數,其他參數配置詳情,請參見服務部署:控制台。
參數
描述
資源群組種類
選擇公用資源群組。
資源配置方法
選擇性價比資源配置。
搶佔型保留時間長度
僅資源類型選擇搶佔型時,該配置生效。支援以下兩種配置方式:
設定執行個體使用1小時:您可以為搶佔型執行個體設定1小時保護期,即執行個體搶佔成功後,預設至少可以使用1小時。
無確定保護期:表示禁用保護期。不保證有固定時間長度的保護期來保障資源的使用。
關於搶佔型執行個體的詳細介紹,請參見進階配置:搶佔型執行個體選擇。
部署資源
資源類型:支援搶佔型和常規型。
機器型號:選擇合適的機器型號。
出價:僅搶佔型資源需要設定出價,系統根據出價來自動競價搶佔資源。
如果搶佔式資源執行個體庫存充足,且出價不低於當前搶佔式執行個體市場價,可以使用搶佔式執行個體。
配置多規格執行個體:
您可以單擊來配置多規格執行個體,最多支援添加5個資源類型。系統會按照配置規格的先後順序作為優先順序排序來拉起資源。
單擊部署/更新。待服務狀態變為運行中時,表明服務部署成功。
通過本地用戶端配置多規格執行個體
準備JSON格式的檔案,命名為
service.json
,檔案內容樣本如下。{ "name": "service_name", "model_path": "http://examplebucket.aliyuncs.com/models%2Fmnist_saved_model.tar.gz", "processor": "tensorflow_cpu_1.12", "metadata": { "instance": 1 }, "cloud": { "computing": { "instances": [ { "type": "ecs.c8i.2xlarge", "spot_price_limit": 1 }, { "type": "ecs.c8i.xlarge" } ], "disable_spot_protection_period": false } } }
其中關鍵參數說明如下。其他參數說明,詳情請參見命令使用說明。
參數
描述
instance
服務啟動的執行個體數量。上述JSON檔案中表示啟動1個執行個體。
instances
表示允許的執行個體規格,支援配置多個。當執行個體規格競價失敗或庫存不足時,按照配置順序依次嘗試使用下一個執行個體規格建立服務。
type:表示配置的執行個體規格。
spot_price_limit為選擇性參數:
當配置該參數時:表示對應執行個體規格使用搶佔式資源執行個體,並指明價格上限。單位為USD,支援隨用隨付。
當不配置該參數時:表示對應執行個體規格為普通的隨用隨付執行個體。
disable_spot_protection_period
支援以下取值:
false(預設值):表示在搶佔式資源執行個體建立成功後,預設有1小時保護期。在保護期內即使市場價格超過了出價,執行個體也不會被釋放。
true:表示禁用保護期,無保護期執行個體會始終比有保護期執行個體優惠10%左右。
開啟終端工具,在JSON檔案所在目錄,執行以下命令。更多操作說明,請參見命令使用說明。
以Windows 64版本為例:
建立服務
eascmdwin64.exe create <service.json>
其中:<service.json>需要替換為您建立的JSON檔案名稱。
更新服務
eascmdwin64.exe modify <service_name> -s <service.json>
其中:
<service_name>需要替換為要更新的EAS服務名稱。
<service.json>需要替換為您建立的JSON檔案名稱。