Morphling:雲原生部署 AI , 如何把降本做到極致?

語言: CN / TW / HK

作者|王䘵平(茶木)

隨着雲原生技術的蓬勃發展和其日漸成熟的產業落地,雲上機器學習正向大規模、工業化方向迅速挺進。

近期,Morphling 作為阿里巴巴開源的 KubeDL 其中一個獨立的子項目,成為雲原生計算基金會(CNCF)Sandbox 項目。旨在為大規模工業部署機器學習模型推理(model inference)服務,提供自動化的部署配置調優、測試和推薦,在 GPU 虛擬化與複用技術日趨發展成熟的大環境下,幫助企業充分享受雲原生優勢,優化在線機器學習服務性能,降低服務部署成本,高效地解決機器學習在產業實際部署中的性能和成本挑戰。此外,Morphling 項目相關學術論文 "Morphling: Fast, Near-Optimal Auto-Configuration for Cloud-Native Model Serving",被 ACM Symposium on Cloud Computing 2021 (ACM SoCC 2021)接收。

1.png

Morphling 本意是遊戲 Dota 中的英雄“水人”,他可以根據環境要求,通過靈活改變自身形態,優化戰鬥表現。我們希望通過 Morphling 項目,實現針對機器學習推理作業的靈活、智能的部署配置改變,優化服務性能,降低服務部署成本。

Morphling Github:https://github.com/kubedl-io/morphling Morphling 網站:https://kubedl.io/tuning/intro/

背景

雲上機器學習的工作流,可以分為模型訓練(model training)和模型推理(model serving)兩部分:模型在離線訓練、調優測試完成之後,會以容器的方式部署為在線應用,為用户提供不間斷的高質量推理服務,例如在線直播視頻中的目標物品識別、在線語言翻譯工具、在線圖片分類等。例如,阿里巴巴內部的淘系內容社交平台 Machine Vision Application Platform(MVAP),通過在線機器學習推理引擎,支持淘系直播商品看點識別、直播封面圖去重、逛逛圖文分類等業務。根據英特爾的數據,大規模推理 ("Inference at Scale") 時代將至:到 2020 年,推理與訓練週期比率超過 5:1;亞馬遜的數據顯示,2019 年亞馬遜 AWS 在模型推理服務上的基礎設施開銷,佔到其機器學習任務總開銷的 90% 以上。機器學習推理已經成為人工智能落地和“變現”的關鍵。

2.png

雲上推理任務

推理服務本身是一種特殊的 long running 微服務形態,隨着雲上推理服務日趨增長的部署體量,其成本和服務性能,成為至關重要的優化指標。這要求運維團隊對推理容器,在部署前進行合理的配置優化,包含硬件資源配置、服務運行參數配置等。這些優化配置,在協調服務性能(例如響應時間、吞吐率)和資源使用效率中,起到至關重要的作用。在實踐中,我們的測試發現, 不同的部署配置會帶來高達十幾倍的吞吐率/資源使用率的差距。

我們依託阿里大量的 AI 推理服務經驗,首先總結了推理業務,相對於傳統服務部署的配置有以下特性:

  • 使用昂貴的顯卡資源,但顯存用量低:GPU 虛擬化與分時複用技術的發展和成熟,讓我們有機會在一塊 GPU 上同時運行多個推理服務,顯著降低成本。與訓練任務不同,推理任務是使用訓練完善的神經網絡模型,將用户輸入信息,通過神經網絡處理,得到輸出,過程中只涉及神經網絡的前向傳輸(Forward Propagation),對顯存資源的使用需求較低。相比之下,模型的訓練過程,涉及神經網絡的反向傳輸(Backward Propagation),需要存儲大量中間結果,對顯存的壓力要大很多。我們大量的集羣數據顯示,分配給單個推理任務整張顯卡,會造成相當程度的資源浪費。然而如何為推理服務選擇合適的 GPU 資源規格,尤其是不可壓縮的顯存資源,成為一個關鍵難題。
  • 性能的資源瓶頸多樣:除了 GPU 資源,推理任務也涉及複雜的數據前處理(將用户輸入 處理成符合模型輸入的參數),和結果後處理(生成符合用户認知的數據格式)。這些操作通常使用 CPU 進行,模型推理通常使用 GPU 進行。對於不同的服務業務,GPU、CPU 以及其他硬件資源,都可能成為影響服務響應時間的主導因素,從而成為資源瓶頸。
  • 此外,容器運行參數的配置,也成為業務部署人員需要調優的一個維度:除了計算資源外,容器運行時參數也會直接影響服務 RT、QPS 等性能,例如容器內服務運行的併發線程數、推理服務的批處理大小(batch processing size)等。

