EAS(Elastic Algorithm Service)的自訂部署提供高度靈活和全面的AI推理服務託管能力。支援將任意演算法或模型封裝成線上服務,適用於從通用大語言模型(LLM)到自研演算法的各類AI應用情境。對於LLM、ComfyUI等常見應用,推薦優先嘗試情境化部署,以獲得更簡化的配置體驗。本文面向需要深度定製環境、效能和功能的專業使用者。
部署原理
EAS服務本質上是運行在一個或多個隔離的容器執行個體中。EAS通過組合以下基本元素來構建和啟動服務:
環境鏡像 :一個包含作業系統、基礎庫(如CUDA)、語言環境(如Python)和必要依賴的唯讀模板。可使用PAI提供的官方鏡像,也可以自訂鏡像以滿足特定業務需求。
代碼與模型檔案 :商務邏輯代碼、模型權重等檔案。最佳實務是將它們儲存在Object Storage Service或Apsara File Storage NAS上,通過掛載方式使用。這能實現代碼/模型與環境的解耦,當需要迭代時,只需更新儲存中的檔案,無需重建鏡像。
儲存掛載:服務啟動時,EAS會將指定的OSS或NAS路徑掛載到容器內的本地目錄。這使得容器內的代碼可以像訪問本地檔案一樣,直接存取外部儲存上的代碼和模型。
運行命令:容器啟動後需要執行的第一個命令。通常是用於啟動一個HTTP伺服器的命令,例如
python app.py。
整個流程如下:
EAS拉取指定的鏡像來建立容器。
將外部儲存掛載到容器的指定路徑。
在容器內執行運行命令。
命令成功執行後,服務便開始在指定連接埠監聽並處理推理請求。
EAS支援鏡像部署和Processor部署兩種部署方式。推薦使用鏡像部署。因為鏡像部署提供了更高的靈活性和可維護性,而Processor部署在環境和架構存在較多限制。
重要限制與策略
EAS服務如果持續180天處於非運行中狀態,將會被系統自動刪除。
通過網關調用時,請求體大小不得超過 1MB。
請避免使用EAS引擎固定監聽的8080和9090連接埠。
快速開始:部署一個簡單的Web服務
本節將使用鏡像部署模式,快速部署一個簡單的Web服務。
第1步:準備代碼檔案
將如下Flask應用代碼儲存為app.py檔案。注意,服務監聽在8000連接埠。
第2步:上傳代碼至OSS
將app.py檔案上傳到OSS Bucket中(請確保OSS Bucket與EAS工作空間在同一地區)。例如,上傳至oss://examplebucket/code/目錄下。
第3步:配置並部署服務
登入PAI控制台,在頁面上方選擇目標地區,並在右側選擇目標工作空間,然後單擊進入EAS。
在推理服務頁簽,單擊部署服務。然後在自訂模型部署地區,單擊自訂部署。
在配置頁面,如下填寫環境資訊和資源資訊地區的關鍵參數:
鏡像配置:選擇鏡像部署,並在鏡像配置中選擇官方鏡像
python-inference:3.9-ubuntu2004。儲存掛載:將包含
app.py的OSS目錄掛載到容器的/mnt/data/路徑下。Uri:選擇代碼所在的OSS目錄,本例中為
oss://examplebucket/code/。掛載路徑:為該目錄在容器內指定本地路徑,本例中為
/mnt/data/。
運行命令:由於
app.py已被掛載到容器的/mnt/data/目錄,因此啟動命令為:python /mnt/data/app.py。三方庫配置:本範例程式碼依賴的
flask庫未包含在使用的官方鏡像中。可以在三方庫列表直接添加flask。EAS會在服務啟動時自動安裝。資源配置:為服務分配合適的計算資源。對於這個簡單樣本,一個小型CPU執行個體即可滿足需求。
資源類型:公用資源。
資源規格:
ecs.c7.large。
完成配置後,單擊部署。服務狀態變為運行中時,即表示部署成功,可進行服務調用。
更多配置說明
管理環境與依賴
在環境資訊地區,可以佈建服務的允許環境與依賴項。
參數 | 描述 |
鏡像配置 | 服務的運行環境基礎。可以使用PAI提供的官方鏡像,或通過自訂鏡像或輸入鏡像地址使用自行構建的鏡像,詳情請參見自訂鏡像。 說明 若鏡像中包含WebUI,開啟Web應用,EAS 會自動啟動Web伺服器,方便直接存取前端頁面。 |
儲存掛載 | 將存放在OSS、NAS等雲端儲存上的模型、代碼或資料掛載到容器的本地路徑,實現代碼/資料與環境的解耦,便於獨立更新。詳情請參見儲存掛載。 |
資料集掛載 | 若希望對模型或資料進行版本化管理,可以使用資料集功能進行掛載。詳見建立及管理資料集。 |
運行命令、連接埠號碼 | 設定鏡像啟動命令(例如 重要 請避免使用EAS引擎固定監聽的8080和9090連接埠。 |
三方庫配置 | 若僅需額外安裝少數Python庫,在此處直接添加庫名或指定一個requirements.txt檔案路徑,避免重新構建鏡像。 |
環境變數 | 以索引值對形式為服務執行個體設定環境變數。 |
對於GPU執行個體,還可以在服務功能的資源配置中指定GPU驅動版本,以滿足特定模型或架構的運行要求。
配置計算資源
在資源資訊地區,可以為服務配置計算資源。
參數 | 描述 |
資源類型 | 說明 開啟GPU共用,可在同一張GPU卡上部署多個模型服務,通過共用算力來提升GPU資源使用率。適用於模型較小或推理負載不高的情境。僅使用EAS資源群組或資源配額時支援開啟。詳見GPU共用。 |
執行個體數 | 建議配置多個執行個體,避免單點故障風險。 |
部署資源 | 使用公用資源時,對於支援的規格,可以開啟競價模式,並設定出價上限,以遠低於常規執行個體的價格搶佔空閑資源,適用於對中斷不敏感的推理任務。 說明 |
配置系統硬碟 |
|
彈性資源集區 | 使用EAS資源群組或資源配額時,開啟此功能後,當自有資源不足時,會自動使用公用資源(隨用隨付)進行擴容以應對突發流;縮容時則優先釋放公用資源執行個體,節約成本。詳情請參見彈性資源集區。 |
高優資源重調度 | 開啟後,系統會周期性地嘗試將服務執行個體從低優先順序資源(如公用資源、常規執行個體)遷移到高優先順序資源(如專屬資源群組、競價執行個體)上,以最佳化成本和資源分派。該功能可以解決以下問題:
|
服務接入與網路
EAS提供靈活的服務接入和網路設定選項,以滿足不同的業務整合需求。詳情請參見服務調用。
參數 | 描述 |
網關選擇 | 預設使用免費的共用網關,可付費開通專屬網關以獲得自訂網域名、存取控制等更多進階功能。詳情請參見通過專屬網關調用。 重要 通過網關調用時,請求體大小不得超過 1MB。 |
Virtual Private Cloud | 通過配置VPC、交換器和安全性群組,可以實現服務在VPC內部的直接存取,或允許服務訪問公網資源。詳情請參見網路設定。 |
關聯負載平衡NLB | 將服務關聯到網路型負載平衡NLB執行個體,實現更自主可控的負載平衡。詳情請參見通過關聯負載平衡NLB調用。 |
關聯服務發現Nacos | 將服務註冊到微服務註冊配置中心,便於在微服務架構中實現服務的自動探索與同步。詳情請參見通過關聯服務發現Nacos調用。 |
還可以在服務功能地區的進階網路下啟用GRPC。開啟後,服務網關將支援GRPC串連,適用於需要高效能RPC通訊的情境。
服務安全
為了保障服務安全,可以在服務功能地區使用以下功能:
參數 | 描述 |
自訂鑒權 | 如果不想使用系統自動產生的Token,可在此處自訂服務訪問的鑒權Token。 |
配置安全加密環境 | 通過與系統信任管理服務整合,保證服務在部署和調用過程中,資料、模型和代碼等資訊的安全加密,實現可信推理。該功能主要針對掛載的隱藏檔,請先完成儲存掛載再開啟。詳情請參見安全加密推理服務。 |
執行個體RAM角色 | 通過為執行個體關聯RAM角色,服務內代碼可基於STS臨時憑證訪問其他雲資源,無需配置固定的AccessKey,從而降低密鑰泄漏風險。詳情請參見配置EAS RAM角色。 |
保障服務穩定與高可用
通過基本資料地區的所屬群組功能,可將多個版本的服務或使用異構資源的服務劃分到同一個群組,配合流量管理原則,實現灰階發布。詳情參見灰階發布。
為確保生產環境服務的穩定可靠,可以在服務功能地區進行以下相關配置:
參數 | 描述 |
服務響應逾時時間長度 | 合理配置每個請求的逾時時間,預設為5秒,避免慢請求長時間佔用服務資源。 |
健全狀態檢查 | 為服務配置健全狀態檢查,系統會定期探測執行個體的存活狀態,並在執行個體異常時自動拉起新執行個體,實現故障自愈。詳情請參見健全狀態檢查。 |
優雅退出 | 配置優雅退出時間,確保在服務更新或縮容時,執行個體有足夠的時間處理完已接收的請求再退出,避免請求處理中斷。還可以選擇是否發送SIGTERM訊號,以便在應用程式層進行更精細的退出處理。詳情請參見變換與優雅退出。 |
變換 | 通過配置超到期望的執行個體數和最大不可用執行個體數,可以精細化控制服務更新過程中的執行個體替換策略,在保證服務不中斷的前提下完成版本升級。詳情請參見變換與優雅退出。 |
效能最佳化
以下配置對於提升服務效能至關重要,能有效加快啟動速度、提高輸送量並降低延遲,尤其適用於大模型等資源密集型應用。
參數 | 參數及描述 | |
儲存加速 | 分布式緩衝加速 | 將掛載的OSS等儲存中的模型或資料檔案快取到執行個體本地,以提高讀取速度,減少I/O延遲。詳情請參見記憶體緩衝本地目錄。 |
模型權重服務(MoWS) | 通過模型權重的本機快取和跨執行個體共用,顯著提升大規模執行個體部署情境下的擴縮容效率和服務啟動速度。詳情請參見模型權重服務。 | |
資源配置 | 共用記憶體 | 為執行個體配置共用記憶體,允許容器內的多個進程直接讀寫同一記憶體地區,避免資料複製和傳輸帶來的開銷,適用於需要高效處理序間通訊的情境。 |
分布式推理 | 將單個推理執行個體部署在多台機器上,共同完成一次推理任務,解決超大模型無法在單機上部署的問題。詳情見多機分布式推理。 | |
智能調度 | LLM智能路由 | 當LLM服務有多個後端執行個體時,LLM智能路由能夠根據後端負載進行動態請求分發,保證各執行個體的算力和顯存使用儘可能均衡,提升叢集資源使用率。詳情請參見LLM智能路由。 |
服務觀測與診斷
為洞察服務狀態和快速排查問題,可以在服務功能地區開啟以下功能:
參數 | 描述 |
儲存調用記錄 | 將服務的所有請求和響應記錄持久化儲存到巨量資料MaxCompute或Log ServiceSLS中,用於審計、分析或問題排查。
|
鏈路追蹤 | 部分官方鏡像已內建採集組件,可一鍵開啟鏈路追蹤功能。對於其他鏡像,可通過簡單配置來整合ARMS探針,實現對服務調用鏈路的端到端監控。可參見EAS中開啟基於LLM應用鏈路追蹤(Tracing)。 配置方法如下:
|
非同步與彈性服務
修改JSON檔案配置參數
在服務配置地區查看當前介面配置對應的完整 JSON,並支援直接編輯。
對於自動化和精細化配置情境,還可以直接使用 JSON 檔案來定義和部署服務。請參見JSON部署。