Martin Heller 陳琳華
用戶需要大量的數(shù)據(jù),對數(shù)據(jù)進行清洗,并在合理的時間內(nèi)訓練數(shù)據(jù)模型,這樣才能創(chuàng)建高效的機器學習和深度學習模型。有了高效的機器學習和深度學習模型之后,用戶需要部署和監(jiān)視這些模型。如果發(fā)生了變化,用戶還得根據(jù)需要重新對它們進行訓練。
對于那些已在計算資源和GPU等加速器上投入了巨資的用戶,他們可以在本地執(zhí)行所有這些操作,不過這些用戶可能會發(fā)現(xiàn),在資源足夠的情況下,許多資源其實在很多時間都處于閑置狀態(tài)。與此同時,用戶可能還會發(fā)現(xiàn),在云端運行整個管道可能成本效益更為出色,因為云服務可以根據(jù)實際需求調(diào)用大量的計算資源和加速器,在不需要的時候再把這些資源釋放出來。
目前,為了支持從項目規(guī)劃到維護生產(chǎn)模型一整套完整的機器學習生命周期,多家主要的云提供商和眾多小型云提供商都在構建自己的機器學習平臺,并投入了大量精力。那么用戶如何確定哪些云服務能夠滿足自己的需求呢?以下12種功能是所有云機器學習平臺都應具備的功能。
用戶需要控制模型的成本。通常情況下,在深度學習成本當中,生產(chǎn)預測模型的部署成本占了90%,訓練僅占10%。用戶的負載和模型的復雜性決定了預測成本的控制。
如果負載很高,那么用戶可以使用加速器來避免增加虛擬機實例。如果負載是波動的,那么用戶可以根據(jù)負載的變化動態(tài)調(diào)整實例和容器的數(shù)量或規(guī)模。如果負載較低或者偶爾才有負載,那么用戶則可以選擇帶有局部加速器的微型實例來處理預測工作。
以往的做法是用戶將數(shù)據(jù)導到桌面上進行建模。如今,構建機器學習和深度學習模型需要大量的數(shù)據(jù),這顛覆了用戶以往的經(jīng)驗。對于探索性的數(shù)據(jù)分析和模型構建,用戶只需將少量數(shù)據(jù)樣本下載到桌面上即可,但是想要構建生產(chǎn)模型,用戶仍需訪問完整的數(shù)據(jù)。目前,適于構建模型的Web開發(fā)環(huán)境主要有Jupyter Notebooks、JupyterLab和Apache Zeppelin。如果數(shù)據(jù)與開發(fā)環(huán)境在相同的云服務上,那么用戶可最大程度地減少數(shù)據(jù)移動,從而節(jié)約時間。
數(shù)據(jù)庫中最常見的兩種數(shù)據(jù)管道配置是ETL(導出、轉(zhuǎn)換和加載)和ELT(導出、加載和轉(zhuǎn)換)。機器學習和深度學習放大了對這些環(huán)節(jié)的需求,尤其是轉(zhuǎn)換環(huán)節(jié)。在用戶的轉(zhuǎn)型需要進行調(diào)整時,ELT可提供更高的靈活性,因為對于大數(shù)據(jù)而言加載環(huán)節(jié)是最耗時的。
因此對于機器學習來說,用戶還必須將變量控制在標準化范圍之間,防止范圍波動過大。至于用戶到底將標準范圍設置為多少,要取決于模型采用的算法。因為原始數(shù)據(jù)通常都摻雜著大量的無用數(shù)據(jù),所以需要進行過濾。另外,原始數(shù)據(jù)的變化范圍非常大,例如一個變量的最大值可能高達數(shù)百萬,而另一個變量的范圍可能是-0.1至-0.001之間。
因為數(shù)據(jù)傳輸速度不可能大于光速,距離過長就意味著等待時間過長。即使在具有無限帶寬的完美網(wǎng)絡上,情況也是如此。如果用戶擁有的大量數(shù)據(jù)足以建立起精確模型,那么理想的狀態(tài)是在存儲數(shù)據(jù)的地方就近建立模型,這樣可以避免傳輸大量數(shù)據(jù)。許多數(shù)據(jù)庫也支持這種做法。
其次是將數(shù)據(jù)與模型構建軟件放在同一個高速網(wǎng)絡上,這通常意味著數(shù)據(jù)和模型構建軟件在同一數(shù)據(jù)中心內(nèi)。即便是在同一個云可用區(qū)域內(nèi)將數(shù)據(jù)從一個數(shù)據(jù)中心遷移到另一個數(shù)據(jù)中心,如果數(shù)據(jù)量過大也會出現(xiàn)嚴重的延遲。那么用戶可能通過增量更新的方法來緩解延遲。如果用戶不得不在帶寬受限且存在高延遲的網(wǎng)絡上長距離移動大數(shù)據(jù),那么這將是最糟糕的情況。
通常情況下,AutoML系統(tǒng)會嘗試使用大量的模型,以查看哪些模型有最佳的目標函數(shù)值。優(yōu)秀的AutoML系統(tǒng)還可以自動提取特征,并有效地利用資源尋找含有優(yōu)秀特征集的最佳模型。因為并非所有的用戶都擅長選擇機器學習模型和模型所使用的變量,以及從原始觀察中提取新的特征。即便用戶擅長,他們也需要花費大量的時間,因此這些工作有必要實現(xiàn)自動化。
除訓練模型外,Notebooks需要的計算和內(nèi)存資源都不高。如果Notebooks能夠執(zhí)行在多個大型虛擬機或容器上運行的訓練任務,并且如果訓練可以使用GPU、TPU和FPGA等加速器,那將會帶來許多好處。其中,最大的好處就是訓練時間可以由數(shù)天時間縮短為數(shù)小時。
支持最佳的機器學習和深度學習框架
在機器學習和深度學習方面,大多數(shù)數(shù)據(jù)科學家都有自己偏愛的框架和編程語言。對于喜歡Python的人來說,他們在機器學習方面更偏愛Scikit-learn,而TensorFlow、PyTorch、Keras和MXNet通常是深度學習的首選。云機器學習和深度學習平臺通常都有自己的算法集合,并且它們通常使用至少一種語言支持外部框架。部分云平臺還針對一些主要的深度學習框架進行了修改。在某些情況下,用戶還可以將自己的算法和統(tǒng)計方法與平臺的AutoML設備集成在一起。
以ImageNet為例,其數(shù)據(jù)集不僅非常龐大,而且訓練能夠使用這些數(shù)據(jù)集的深度神經(jīng)網(wǎng)絡可能需要花上數(shù)周的時間。因此針對ImageNet數(shù)據(jù)集的預訓練模型就變得意義重大。
另外,并非所有人都愿意花費大量的時間和計算資源來訓練自己的模型。如果可以使用預訓練模型,用戶就不必如此了。但預訓練模型的不足之處在于其可能無法一直標識出用戶關注的對象。在這種情況下,遷移學習可以幫助用戶針對特定數(shù)據(jù)集定制神經(jīng)網(wǎng)絡的最后幾層,不需要用戶再花時間和資金訓練整個網(wǎng)絡。
在找到了適合自己的最佳模型后,用戶還需要能夠快捷地部署這些模型。如果用戶出于相同目的部署了多個模型,那么用戶則還需要再從中進行挑選。
整個世界是不斷變化的,數(shù)據(jù)也隨著世界的變化而變化。用戶不能部署完模型就甩手不管了。相反,用戶需要不斷監(jiān)控那些出于預測目的而提交的數(shù)據(jù)。如果數(shù)據(jù)的變化遠遠超過了訓練數(shù)據(jù)集的最初設定范圍,那么用戶則需要重新訓練自己的模型。
云平臺不僅提供了圖像識別功能,還為許多應用程序提供了強大的且經(jīng)過優(yōu)化了的AI服務,例如語言翻譯、語音轉(zhuǎn)文本、文本轉(zhuǎn)語音、預測和推薦。為了確保良好的響應時間,目前這些經(jīng)過優(yōu)化的人工智能服務已經(jīng)部署在了計算資源充足的服務端點上。這些服務已使用了大量數(shù)據(jù)進行了訓練和測試,數(shù)據(jù)在數(shù)量上遠遠大于企業(yè)在正常情況下可用的數(shù)量。
對所有的模式都嘗試一遍是為數(shù)據(jù)集找到最佳模型的唯一方法,無論是手動的還是AutoML都要嘗試一下。這時緊隨而來的另外一個問題就是如何管理這些試驗。優(yōu)秀的云機器學習平臺可幫助用戶查看并比對訓練集和測試數(shù)據(jù)試驗的所有目標函數(shù)值,以及模型和混淆矩陣的大小。
本文作者Martin Heller目前為InfoWorld網(wǎng)站的特約編輯兼評論員,此前曾擔任Web和Windows編程顧問。從1986年至2010年,Heller一直從事數(shù)據(jù)庫、軟件和網(wǎng)站的開發(fā)工作。近期,Heller還出任了Alpha Software的技術兼訓練副總裁和Tubifi的董事長兼首席執(zhí)行官。
原文網(wǎng)址
https://www.infoworld.com/article/3568889/how-to-choose-a-cloud-machine-learning-platform.html