【導(dǎo)讀】AI模型進(jìn)入大數(shù)據(jù)時代,單機(jī)早已不能滿足訓(xùn)練模型的要求,最近Google Brain和DeepMind聯(lián)手發(fā)布了一個可以分布式訓(xùn)練模型的框架Launchpad,堪稱AI界的MapReduce。
正如吳恩達(dá)所言,當(dāng)代機(jī)器學(xué)習(xí)算法的成功很大程度上是由于模型和數(shù)據(jù)集大小的增加,在大規(guī)模數(shù)據(jù)下進(jìn)行分布式訓(xùn)練也逐漸變得普遍,而如何在大規(guī)模數(shù)據(jù)、大模型的情況下進(jìn)行計算,還是一個挑戰(zhàn)。
分布式學(xué)習(xí)過程也會使實現(xiàn)過程復(fù)雜化,這對于許多不熟悉分布式系統(tǒng)機(jī)制的機(jī)器學(xué)習(xí)從業(yè)者來說是個問題,尤其是那些具有復(fù)雜通信拓?fù)浣Y(jié)構(gòu)的機(jī)器學(xué)習(xí)從業(yè)者。
在arxiv上一篇新論文中,來自 DeepMind 和 Google Brain 的研究團(tuán)隊用 Launchpad 解決了這個問題,Launchpad 是一種編程模型,它簡化了定義和啟動分布式計算實例的過程。
論文的第一作者是來自DeepMind的華人Yang Fan,畢業(yè)于香港中文大學(xué)。
Launchpad 將分布式系統(tǒng)的拓?fù)涿枋鰹橐粋€圖形數(shù)據(jù)結(jié)構(gòu),這樣圖中的每個節(jié)點都代表一個服務(wù),即研究人員正在運行的基本計算單元。
將句柄構(gòu)造為節(jié)點的引用,將客戶端表示為尚未構(gòu)造的服務(wù)。
圖的邊表示兩個服務(wù)之間的通信,并在構(gòu)建時將與一個節(jié)點相關(guān)聯(lián)的句柄給予另一個節(jié)點時創(chuàng)建。
通過這種方式,Launchpad 可以通過傳遞節(jié)點句柄來定義跨服務(wù)通信。Launchpad 的計算構(gòu)建塊由不同的服務(wù)類型表示,每種服務(wù)類型由特定于該類型的節(jié)點和句柄類表示。
論文中提出的 Launchpad 的生命周期可以分為三個階段: 設(shè)置、啟動和執(zhí)行。設(shè)置階段構(gòu)造程序數(shù)據(jù)結(jié)構(gòu); 在啟動階段,處理這個數(shù)據(jù)結(jié)構(gòu)以分配資源、地址等,并啟動指定服務(wù); 然后執(zhí)行階段運行服務(wù),例如為服務(wù)通信創(chuàng)建客戶端。
Launchpad 是用流行的編程語言 Python 實現(xiàn)的,它簡化了定義程序和節(jié)點數(shù)據(jù)結(jié)構(gòu)以及為單個平臺啟動的過程。Launchpad 框架還可以很容易地用任何其他宿主語言實現(xiàn),包括 c/c + + 等低級編程語言。
Launchpad 編程模型非常豐富,足以容納各種各樣的分布式系統(tǒng),包括參數(shù)服務(wù)器、 MapReduce和 Evolution Strategies。
研究人員用簡潔的代碼詳細(xì)描述了如何將 Launchpad 應(yīng)用到這些常見的分布式系統(tǒng)范例中,并說明了該框架在簡化本研究領(lǐng)域常用機(jī)器學(xué)習(xí)算法和組件的設(shè)計過程方面的能力。
總的來說,Launchpad 是一個實用的、用戶友好的、表達(dá)性強的框架,用于機(jī)器學(xué)習(xí)研究人員和實踐者詳細(xì)說明分布式系統(tǒng),作者表示,這個框架能夠處理日益復(fù)雜的機(jī)器學(xué)習(xí)模型。其他框架
2020年,DeepMind 發(fā)布過一個強化學(xué)習(xí)優(yōu)化框架Acme,可以讓AI驅(qū)動的智能體在不同的執(zhí)行規(guī)模上運行,從而簡化強化學(xué)習(xí)算法的開發(fā)過程。
強化學(xué)習(xí)可以讓智能體與環(huán)境互動,生成他們自己的訓(xùn)練數(shù)據(jù),這在電子游戲、機(jī)器人技術(shù)、自動駕駛機(jī)器人出租車等領(lǐng)域取得了突破。
隨著所使用的訓(xùn)練數(shù)據(jù)量的增加,這促使設(shè)計了一個系統(tǒng),使智能體與環(huán)境實例相互作用,迅速積累經(jīng)驗。DeepMind 斷言,將算法的單進(jìn)程原型擴(kuò)展到分布式系統(tǒng)通常需要重新實現(xiàn)相關(guān)的智能體,這就是 Acme 框架的用武之地。
DeepMind研究員寫道,「Acme 是一個用于構(gòu)建可讀、高效、面向研究的 RL 算法的框架。Acme 的核心是設(shè)計用于簡單描述 RL 智能體,這些智能體可以在不同規(guī)模的執(zhí)行中運行,包括分布式智能體?!?/p>
Determined AI也是一個深度學(xué)習(xí)神器。Determined使深度學(xué)習(xí)工程師可以集中精力大規(guī)模構(gòu)建和訓(xùn)練模型,而無需擔(dān)心DevOps,或者為常見任務(wù)(如容錯或?qū)嶒灨櫍┚帉懘a。更快的分布式訓(xùn)練,智能的超參優(yōu)化,實驗跟蹤和可視化。
一萬億模型要來了?谷歌大腦和DeepMind聯(lián)手發(fā)布分布式訓(xùn)練框架Launchpad
Determined主要運用了Horovod,以Horovod為起點,研究人員運用了多年的專業(yè)知識和經(jīng)驗,使得整個訓(xùn)練過程比庫存配置要快得多。
Horovod 是一套面向TensorFlow 的分布式訓(xùn)練框架,由Uber 構(gòu)建并開源,目前已經(jīng)運行于Uber 的Michelangelo 機(jī)器學(xué)習(xí)即服務(wù)平臺上。Horovod 能夠簡化并加速分布式深度學(xué)習(xí)項目的啟動與運行。當(dāng)數(shù)據(jù)較多或者模型較大時,為提高機(jī)器學(xué)習(xí)模型訓(xùn)練效率,一般采用多 GPU 的分布式訓(xùn)練。TensorFlow 集群存在諸多缺點,如概念太多、學(xué)習(xí)曲線陡峭、修改的代碼量大、性能損失較大等,而 Horovod 則讓深度學(xué)習(xí)變得更加美好,隨著規(guī)模增大,Horovod 性能基本是線性增加的,損失遠(yuǎn)小于 TensorFlow。
2019年,字節(jié)跳動AI lab開源了一款高性能分布式框架BytePS,在性能上顛覆了過去幾年allreduce流派一直占據(jù)上風(fēng)的局面,超出目前其他所有分布式訓(xùn)練框架一倍以上的性能,且同時能夠支持Tensorflow、PyTorch、MXNet等開源庫。
BytePS 提供了 TensorFlow、PyTorch、 MXNet 以及Keras的插件,用戶只要在代碼中引用BytePS的插件,就可以獲得高性能的分布式訓(xùn)練。BytePS的核心邏輯,則實現(xiàn)在BytePS core里。具體的通信細(xì)節(jié),完全由BytePS完成,用戶完全不需要操心。
編輯:jq
-
gpu
+關(guān)注
關(guān)注
28文章
4740瀏覽量
128951 -
開源
+關(guān)注
關(guān)注
3文章
3349瀏覽量
42501 -
分布式
+關(guān)注
關(guān)注
1文章
899瀏覽量
74509 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8418瀏覽量
132646 -
pytorch
+關(guān)注
關(guān)注
2文章
808瀏覽量
13226
發(fā)布評論請先 登錄
相關(guān)推薦
評論