詳解雲原生機器學習平臺的優勢

概述

最近看了很多關於雲原生的文章,大體意思是機器學習服務這個行業將迎來一次巨大的變革。從13年我剛入行以來,機器學習在15年左右經歷了模型深度的變革,從淺層學習逐步發展到了深度學習。到了20年這個節點,機器學習的整體服務架構會開始變革,逐漸會從Apache Yarn體系向Docker+Kubeflow這種雲原生體系變革。

爲什麼會出現這種遷移?許多技術同學都在網上發表了他們的看法,我認爲比較好的文章是:https://www.jiqizhixin.com/articles/2019-01-31-14

遺憾的是,發表這些文章的都是技術同學,更多地是從技術視角去看待這個問題,今天我嘗試通過產品經理的視角,也就是用戶具體應用的視角解釋下雲原生的好處。

什麼是雲原生?

可能有的同學不清楚什麼是雲原生,Docker+Kubeflow就是機器學習的雲原生方案。首先給大家解釋下Docker和VM(虛擬機)的區別。

VM是目前所有“雲”業務的根源,VM的誕生使得傳統的物理機可以向外提供標準化的計算服務。這種服務需要使用者把應用App、依賴Bins/Libs以及操作系統Guest OS打包成VM鏡像,然後發到物理機上即可運行。

VM的一個問題就是因爲VM鏡像包含了Guest OS,所以VM是比較重的,可能每個VM鏡像在10G左右,如果想同時拉起上千個任務,這個拉起時間成本非常高。

再來看看Docker,Docker的一個好處是不包含Guest OS。用戶只需要把應用App和Libs打包成一個Docker Image就可以部署到服務器上,而且一樣具備VM所具有的資源隔離、網絡隔離等優勢,這就靈活了許多。看下Docker的架構圖:

舉個例子,比如做一個簡單的模型服務,只需要把模型+Flask+python環境打包好即可,如果模型不大的話,這種Docker image只有幾百兆,可以秒級拉起。所以雲原生給到用戶的是彈性的計算環境,只要用戶把自己要計算的業務封裝成Docker image,傳上來就能跑。

雲原生究竟有哪些優勢

雲原生有資源調度更靈活,內存、網絡隔離更完善等優點,這些都是技術優勢,我今天重點介紹兩個用戶使用端的優勢。分別是“更靈活的配置性”以及“業務模塊的一致性”。

 

更靈活的配置性

傳統的機器學習平臺的架構是如下圖這種模式:

在用戶層只給客戶開放了APP的上傳通道,而計算框架和依賴包需要平臺層提前在集羣配置好,而且不易更改。這會造成很大的麻煩,比如用戶上傳了一個python的代碼包,這個包依賴於numpy這個python庫,如果平臺層沒有內置numpy,用戶是無法運行的,因爲平臺並沒有給用戶開放安裝依賴包的口子。基於傳統的Yarn調度的模式,在技術可行性方面也比較難實現用戶自己在集羣層面安裝依賴。

反過來看雲原生的平臺,用戶可以在用戶層自己指定依賴的lib包,設置可以安裝計算框架。從用戶開發環境的角度比較,雲原生的機器學習平臺一定是更user friendly。

業務模塊的一致性

我們知道,傳統的Apache Yarn,設置整個Hadoop生態是基於大數據開發爲業務背景去設計的。相比於機器學習建模,大數據開發場景相對會更單純。因爲大數據開發環境的輸入和輸出都是表。而機器學習場景輸入的是數據,輸出的是模型,模型還要部署成服務纔可以使用。基於這樣的體系,會產生以下這種機器學習架構,

大部分玩算法的人會把模型計算引擎和模型服務引擎解耦,甚至時間長了,覺得這兩個部分就應該是不同的模塊。基於這樣很割裂的架構,會衍生出模型傳遞網絡性能問題、引擎間模型格式不兼容等一系列問題。

 

有了雲原生方式,會打破了Apache傳統的以大數據方式建模的束縛。所有的建模相關的服務都可以做出Docker Image,部署到一個集羣中,通過kubeflow的pipline去編排相互執行順序。

這樣就解決了上述提到的問題,讓整個業務都可以集中在一個集羣,同時相互之間又有資源隔離機制,使得業務模塊一致性更強。

總結

經過這幾天研究雲原生機器學習業務的調研,我覺得kubeflow未來可期,需要所有從業的產品經理和開發人員重新更新自己的技術棧。

有一個問題需要時間驗證,機器學習PaaS層產品是否是僞命題?

目前百度、阿里、騰訊都有PaaS層的機器學習產品,這些產品在雲原生時代是否還有價值。因爲雲原生階段會大大推動開源生態各種模型部署、算法框架的演進,用戶完全可以利用這些開源的工具配合Docker在虛擬機上拉起來構建一個機器學習PaaS層服務,這樣的話Yarn那一套有點落伍。

未來可能在機器學習領域,只存在SaaS業務層和IaaS計算資源層,PaaS的比重會下降。這是我的一個猜測,作爲PaaS層機器學習產品經理,==!好擔心自己會下崗。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章