最佳化推理服務部署配置

以 Kubernetes 為主流的雲原生技術,正在以豐富的形態被廣泛用於新的應用負載 ,將機器學習任務(包括訓練和推理)構建在 Kubernetes 上,並實現穩定、高效、低成本的部署,成為各大公司推進AI項目、服務上雲的重點和關鍵。Kubernetes 框架下的推理容器配置,業界還在不斷探索與嘗試。

  • 最常見的模式是根據人為經驗,手動配置參數,簡單但低效。實際情況常常是:服務部署人員站在集羣管理者的角度,為了保證服務質量,傾向於配置較多的資源宂餘,在穩定性和效率之間選擇犧牲後者,造成大量資源浪費;或對運行參數直接採用默認值進行配置,損失了性能優化機會。
  • 另一個可選的方案是,基於資源歷史水位畫像,進一步細化優化資源配置。但我們的觀察和實踐發現,日常資源水位不能體現服務壓測時的流量高峯,無法評估服務能力上限;其次,對於新上線的業務,普遍缺乏可靠的歷史水位信息可供參考;另外,由於機器學習框架的特性,GPU 顯存的歷史用量通常不能正確反映應用對顯存的真實需求;最後,對於容器內部程序運行參數的調優,從歷史數據的角度缺少足夠的數據支持。

總體來説,雖然在更通用的超參調優方面,Kubernetes 社區有一些自動化參數推薦的研究和產品,但業界缺少一款直接面向機器學習推理服務的雲原生參數配置系統。

我們依託阿里大量的AI推理服務經驗,總結髮現,推理業務配置調優的痛點在於:

  • 缺少自動化性能測試、參數調優的框架:迭代式的手動調整配置-服務壓測,給部署測試帶來巨大人工負擔,使這一方向在現實下成為不可能的選項。
  • 穩定和非侵入式的服務性能測試流程:在生產環境下對在線服務直接進行部署測試,會影響用户體驗。
  • 要求高效的參數組合調優算法:考慮到需要配置的參數數量增多時,聯合調試多維度參數的組合優化配置,對調優算法提出了更高的效率要求。

Morphling

針對上述難題,阿里巴巴雲原生集羣管理團隊和開發並開源了基於 Kubernetes 的機器學習推理服務配置框架——Morphling,將參數組合調優全流程自動化,並結合高效的智能化調優算法,使推理業務的配置調優流程,能夠高效地運行在 Kubernetes 之上,解決機器學習在產業實際部署中的性能和成本挑戰。

3.png

Morphling 對參數調優的過程進行了不同層次的雲原生抽象,提供給用户簡潔且靈活的配置接口,將底層的容器操作、數據通信、採樣算法、和存儲管理封裝在控制器中。具體來説,Morphling 的參數調優-性能壓測,採用 experiment-trial 工作流程。

  • Experiment 作為最貼近用户的一層抽象,通過交互,由用户指定機器學習模型的存儲位置、待調優的配置參數、測試數量上限等,定義一次具體的參數調優作業。
  • 對於每個參數調優作業 experiment,Morphling 定義了另一層抽象:trial。Trial 封裝了針對某一特定參數組合的一次性能測試流程,涵蓋了底層的 Kubernetes 容器操作:每個 trial 中,Morphling 根據測試參數組合,配置並啟動推理服務容器,檢測服務的可用性和健康狀態,並對服務進行壓力測試,測量該配置下容器的服務性能,例如響應時間延遲、服務吞吐量、資源使用效率等。測試結果將存儲在數據庫中,並反饋給 experiment。
  • Morphling通過智能的超參調優算法,選擇少量配置組合進行性能測試(trial),每輪測試結果作為反饋,來高效選擇下一組待測參數。為了避免窮舉方式的規格點採樣,我們採用貝葉斯優化作為畫像採樣算法的內部核心驅動,通過不斷細化擬合函數,以低採樣率(<20%)的壓測開銷,給出接近最優的容器規格推薦結果。

4.png

通過這樣迭代式的採樣-測試,最終反饋給業務部署人員優化的配置組合推薦。

同時,Morphling 提供了管控套件:Morphling-UI,方便業務部署團隊在可界面化上,通過簡單易用的操作,發起推理業務配置調優 experiment、監控調優過程、比較調優結果。

5.png

Morphling 在淘系內容社交平台中的實踐

