Martin Heller 陳琳華

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