深度學習在騰訊的平台化和應用實踐

2021-07-09 14:36:51 字數 2673 閱讀 8986

深度學習系列:mariana cnn並行框架與影象識別(三)

深度學習系列:解密最接近人腦的智慧型學習機器——深度學習及並行化實現(四)

深度學習通過構建深層神經網路,來模擬人類大腦的工作原理。如圖1所示,深層神經網路由乙個輸入層,數個隱層,以及乙個輸出層構成。每層有若干個神經元,神經元之間有連線權重。每個神經元模擬人類的神經細胞,而結點之間的連線模擬神經細胞之間的連線。

圖1:深度神經網路的結構

首先,深度神經網路模型複雜,訓練資料多,計算量大。一方面,dnn需要模擬人腦的計算能力,而人腦包含100多億個神經細胞,這要求dnn中神經元多,神經元間連線數量也相當驚人。從數學的角度看,dnn中每個神經元都包含數學計算(如sigmoid、relu或者softmax函式),需要估計的參數量也極大。語音識別和影象識別應用中,神經元達數萬個,引數數千萬,模型複雜導致計算量大。另一方面,dnn需要大量資料才能訓練出高準確率的模型。dnn參數量大,模型複雜,為了避免過擬合,需要海量訓練資料。兩方面因素疊加,導致訓練乙個模型耗時驚人。以語音識別為例,目前業界通常使用樣本量達數十億,以cpu單機需要數年才能完成一次訓練,用流行的gpu卡也需要數週才能完成訓練。

其次,深度神經網路需要支援大模型。以影象識別為例,已有工作證明通過增加卷積層的filter數量,加大模型深度等,可以獲得更好的模型質量,但模型引數也隨之增加。然而,以imagenet 2012競賽冠軍的網路為例,其占用3.99 gb的視訊記憶體,已接近主流gpu的視訊記憶體容量,試圖增大模型則會超過gpu視訊記憶體範圍。因此,如何支援更大模型是乙個大的挑戰。

再次,深度神經網路訓練收斂難,需要反覆多次實驗。深度神經網路是非線性模型,其代價函式是非凸函式,容易收斂到區域性最優解。同時,深度神經網路的模型結構、輸入資料處理方式、權重初始化方案、引數配置、啟用函式選擇、權重優化方法等均可能對最終效果有較大影響。另外,深度神經網路的數學基礎研究稍顯不足。雖然可以通過限制性波爾茲曼機(restricted boltzmann machines,rbms),或者(denoisingautoencoder,daes)等產生式建模方法初始化網路模型,以達到減少陷入區域性最優的風險,但仍然不是徹底的解決方案,仍然需要在實際使用深度神經網路解決問題的時候,合理的利用海量資料,合理的選擇優化方式。上述原因導致需要技巧、經驗,基於大量實驗來訓練出乙個效果好的模型。

因此,深度學習成為乙個效果很好但門檻極高的方向,如何落地產生實際應用效果成為關注的焦點。

dnn的資料並行框架通過同步隨機梯度下降進行訓練。資料並行訓練中,每個gpu卡各自訓練,並各自產生乙份梯度值,然後進行引數交換。圖2. 展示了引數交換過程。每台gpu伺服器配置6塊gpu卡,其中四塊通過樹狀的pcie連線,並與另外兩塊gpu**過ioh連線。引數交換過程從邏輯上看,梯度收集階段將全部梯度值累加起來,然後應用到當前模型以更新引數得到新模型,最後在模型分發階段將新模型下發給全部gpu卡。採用資料並行後,相對於單卡訓練過程,關鍵的問題是引數交換過程引入額外時間消耗,拖累了並行效能,使得加速比很難提高。我們通過乙個精心設計的拓撲完成引數交換,提公升整體效能。此外,我們採用近似的自適應學習率演算法,使得支援自適應學習率所需交換的資料量降低了乙個數量級。

圖2:dnn gpu框架資料並行的引數交換過程

卷積神經網路cnn的模型並行和資料並行框架的結構如下圖所示:

圖3:cnn gpu框架的模型並行和資料並行架構

cnn模型並行和資料並行框架對gpu卡分組,組內兩個gpu卡做模型並行,組間做資料並行。如上圖所示,4個gpu卡分成worker group 0和1。組內兩卡各持有cnn模型的一部分,稱為partition,協作完成單個模型的訓練。模型並行中,卡間資料傳輸通過引入transfer layer透明的完成。組間資料並行按同步隨機梯度下降進行訓練,並採用精巧的拓撲完成引數交換,但注意只有各組內屬於同乙個partition的資料各自交換,即圖中gpu0和gpu2、gpu1和gpu3分別進行引數交換。引入資料並行和模型並行後,從磁碟讀取訓練資料,訓練資料預處理,cnn訓練分別占用磁碟、cpu、gpu資源,且均耗時較大。因此,我們引入流水線,使得磁碟、cpu、gpu資源可以同時得到利用,提公升整體效能。

圖4:cnn gpu框架對hinton的網路[2]在imagenet 2012的並行加速效能

dnn cpu集群框架實現基於cpu集群的資料並行和模型並行,其總體架構如下圖所示:

圖5:dnn cpu集群框架總體架構

1.hinton, g. e. andsalakhutdinov, r. r. (2006) reducing the dimensionality of data with neuralnetworks. science, vol. 313. no.5786, pp. 504 – 507, 28 july 2006.

2. alex krizhevsky, ilyasutskever. and geoffrey e. hinton. (2012) imagenet classification with deepconvolutional neural networks. in advancesin neural information processing 25 (nips 2012), mit press, cambridge, ma.

3. jeffrey dean, greg s. corrado,rajat monga, et al, and andrew y. ng (2012) large scale distributed deepnetworks. in advances in neuralinformation processing 25 (nips 2012), mit press, cambridge, ma.

WebSocket在容器化管理平台的應用

介紹 websocket是乙個持久化協議,相對於http這種非持久協議而言。它實現了瀏覽器與伺服器全雙工通訊,能更好的節省伺服器資源和頻寬並達到實時通訊的目的,與http一樣基於已建立的tcp連線來傳輸資料。但是與http協議不同的地方就是 websocket是一種雙向通訊協議,在建立連線後,web...

WebSocket在容器化管理平台的應用

介紹 websocket是乙個持久化協議,相對於http這種非持久協議而言。它實現了瀏覽器與伺服器全雙工通訊,能更好的節省伺服器資源和頻寬並達到實時通訊的目的,與http一樣基於已建立的tcp連線來傳輸資料。但是與http協議不同的地方就是 websocket是一種雙向通訊協議,在建立連線後,web...

深度學習在CTR中的應用

目前的很多資料均是基於張偉楠的fnn模型,但還沒有很大規模的應用。另一種是google提出的wide deep learning模型,主要用於推薦,美團的文章中也有介紹。product based neural networks for user response predictions wide ...