0
本文作者: 楊曉凡 | 2018-03-26 17:44 |
雷鋒網(wǎng) AI 科技評(píng)論按:TensorFlow 的機(jī)器學(xué)習(xí)庫可以說大家都已經(jīng)很熟悉了,但 IBM 的研究人員們表示這都是小意思。
今年 2 月的時(shí)候,谷歌的軟件工程師 Andreas Sterbenz 曾在谷歌官方博客撰寫文章,介紹如何使用谷歌云機(jī)器學(xué)習(xí)(Google Cloud Machine Learning)和 TensorFlow 對(duì)大規(guī)模廣告投放和推薦系統(tǒng)做點(diǎn)擊率預(yù)測(cè)。根據(jù)介紹,他用了大小為 1TB、包含了 42 億條訓(xùn)練樣本、一百萬個(gè)特征的 Criteo Terabyte Click Logs 數(shù)據(jù)訓(xùn)練了機(jī)器學(xué)習(xí)模型,用來預(yù)測(cè)未來顯示的廣告可能被點(diǎn)擊的概率如何。
在數(shù)據(jù)預(yù)處理之后,實(shí)際訓(xùn)練過程用到了 60 臺(tái)計(jì)算服務(wù)器和 29 臺(tái)參數(shù)服務(wù)器。訓(xùn)練模型花費(fèi)了 70 分鐘,訓(xùn)練損失最終降低到了 0.1293(訓(xùn)練損失可以看作最終預(yù)測(cè)準(zhǔn)確率的粗略近似)。
Sterbenz 也嘗試了不同的建模技術(shù),看看能否繼續(xù)降低訓(xùn)練損失。不過各種好方法基本都會(huì)帶來更長(zhǎng)的訓(xùn)練時(shí)間。最終他選用了深度神經(jīng)網(wǎng)絡(luò),訓(xùn)練時(shí)有 3 個(gè) epoch,一共花費(fèi)了 78 小時(shí)訓(xùn)練完畢。
不過這種結(jié)果對(duì) IBM 來說毫無吸引力,他們想要借機(jī)證明自己的訓(xùn)練框架有多么高效。他們認(rèn)為,自己的帶有 GPU 的 POWER9 服務(wù)器同樣做前一項(xiàng)訓(xùn)練任務(wù)的話,要比谷歌云平臺(tái)的這 89 臺(tái)服務(wù)器快多了。
在蘇黎世 IBM 研究院工作的 Thomas Parnell 和 Celestine Dünner 也找來了同樣的 1TB 訓(xùn)練數(shù)據(jù),訓(xùn)練的模型也是和前面 70 分鐘完成訓(xùn)練的一樣的邏輯回歸模型。但不同的是,他們用的不是 TensorFlow 的機(jī)器學(xué)習(xí)庫,而是 Snap Machine Learning(https://arxiv.org/pdf/1803.06333.pdf )。
IBM 兩人用的服務(wù)器是 Power System AC922,一共有八臺(tái) POWER9 服務(wù)器,每臺(tái)服務(wù)器搭載兩塊 NVIDIA Tesla V100 GPU。訓(xùn)練只經(jīng)過 91.5 秒就結(jié)束了,比 Sterbenz 在谷歌云機(jī)器學(xué)習(xí)平臺(tái)上的 70 分鐘快 46 倍。
他們也把自己的結(jié)果和其它各個(gè)系統(tǒng)的結(jié)果做成了圖表進(jìn)行對(duì)比:
46 倍的速度提升畢竟不是一個(gè)小數(shù)目,那么其中的改進(jìn)具體有哪些呢?
根據(jù) Thomas Parnell 和 Celestine Dünner 兩人介紹,Snap ML 中引入了許多不同層級(jí)的并行化計(jì)算設(shè)計(jì),可以在同一個(gè)集群內(nèi)的不同節(jié)點(diǎn)之間分配任務(wù)量、可以發(fā)揮出加速計(jì)算單元(比如 V100 GPU)的計(jì)算能力,而且在單個(gè)計(jì)算單元中也可以利用到多核心的并行計(jì)算能力。
其中的并行化設(shè)計(jì)可以概述如下:
首先把數(shù)據(jù)分配給集群內(nèi)的各個(gè)計(jì)算節(jié)點(diǎn)
在單個(gè)節(jié)點(diǎn)中,數(shù)據(jù)一部分分配給 CPU、一部分分配給 GPU,CPU 和多張 GPU 可以同時(shí)進(jìn)行計(jì)算
計(jì)算時(shí),GPU 中的多個(gè)核心同時(shí)參與運(yùn)算,CPU 的運(yùn)算負(fù)載也是多線程的,可以更好利用多核心 CPU
Snap ML 中也有內(nèi)置的層級(jí)化算法,可以讓這各個(gè)級(jí)別的并行化手段高效協(xié)同運(yùn)作。
IBM 的研究人員們并不是借此指責(zé) TensorFlow 中沒有好好利用并行化,但他們確實(shí)表示:「我們?cè)O(shè)計(jì)了專用的求解器,以便能夠完全利用這些 GPU 的海量并行計(jì)算能力;同時(shí)我們還保證了數(shù)據(jù)在 GPU 內(nèi)存中的局部性,避免讓大量數(shù)據(jù)傳輸帶來額外的開銷?!?/p>
另外,AC922 服務(wù)器和 V100 GPU 之間的連接總線是 NVLink 2.0,而傳統(tǒng)英特爾至強(qiáng)服務(wù)器(比如使用 Xeon Gold 6150 CPU @ 2.70GHz)只能使用 PCI-E 總線連接到 GPU。前者的有效數(shù)據(jù)傳輸帶寬達(dá)到 68.1GB/s,后者僅有 11.8GB/s。看起來,PCI-E 總線速度可能也是系統(tǒng)性能的瓶頸之一,傳輸一個(gè)數(shù)據(jù)包需要 318ms,而 NVLink 2.0 只需要 55ms。
IBM 團(tuán)隊(duì)還表示:「我們還為系統(tǒng)中的算法設(shè)計(jì)了一些新的優(yōu)化手段,可以更適合處理稀疏的數(shù)據(jù)結(jié)構(gòu)?!?/p>
以上總總因素匯合起來,IBM 通過更好地利用 GPU 性能打敗了谷歌的云服務(wù)器似乎還挺合理。不過據(jù)我們所知,IBM 目前并沒有公開提供過任何 POWER9 與英特爾至強(qiáng)服務(wù)器之間的直接性能對(duì)比。另一方面,關(guān)于 Snap ML 到底有多好也只有在同樣的硬件環(huán)境上運(yùn)行 Snap ML 和 TensorFlow 才能知道。
(關(guān)于 Tesla V100 GPU,更多信息參見雷鋒網(wǎng) AI 科技評(píng)論此前報(bào)道 一文詳解英偉達(dá)剛發(fā)布的 Tesla V100 究竟牛在哪?)
via theRegister,雷鋒網(wǎng) AI 科技評(píng)論編譯
相關(guān)文章:
一文詳解英偉達(dá)剛發(fā)布的 Tesla V100 究竟牛在哪?
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。