全部產品
Search
文件中心

Platform For AI:PAI-EAS Spot最佳實務

更新時間:Dec 05, 2024

PAI-EAS Spot是基於競價執行個體的一種經濟高效的線上推理服務部署方案,特別適合對成本敏感但能容忍一定程度響應延遲的應用情境。本文為開發人員提供使用PAI-EAS Spot時的最佳實務指南,協助您更有效地利用資源降低成本,同時保持服務的穩定性。

適用情境

  • 非關鍵業務:即使偶爾遇到服務中斷也不會造成重大影響的應用。

  • 可容錯處理:能夠通過重試機制或其他容錯手段來應對短暫的服務不可用情況。

  • 成本最佳化需求高:希望通過採用更加靈活且便宜的計算資源來降低營運成本的企業和個人專案。

Spot服務配置方法

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

  2. 模型線上服務(EAS)頁面,單擊部署服務,在自訂模型部署地區,單擊自訂部署

  3. 在資源部署模組中,資源類型選擇公用資源,選擇資源規格(推薦使用L或H機型),單擊開啟競價模式,填寫出價。您可以單擊歷史價格曲線,追溯並查看該機型過去48小時內的市場價記錄作為出價參考。

    Spot_部署

    重要
    • 出價不等於成交價,市場價才是成交價!出價反映的是客戶願意支付的最高價格。只要市場價格低於客戶的出價,資源就會被保留而不會被釋放。在資源持有期間,客戶的實際支付價格將遵循市場價格,而非出價。

    • 非常建議客戶將出價設定為目錄價格的20%。例如,對於8核單卡L20的隨用隨付目錄價為14.4元/小時,目前市場上的Spot價格不會超過目錄價的20%,即2.88元/小時。這樣的策略可以確保客戶在享受價格優惠的同時,穩定使用所需資源。詳情請參見競價執行個體選擇

    • 建議您同時配置常規型執行個體,避免競價執行個體搶佔失敗導致服務部署失敗。

  4. 在服務部署成功後,在EAS服務詳情頁面中可便捷地查閱該機型過去48小時內的價格波動情況,從而對成本變化有更清晰的瞭解和掌握。Spot價格曲線

Spot回收和容錯機制

EAS平台側回收機制

當Spot執行個體即將被回收時,EAS預計會在大約5分鐘前收到預警通知。接到通知後,EAS執行個體將開始進行優雅退出,確保從即將回收的執行個體上平穩移出流量,避免服務要求中斷。同時,EAS會自動啟動新的執行個體,新執行個體根據使用者資源配置中指定的機型順序依次嘗試部署。這一流程旨在最小化因執行個體回收帶來的影響,保障客戶業務的順暢運行。

重要

使用者需要配置後付費執行個體常規型資源以防止所有Spot執行個體被佔用情況出現,確保服務的連續性和穩定性。

觸發回收機制後切換回Spot執行個體

當Spot執行個體被回收並觸發上述機制將服務執行個體替換為常規型資源後,如果希望在競價執行個體庫存恢複後再將服務執行個體切換為競價執行個體,請通過“執行個體重建”功能將該執行個體切換為競價執行個體。

通過“執行個體重建”功能釋放執行個體資源並重新建立相同配置執行個體:

Spot_執行個體重建

使用者配置策略建議

當Spot執行個體即將被回收時,EAS會自動啟動新的執行個體並開始進行優雅退出,為了提升服務的穩定性和可靠性,提升新執行個體拉起的效率,建議客戶使用以下配置策略。

配置多規格執行個體

為了確保服務的穩定性和可靠性,我們建議客戶在配置機型時採取多元化策略,選擇多種不同規格的資源。尤為重要的是,建議客戶在配置列表中包含至少一種常規型資源(即關閉競價開關)作為保底選項。這樣,EAS服務將根據客戶指定的機型順序依次嘗試部署,從而最大限度地確保服務能夠穩定啟動和運行。多執行個體選擇功能多規格執行個體選擇

spot_多規格

配置本地目錄記憶體緩衝

為了提升Spot執行個體被回收時,新執行個體啟動時拉模數型檔案的效率,可以通過配置本地目錄記憶體緩衝,利用空閑記憶體將本地目錄中的模型檔案快取到節點記憶體中,新執行個體啟動時將不需要再從掛載的資料集中讀模數型檔案,從而可以縮短新執行個體擴容時讀模數型檔案的時間,防止Spot回收導致服務執行個體停用時間變長。

