大資料的分散式機器學習的策略與原則

vjvj110發表於2022-05-10

大資料的發展已經引領了對能夠學習包含數百萬至數十億引數的複雜模型的機器學習系統的新需求,以保證足夠的能力來消化海量的資料集,提供強大的預測分析(如高維潛特徵、中介表示和決策功能)。為了在這樣的尺度上,在成百上千臺的分散式機器叢集中執行機器學習演算法,關鍵往往是要投入顯著的工程性的努力——有人可能會問,這樣的工程是否還屬於機器學習的研究領域?考慮到如此“大”的機器學習系統可以極大地從根植於機器學習的統計和演算法的理解中受益——因此,機器學習的研究人員應該不會迴避這樣的系統設計——我們討論了一系列從我們近來對工程尺度的機器學習解決方案的研究中提煉的原則和策略。這些原則和策略從機器學習的應用連續跨越到它的工程和理論研究,以及大型機器學習的系統和架構的發展,目標是瞭解如何使其有效、廣泛地適用,並以收斂和縮放保證支援。它們關注的是機器學習研究傳統上注意較少的四個關鍵問題:一個機器學習程式怎樣能分佈到一個叢集中去?機器學習計算怎樣能通過機器間的交流連線起來?這樣的交流是如何被執行的?機器間應該交流的內容是什麼?通過揭示機器學習程式所獨有的,而非常見於傳統計算機程式中的基礎性的統計和演算法上的特點,並通過剖析成功案例,以揭示我們如何利用這些原則來同時設計和開發高效能的分散式機器學習軟體以及通用的機器學習框架,我們為機器學習的研究人員和從業者提供了進一步塑造並擴大機器學習與系統之間的領域的機會。

機器學習已經成為從原始資料中提取結構化資訊和知識,將其轉變成為不同應用的自動預測和運用假說的首要機制。這些應用如分析社會網路 [1]、推理客戶行為 [2];轉譯文字、影像和視訊 [3];確定疾病和治療方法 [4];操縱無人駕駛汽車 [5];跟蹤網路安全異常活動 [6],及其他。機器學習的大多數應用都是由一箇中等數量的發達的機器學習方法族系支援,其中,每種方法都體現了從模型設計到對演算法的創新,甚至對軟體應用的完善這一連串的技術要點,並吸引了來自研究和發展團體的日益增長的創新貢獻。這些方法現代的例子包括圖形模型[7–9]、正則貝葉斯模型[10–12]、非引數貝葉斯模型[13,14]、稀疏結構模型[15,16]、大幅度方法[17,18]、深度學習[19,20]、矩陣分解[21,22]、稀疏編碼[23,24]以及潛在空間建模[1,25]。一個能確保數學合理性和結果可重複性的機器學習的普遍做法,是從業者和研究人員為某種機器學習方式(比如,通過一個卷積神經網路的深度學習模型,提供影像的語義解釋)的一個特定應用的例項編寫一個機器學習程式(使用任何通用的高階程式語言)。理想的情況是,這個程式預計將依託於各種硬體和雲基礎設施——膝上型電腦、伺服器、圖形處理單元(GPU)、雲端計算和虛擬機器、分散式網路儲存、乙太網和InfiniBand網路(僅舉幾例),以得到快速、準確的執行。這樣,程式就是硬體無關但機器學習明確的(即無論硬體如何選取,對於資料都遵循相同的數學原理,並獲得相同的結果)。

隨著感官、數字儲存和網路通訊技術的進步,傳統機器學習的研究與發展——擅長模型、演算法和理論的創新——正面臨日益盛行的大資料收集的挑戰,如每分鐘上傳到視訊共享網站的數百小時視訊 ,或社交媒體中上億使用者產生的幾千萬億位元組(PB)資料 。大資料的興起也伴隨著對包括數百萬至數十億引數的更高維也更復雜的機器學習模型的興趣的增加,以支援日益複雜的資料,或者為了獲得更高的預測精度(比如為客戶提供更好的服務和醫療診斷),支援更智慧的任務(比如無人駕駛車輛和視訊資料的語義解釋)[26,27]。對這樣大規模的資料運作如此大型的機器學習模型是超出單一機器的儲存和計算能力的。這一差距已經激發了近來越來越多對於分散式機器學習的工作,其中,機器學習程式由研究叢集、資料中心和雲提供商使用成千上萬的機器加以執行。從得到數學上等價的或類似於由單一機器產生的解的意義上說,以機器叢集(p個機器)代替一個機器,就可以通過分散式機器學習程式實現幾乎p倍的加速;然而,報告過的加速往往還遠低於這個限度。例如,即使近來使用最先進的技術對主題模型的實現 [28](文字分析的一種常用的方法),由於在實現中的數學錯誤(如在文獻 [25]所示),也無法用4×機達到2×加速,而利用MapReduce-like系統進行的深度學習,如Spark,也尚未用10×機達到5×加速 [29]。因此解決這種可量測性挑戰就是分散式機器學習研究的一個主要目標,以減少執行大型機器學習應用的資本和運營成本。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31495967/viewspace-2893156/,如需轉載,請註明出處,否則將追究法律責任。

相關文章