阿里巴巴內部豐富的在線機器學習推理場景和大量的推理服務實例需求,為 Morphling 的落地驗證提供了第一手的落地實踐和測試反饋。其中,阿里淘系內容社交平台Machine Vision Application Platform(MVAP)團隊,通過在線機器學習推理引擎,支持淘系直播商品看點識別、直播封面圖去重、逛逛圖文分類等業務。

在 2020 年雙十一期間,我們通過 Morphling 對 AI 推理容器進行了規格測試、優化,尋找性能和成本之間的最優解,同時算法工程團隊進而對這些資源消耗型的推理模型,例如淘系視頻看點服務,做出針對性的模型量化、分析,並從 AI 模型設計角度進行優化,以最少的資源支持了雙十一的洪峯流量,同時保證業務的性能不下降,極大的提高 GPU 利用率和降低了成本。

學術探索

為了提高推理服務參數調優過程的效率,阿里巴巴雲原生集羣管理團隊,針對推理業務的特性,進一步探索了使用元學習(meta-learning)和小樣本回歸(few-shot regression)實現更高效的、低採樣成本的配置調優算法,應對實際業界“快速、小樣本採樣、低測試成本”的調優要求,以及面向雲原生且自動化的調優框架。相關學術論文 "Morphling: Fast, Near-Optimal Auto-Configuration for Cloud-Native Model Serving",被ACM Symposium on Cloud Computing 2021 (ACM SoCC 2021)接收。

近年,雲上 AI 推理任務的優化部署相關主題活躍在各大雲計算、系統相關的學術期刊和會議,成為學術界探索的熱點。探索的主題主要包括,AI 模型的動態選擇、部署實例的動態闊縮容、用户訪問的流量調度、GPU 資源的充分利用(例如模型動態加載、批處理大小優化)等。然而,從大規模業界實踐出發,最佳化容器級別的推理服務部署這一問題的研究,尚屬首次。

算法方面,性能調優作為經典的超參數優化(hyper-parameter tuning)問題。傳統超參調優方法例如貝葉斯優化,難以面對高維度(多配置項)且大搜索空間的調優問題。例如,對於 AI 推理任務,我們在 CPU 核數、GPU 顯存大小、批處理 batch size、GPU 型號這四個維度(配置項)進行“組合優化”式的超參調優,每個配置項有 5~8 個可選參數。這樣,組合情況下的參數搜索空間就高達 700 個以上。基於我們在生產集羣的測試經驗積累,對於一個 AI 推理容器,每測試一組參數,從拉起服務、壓力測試、到數據呈報,需要耗時幾分鐘;與此同時,AI 推理業務的種類繁多,更新迭代頻繁,部署工程師人力有限,測試集羣成本有限。要在這樣大的搜索空間內,高效地測試出最優的配置參數,對超參調優算法提出了新的挑戰。

在這篇論文中,我們的核心觀察是,對於不同的 AI 推理業務,其需要優化各項的配置(例如 GPU 顯存、批處理大小)對於容器的服務性能(例如 QPS)影響,“趨勢穩定且相似”,表現在可視化的“配置-性能”曲面上,體現為,不同AI推理實例,“配置-性能”曲面的形狀相似,但配置對性能的影響程度和關鍵節點,在數值上各不相同:

6.png

上圖可視化了三種 AI 推理模型,其x'="">的二維配置,對容器服務吞吐量 RPS 的影響。論文提出,使用 Model-Agnostic Meta-Learning(MAML)對這些共性進行提前學習,訓練出元模型,從而對新的 AI 推理性能測試,快速找到曲面中的關鍵節點,以元模型出發,作出小樣本下(5%)的精確擬合。

總結

Morphling 基於的 Kubernetes 機器學習推理服務配置框架,結合“快速、小樣本採樣、低測試成本”的調優算法,實現了面向雲原生的自動化且穩定高效的 AI 推理部署調優流程,更快地賦能部署流程的優化和迭代,加速機器學習業務應用的上線。Morphling 和 KubeDL 的結合,也會使得 AI 從模型訓練,到推理部署的配置調的優體驗更為流暢。

Reference

Morphling Github: https://github.com/kubedl-io/morphling

Morphling 網站: https://kubedl.io/tuning/intro/

KubeDL Github: https://github.com/kubedl-io/kubedl

KubeDL 網站: https://kubedl.io/

戳原文,查看 Morphling 項目 github 主頁!


近期熱門

2021·雲棲大會定檔# 掃碼報名免費抽好禮!

掃描下方【雲棲大會報名二維碼】完成報名並截圖,添加雲原生小助手微信號(AlibabaCloud888)發送截圖即可獲得抽獎機會!快來試試吧~

7.png

雲棲大會報名二維碼