天天看點

Morphling:雲原生部署 AI , 如何把降本做到極緻?背景MorphlingMorphling 在淘系内容社交平台中的實踐學術探索總結

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

近期,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)接收。

Morphling:雲原生部署 AI , 如何把降本做到極緻?背景MorphlingMorphling 在淘系内容社交平台中的實踐學術探索總結

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% 以上。機器學習推理已經成為人工智能落地和“變現”的關鍵。

Morphling:雲原生部署 AI , 如何把降本做到極緻?背景MorphlingMorphling 在淘系内容社交平台中的實踐學術探索總結

雲上推理任務

推理服務本身是一種特殊的 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 之上,解決機器學習在産業實際部署中的性能和成本挑戰。

Morphling:雲原生部署 AI , 如何把降本做到極緻?背景MorphlingMorphling 在淘系内容社交平台中的實踐學術探索總結

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

  • Experiment 作為最貼近使用者的一層抽象,通過互動,由使用者指定機器學習模型的存儲位置、待調優的配置參數、測試數量上限等,定義一次具體的參數調優作業。
  • 對于每個參數調優作業 experiment,Morphling 定義了另一層抽象:trial。Trial 封裝了針對某一特定參數組合的一次性能測試流程,涵蓋了底層的 Kubernetes 容器操作:每個 trial 中,Morphling 根據測試參數組合,配置并啟動推理服務容器,檢測服務的可用性和健康狀态,并對服務進行壓力測試,測量該配置下容器的服務性能,例如響應時間延遲、服務吞吐量、資源使用效率等。測試結果将存儲在資料庫中,并回報給 experiment。
  • Morphling通過智能的超參調優算法,選擇少量配置組合進行性能測試(trial),每輪測試結果作為回報,來高效選擇下一組待測參數。為了避免窮舉方式的規格點采樣,我們采用貝葉斯優化作為畫像采樣算法的内部核心驅動,通過不斷細化拟合函數,以低采樣率(<20%)的壓測開銷,給出接近最優的容器規格推薦結果。
Morphling:雲原生部署 AI , 如何把降本做到極緻?背景MorphlingMorphling 在淘系内容社交平台中的實踐學術探索總結

通過這樣疊代式的采樣-測試,最終回報給業務部署人員優化的配置組合推薦。

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

Morphling:雲原生部署 AI , 如何把降本做到極緻?背景MorphlingMorphling 在淘系内容社交平台中的實踐學術探索總結

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推理執行個體,“配置-性能”曲面的形狀相似,但配置對性能的影響程度和關鍵節點,在數值上各不相同:

Morphling:雲原生部署 AI , 如何把降本做到極緻?背景MorphlingMorphling 在淘系内容社交平台中的實踐學術探索總結
Morphling:雲原生部署 AI , 如何把降本做到極緻?背景MorphlingMorphling 在淘系内容社交平台中的實踐學術探索總結

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

總結

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

Reference

KubeDL Github: 

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

KubeDL 網站:

https://kubedl.io/

戳連結(

),檢視 Morphling 項目 github 首頁!

近期熱門

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

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

Morphling:雲原生部署 AI , 如何把降本做到極緻?背景MorphlingMorphling 在淘系内容社交平台中的實踐學術探索總結

雲栖大會報名二維碼

點選下方連結,提前探秘2021雲栖大會

繼續閱讀