建議在EAS服務建立過程中開啟記憶體緩衝加速來提升執行個體擴容效率,詳情請參見記憶體緩衝本地目錄

Spot_記憶體緩衝加速

開啟記憶體緩衝加速(cachefs)後的加速效果可參考下表。以Stable Diffusion模型切換情境為例,對比直接從OSS掛載目錄中讀模數型檔案,當開啟記憶體緩衝加速後服務擴容時,新執行個體初始化時模型可直接從服務內其他執行個體記憶體讀取(cachefs遠端命中),降低模型載入耗時。

模型

模型大小

模型載入耗時(s)

OSS掛載

cachefs遠端命中

anything-v4.5.safetensors

7.2G

89.88

15.18

Anything-v5.0-PRT-RE.safetensors

2.0G

16.73

5.46

cetusMix_Coda2.safetensors

3.6G

24.76

7.13

chilloutmix_NiPrunedFp32Fix.safetensors

4.0G

48.79

8.47

CounterfeitV30_v30.safetensors

4.0G

64.99

7.94

deliberate_v2.safetensors

2.0G

16.33

5.55

DreamShaper_6_NoVae.safetensors

5.6G

71.78

10.17

pastelmix-fp32.ckpt

4.0G

43.88

9.23

revAnimated_v122.safetensors

4.0G

69.38

3.20

使用企業版ACR

為了提升Spot執行個體被回收時,新執行個體啟動時拉取鏡像的效率,建議使用企業版ACR並開啟鏡像加速的功能,使用加速鏡像部署EAS服務,加速鏡像地址的格式是在普通鏡像URL地址後添加_accelerated尾碼,同時在部署EAS服務時請選擇您企業版ACR執行個體中使用的VPC網路。

使用企業版ACR,並選擇標準版執行個體規格,建立鏡像倉庫時開啟鏡像加速,從而提升新執行個體擴容效率,詳情請參見鏡像加速

EAS自訂部署時的鏡像配置如圖:EAS_加速鏡像

購買ACR標準版的執行個體規格:

ACR_購買

建立鏡像倉庫時開啟鏡像加速:

ACR_建立倉庫

搭配彈性擴縮容

在業務負載出現顯著的波峰波穀時,建議開啟水平自動擴縮容功能,可以採用專屬資源群組保底+spot資源彈性+一般資源兜底的方式實現業務平穩拉起並提升性價比。具體配置策略如下:

  1. 購買一部分的EAS預付費/後付費專屬資源群組來保證服務的承載流量下限,在控制台配置專屬資源群組配置GPU、CPU和記憶體需求保障服務可拉起。

  2. 開啟EAS彈性資源集區配置多種資源規格,按照資源排序優先選擇競價資源,最後為保底資源,這樣可以實現業務波峰時優先彈到庫存充足的spot資源,在spot資源不足時彈到一般資源,保障業務在波峰時既可優先使用性價比資源又可實現業務平穩擴容。

    eas彈性資源集區

  3. 部署好服務後在服務詳情頁中,根據業務指標開啟水平自動彈性擴縮容,可通過QPSCPU利用率GPU利用率隊列長度等指標進行自動擴縮容,也可自訂指標來進行自動擴縮容。

    image.png

    同時也可根據業務流量跟隨時間變化的波動來開啟定時擴縮容功能。

    image.png

建立執行個體時,會優先使用專屬資源群組資源,其次按照彈性資源集區的排序依次輪巡可用資源。

  • 例如,當專屬資源群組資源已用滿,需要彈到公用資源集區建立多個執行個體時,系統會判斷當前ecs.gn8v-8x.48xlarge庫存足夠建立幾個執行個體,如果資源不夠則判斷ecs.gn8is-8x.32large可建立幾個執行個體,如果都不夠則採用ml.gu7i.c8m30.1-gu30來建立剩餘執行個體。

  • 例如,如果需要在專屬資源群組的基礎上彈出來8個執行個體,此時可能出現的情況是,專屬資源群組有2個執行個體,ecs.gn8v-8x.48xlarge有3個執行個體,ecs.gn8is-8x.32large有2個執行個體,ml.gu7i.c8m30.1-gu30有3個執行個體。

EAS彈性配置具體方法可參考如下文檔: