模型在線服務EAS(Elastic Algorithm Service)是PAI產品為實現一站式模型開發部署應用,針對在線推理場景提供的模型在線服務,支持將模型服務部署在公共資源組或專屬資源組,實現基于異構硬件(CPU和GPU)的模型加載和數據請求的實時響應。
EAS產品架構
模型在線服務EAS(Elastic Algorithm Service)是一種模型在線服務平臺,可支持您一鍵部署模型為在線推理服務或AI-Web應用。它提供的彈性擴縮容和藍綠部署等功能,可以支撐您以較低的資源成本獲取高并發且穩定的在線算法模型服務。此外,EAS還提供了資源組管理、版本控制以及資源監控等功能,方便您將模型服務應用于業務。EAS適用于實時同步推理、近實時異步推理等多種AI推理場景,并具備完整運維監控體系等能力。
基礎設施層:支持異構硬件(CPU或GPU)的基礎設施,并提供了AI專屬的GU機器規格和搶占型實例,以幫助您降低成本并提高效率。
容器調度層:通過自動擴縮容等多種方法,幫助您在業務的波峰波谷中更高效地管理集群資源,實現降本增效的目標。支持以下幾種方法:
彈性擴縮容:當業務負載呈現顯著的波峰波谷時,通過開啟彈性擴縮容功能,系統可自動調整實例數量,實現動態管理線上服務的計算資源,避免資源浪費。
定時擴縮容:在可以預估業務負載的場景中,服務可以定時將實例數自動擴縮容到指定數量,從而避免資源浪費。
彈性資源池:如果專屬資源組內資源已經占滿,服務會自動將擴容的實例彈到按量計費的公共資源組機器上,以保障服務的穩定性。
模型部署層:通過服務部署發布的多項功能,幫助您實時高效地監控服務狀態,并簡化服務發布和更新流程,以適配最合理的計算資源。服務部署發布支持的功能如下:
一鍵壓測:支持動態加壓,并能自動尋找服務的負載上限。此外,還提供了實時查看壓測秒級監控數據和查看報告的功能。
灰度發布:支持將多個服務加入同一個灰度群組,其中一些服務用于生產環境,而另一些服務則用于灰度環境。此外,還支持切換每個服務的流量分配比例,以進行更靈活的灰度測試。
實時監控:服務部署成功后,您可以在服務監控頁面查看相關指標,例如QPS、響應時長、CPU利用率等,以了解服務調用及運行情況。
流量鏡像:支持將當前服務的流量按照一定比例鏡像到目標服務中,同時不影響當前服務的正常運行。這一功能主要用于測試新服務的性能和可靠性。
推理能力:目前EAS支持的推理能力如下:
實時同步推理:適用于個性化搜索、智能對話等場景,具有高吞吐、低延遲的特點,同時不影響線上業務的正常運行。系統還可以根據業務需求適配合理的部署機型,以實現最佳的運行效果。
近實時異步推理:適用于文圖生成、視頻處理等場景,在推理服務內部集成了消息隊列。使得服務能夠按需進行彈性擴縮容,且無需進行運維工作。
部署原理
使用EAS進行模型部署時,支持鏡像部署和Processor部署兩類部署方式,對比介紹如下。
鏡像部署(推薦)
使用鏡像方式部署時,EAS通過拉取容器鏡像服務ACR中的環境鏡像、掛載存儲云產品(對象存儲OSS、文件存儲NAS),來獲取部署前所需的準備內容,包括運行環境、模型以及其他相關文件(如模型前后處理代碼等)。
EAS鏡像部署的流程圖如下。
此方式的部署要點如下。
鏡像部署可以進一步細分為鏡像部署服務和鏡像部署AI-Web應用兩種部署方式。
鏡像部署服務:適用于通過鏡像快速部署服務的場景,部署后可通過API調用服務。
鏡像部署AI-Web應用:更適用于通過鏡像快速部署Web應用的場景,部署后可通過Web應用鏈接直接打開應用頁面進行訪問試用。
兩種部署方式的對比介紹可參見下文步驟2:部署服務中的對比介紹。
PAI為您提供了多個典型場景的官方鏡像便于您高效一鍵部署,您也可以結合業務需求自行開發模型并制作鏡像,制作完成的鏡像需上傳至阿里云鏡像服務ACR中,便于部署時選擇使用。
建議您將模型和模型的前后處理代碼文件上傳至存儲云產品,后續通過掛載方式來獲取對應內容,而非直接打包至自定義鏡像中,在后續模型需頻繁迭代更新時,可方便地替換模型。
使用鏡像部署時,建議您自行構建一個HTTP Server,后續使用EAS部署好服務后,EAS會將調用服務的請求轉發至您自行開發的HTTP Server中,自建的HTTP Server需避開EAS系統監聽端口8080和9090。
使用自定義鏡像進行部署時,請務必將您的鏡像上傳至ACR中再進行使用,否則可能導致在部署時鏡像拉取失敗。如果您使用DSW進行模型開發訓練,也需將鏡像上傳至ACR中才可在EAS中使用。
如果您的自定義的鏡像、預熱數據等內容可在其他多種場景下應用,您也使用PAI AI資產的鏡像和數據集功能,將其沉淀為對應的AI資產進行統一管理。當前EAS不支持使用NAS-CPFS類型的數據集。
Processor部署
準備好模型和Processor文件等服務部署前的準備內容后,分別上傳至存儲云產品(OSS、NAS),EAS通過掛載存儲云產品來獲取部署前所需的準備內容進行服務部署。
EAS Processor部署流程如下。
此方式的部署要點如下。
PAI為您提供了多個典型場景的官方Processor供您使用,您也可以結合業務需求自行開發模型并開發自定義Processor文件,完成后分別上傳至阿里云存儲產品OSS或NAS。
建議您將模型和Processor文件獨立開發分別存儲,后續可在部署時配置模型掛載路徑,Processor文件中可使用get_model_path參數來獲取配置的模型路徑,便于后續模型需頻繁迭代更新時,可方便地替換模型。
使用Processor部署時,EAS會根據您選用的推理框架自動拉取官方環境鏡像來部署服務,并基于Processor文件自動為您部署一個HTTP Server用于接收后續調用服務的請求。
使用Processor方式部署時,您需要保障模型的推理框架和Processor文件的開發符合開發環境要求,不如鏡像部署方式靈活高效,因此更建議您使用鏡像方式進行模型部署。
基本概念
名詞 | 描述 |
資源組 | EAS將集群資源分為不同的資源組進行隔離,創建模型服務時,您可以選擇將其部署在默認的公共資源組或自己額外購買的專屬資源組。
EAS的資源組介紹詳情請參見EAS資源組概述。 |
模型服務 | 模型文件和在線預測邏輯部署成的常駐服務。您可以對模型服務進行創建、更新、停止、啟動、擴容及縮容操作。 |
模型文件 | 通過離線訓練獲得的離線模型。基于不同框架會得到不同格式的模型,通常與Processor一起部署,從而獲得模型服務。 |
Processor | 包含在線預測邏輯的程序包,通常與模型文件一起部署,從而獲得模型服務。針對常用的PMML、TensorFlow(Saved Model)及Caffe模型,EAS提供了預置的官方Processor。 |
自定義processor | EAS預置Processor無法滿足所有的服務部署需求,您可以通過自定義Processor,實現更靈活的服務部署。EAS支持通過C++、Java或Python開發自定義Processor。 |
服務實例 | 服務進程。每個服務可以部署多個服務實例以提高能夠支持的并發請求數。部署服務時,服務實例會部署到資源組中的機器上,如果資源組中有多臺機器資源,EAS會自動將不同實例部署到不同的機器資源中,從而更好地保障服務高可用性。 |
高速直連 | EAS提供高速直連的網絡訪問方式,EAS資源組和您的VPC網絡連通后,您可以使用高速直連功能。后續無需通過網關,客戶端可直接訪問模型服務,可以大幅度提高訪問性能、降低訪問延時。 |
地域限制
EAS支持的地域包括華北2(北京)、華東2(上海)、華東1(杭州)、華北3(張家口)、華北6(烏蘭察布)、華南1(深圳)、華南2(河源)、華南3(廣州)、西南1(成都)、中國(香港)、日本(東京)、新加坡、印度尼西亞(雅加達)、美國(硅谷)、美國(弗吉尼亞)及德國(法蘭克福)。
計費說明
EAS資源組收費:
EAS支持將模型服務部署在公共資源組或專屬資源組,定價和計費規則請參見模型在線服務(EAS)計費說明。
公共資源組中,根據每個模型服務占用的資源量計費。
專屬資源組中,根據資源組管理的服務器資源包年包月或按量計費。
(可選)相關云產品收費:
存儲類云產品:
使用EAS部署服務時,您可以掛載OSS、NAS,將部署過程中的相關數據永久存儲在對應存儲服務中,對應云產品的定價和計費相關請參見對應云產品的計費文檔,例如OSS計費概述、NAS計費概述。
公網NAT網關:
使用公網地址訪問已部署的模型服務時可免費訪問,如果您部署的服務需要訪問公網環境,您需要開通NAT網關服務,公網連接及白名單配置操作請參見公網連接及白名單配置,公網NAT網關計費詳情請參見NAT網關計費概述。
使用流程
步驟1:準備工作
步驟2:部署服務
在部署工具維度上:EAS支持通過界面化或命令行方式部署服務和管理服務,不同工具的部署流程和操作要點存在差異。
操作類型
界面化方式
命令行方式
部署服務
通過控制臺部署(服務部署:控制臺)或Designer一鍵部署(服務部署:Designer)。
通過DSW部署或本地客戶端(EASCMD)部署,詳情請參見服務部署:EASCMD或DSW。
管理服務
您可以在EAS模型在線服務頁面管理模型服務,詳情請參見服務部署:控制臺。
包括:
查看模型調用信息。
查看日志、監控及服務部署相關信息。
擴容、縮容、啟動、停止及刪除模型服務。
通過EASCMD方式管理模型服務,詳情請參見命令使用說明。
您在使用專屬資源組部署服務時,也可以配置存儲掛載,用來存儲服務部署過程依賴的數據,詳情請參見高級配置:服務存儲掛載。
在部署方式上:EAS支持鏡像方式部署(推薦,包含鏡像部署、鏡像AI-Web部署兩個細分部署場景)和Processor方式部署。
部署類型
對比介紹
參考文檔
鏡像部署服務(推薦)
適用場景:使用鏡像快速部署模型服務。
優勢:
可通過鏡像保障模型開發訓練環境與部署運行環境的一致性。
典型場景已為您預置了很多官方鏡像,您可使用官方預置鏡像一鍵部署。
也支持自定義鏡像部署,無需進行部署的工程化改造,部署便捷。
鏡像部署AI-Web應用(推薦)
適用場景:使用鏡像快速部署模型服務,更適用于將模型部署為Web應用的場景。
優勢:
典型場景已為您預置了很多官方鏡像,如Stable-Diffusion-Webui、Chat-LLM-Webui等,支持基于Gradio、Flask、FastAPI等框架實現HTTP Server,您可使用官方預置鏡像一鍵部署。
也支持自定義鏡像部署,無需進行部署的工程化改造,部署便捷。
模型+processor部署服務
EAS為您提供了常見模型框架的預置Processor,例如PMML、XGBOOST等,通過EAS預置的Processor可以快速啟動服務,但可能無法滿足特定的業務需求。
您還可以構建自定義Processor,以實現更為靈活的業務邏輯處理。
步驟3:調試與壓測服務
服務部署完成后,您可以通過在線調試功能發送HTTP服務請求,來驗證服務是否能正常推理。
使用EAS內置的通用壓測工具對部署的服務進行一鍵壓測,來測試EAS服務在壓力下的性能表現,從而了解服務進行模型推理的處理能力。更多關于調試與壓測服務的操作詳情,請參見服務調試與壓測。
步驟4:監控服務與服務擴縮容
服務運行正常后,您可以開通服務監控報警來監控服務資源的使用情況。
也可以開啟水平或定時自動擴縮容功能,來實時動態管理線上服務的計算資源。
更多關于服務監控與擴縮容的操作詳情,請參見服務監控與擴縮容。
步驟5:調用服務
將模型部署為API服務:您可以通過服務調用功能,實現模型在線推理和異步推理。EAS服務支持公網地址調用、VPC地址調用和VPC高速直連等不同的調用方式,也支持您基于Processor自定義構造服務請求數據。推薦您使用PAI提供的SDK來進行測試和生產調用,詳情請參見服務調用SDK。
將模型部署為WebUI應用:您可以通過控制臺在瀏覽器中打開Web應用頁面,交互式地使用已部署的模型推理服務。
步驟6:異步推理服務
對于推理耗時相對較長的使用場景需要使用隊列服務和異步推理功能。當請求較多時,您可以創建隊列服務,將請求存儲到隊列服務中,請求處理完成后會將結果輸出到輸出隊列,通過異步查詢返回結果,避免請求較多未處理完成被丟棄。同時,EAS支持通過多種方式向隊列服務發送請求數據,并通過監控隊列中積壓的數據數量來實現推理服務的自動擴縮容,從而有效控制推理服務實例的數量。更多關于異步推理服務的介紹,請參見異步推理服務。
相關文檔
EAS的更多使用案例,詳情請參見EAS使用案例匯總。
PAI提供了交互式建模(DSW)服務,是為AI開發者量身定制的云端機器學習交互式開發IDE,隨時隨地開啟Notebook快速讀取數據、開發算法、訓練及部署模型,詳情請參見什么是DSW。
PAI提供了可視化建模(Designer)服務,支持大規模分布式的傳統機器學習、深度學習、強化學習訓練,支持流批一體訓練,該子模塊封裝了上百種機器學習算法,詳情請參見Designer概述。
EAS相關API,詳情請參見API概覽。