同意嗎?計算的未來是分布式!
譯文【51CTO.com快譯】分布式應用不是新鮮事。隨著ARPANET等計算機網(wǎng)絡的出現(xiàn),第一批分布式應用系統(tǒng)在50年前就開發(fā)出來了。從那時起,開發(fā)人員利用分布式系統(tǒng)來擴展應用和服務,包括大規(guī)模模擬、Web服務和大數(shù)據(jù)處理。我在這20多年的職業(yè)生涯中開發(fā)過分布式系統(tǒng),涉及互聯(lián)網(wǎng)、對等網(wǎng)絡、大數(shù)據(jù)和現(xiàn)在的機器學習等領域。
然而就在不久前,分布式應用還是例外,而不是常態(tài)。即使在今天,大多數(shù)學校的本科生也很少搞涉及分布式應用的項目(即便有的話),不過這種情況在迅速改變。
分布式應用很快將成為常態(tài),而不是例外
推動這一轉(zhuǎn)變的兩大潮流是:摩爾定律終結(jié)和新的機器學習應用對計算需求激增。這些潮流導致應用需求和單節(jié)點性能之間的差距迅速拉大,這使得我們除了分發(fā)這些應用外別無選擇。
摩爾定律已死
過去40年來推動計算機行業(yè)空前發(fā)展的摩爾定律已走到頭。根據(jù)摩爾定律,處理器的性能每18個月翻番。而今天,它在同一時期僅以10%至20%的速度增長。
雖然摩爾定律可能已死,但對增加計算資源的需求并未停止。為了應對這一挑戰(zhàn),計算機架構(gòu)師將注意力集中到制造以通用性換性能的針對特定領域的處理器上。
光有針對特定領域的硬件不夠
針對特定領域的處理器以犧牲通用性為代價,對特定工作負載進行了優(yōu)化。這類工作負載的典例是深度學習,深度學習徹底改變了幾乎每個應用領域,包括金融服務、工業(yè)控制、醫(yī)療診斷、制造和系統(tǒng)優(yōu)化等。
為了支持深度學習工作負載,許多公司競相制造專用處理器,比如英偉達的GPU和谷歌的TPU。然而,雖然GPU和TPU等加速器帶來了更強的計算能力,但它們實質(zhì)上有助于延長摩爾定律的壽命,而不是從根本上提高改進的速度。
深度學習應用需求的三重打擊
機器學習應用的需求正以驚人的速度增長。下面是三種典型的重要工作負載。
1. 訓練
據(jù)OpenAI的一篇著名博文(https://openai.com/blog/ai-and-compute)介紹,自2012年以來,獲得最先進的機器學習結(jié)果所需的計算量大約每3.4個月翻番。這相當于每18個月增加近40倍,比摩爾定律還要多20倍!因此,即使摩爾定律還沒有終結(jié),它仍遠遠滿足不了這些應用的要求。
這種爆炸性的增長并非僅限于深奧的機器學習應用,比如AlphaGo。類似的趨勢也適用于主流應用領域,比如計算機視覺和自然語言處理。不妨考慮兩個最先進的神經(jīng)機器翻譯(NMT)模型:2014年的seq2seq模型和2019年針對數(shù)百億個句子對的預訓練方法。兩者所需的計算資源之比超過5000倍。這相當于每年增加5.5倍。同樣不妨考慮ResNet 50與ResNeXt 101 Instagram模型,這兩個最先進的對象識別模型分別于2015年和2018年發(fā)布。兩者的訓練時間之比達到驚人的11000倍(ResNet 50使用16個英偉達V100 GPU用時58分鐘,ResNetXt 101使用336個GPU用時22天)。這相當于每年增加22倍!這使摩爾定律相形見絀,摩爾定律每年增長僅1.6倍。
這些需求與專用處理器的功能之間的差距日益拉大,系統(tǒng)架構(gòu)師除了分發(fā)這些計算別無選擇。最近,谷歌發(fā)布了TPU v2和v3 pod,含有多達1000個通過高速網(wǎng)狀網(wǎng)絡連接的TPU。值得關注的是,雖然TPU v3 pod的功能是TPU v2 pod的8倍,但其中只有2倍來自更快的處理器,其余的6倍來自TPU v3 pod變得更分布式,即使用的處理器比TPU v2 pod多4倍。同樣,英偉達發(fā)布了兩個分布式AI系統(tǒng):分別是搭載8個GPU和16個GPU的DGX-1和DGX-2。此外,英偉達最近收購了知名網(wǎng)絡供應商邁絡思,以增強其數(shù)據(jù)中心中GPU之間的連接性。
2. 調(diào)整
情況變得更糟。你不會只訓練一次模型。通常,模型的質(zhì)量取決于各種超參數(shù),比如層數(shù)、隱藏單元數(shù)量和批大小。找到最佳模型常常需要在各種超參數(shù)設置之間進行搜索,這個過程就叫超參數(shù)調(diào)整,開銷可能很大。比如說,RoBERTa是用于預訓練NLP模型的可靠技術(shù),它使用的超參數(shù)多達17個。假設每個超參數(shù)至少有兩個值,搜索空間由13萬多個配置組成,探索這些空間(哪怕是部分探索)可能需要大量的計算資源。
超參數(shù)調(diào)整任務的另一個例子是神經(jīng)架構(gòu)搜索,它嘗試不同的架構(gòu),并選擇性能最佳的架構(gòu),從而使人工神經(jīng)網(wǎng)絡的設計實現(xiàn)自動化。研究人員聲稱,即使設計一個簡單的神經(jīng)網(wǎng)絡也可能需要數(shù)十萬個GPU計算日。
3. 模擬
雖然深度神經(jīng)網(wǎng)絡模型常??梢岳脤S糜布矫娴倪M步,但并非所有機器學習算法都可以。尤其是,強化學習算法涉及大量模擬。由于復雜的邏輯,這些模擬仍然在通用CPU上執(zhí)行最好(它們將GPU僅用于渲染),因此無法得益于硬件加速器的最新進步。比如說,OpenAI在最近的一篇博文(https://openai.com/blog/openai-five/)中聲稱,使用128000個CPU核心和僅僅256個GPU(即CPU比GPU多500倍)來訓練玩《Dota 2》游戲時能擊敗愛好者的模型。
雖然《Dota 2》只是個游戲,但我們看到模擬日益用在決策應用領域中,這個領域出現(xiàn)了幾家新興公司,比如Pathmind、Prowler和Hash.ai。由于模擬器試圖更準確地對環(huán)境建模,復雜性隨之增加。這又大大增強了強化學習的計算復雜性。
小結(jié)
大數(shù)據(jù)和AI在迅速改變我們所知道的世界。雖然任何技術(shù)革命都存在危險,但我們看到這場革命大有潛力以十年前根本無法想象的方式改善我們的生活。然而要兌現(xiàn)這一承諾,我們需要克服這些應用的需求與硬件功能之間迅速拉大的差距所帶來的巨大挑戰(zhàn)。為了縮小這個差距,我們只能分發(fā)這些應用。這需要新的軟件工具、框架和課程來培訓和幫助開發(fā)人員構(gòu)建這類應用。這開啟了一個新的、令人興奮的計算時代。
原文標題:The Future of Computing is Distributed,作者:Ion Stoica
【51CTO譯稿,合作站點轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】