日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

深度学习系列:深度学习在腾讯的平台化和应用实践

發(fā)布時(shí)間:2025/7/25 pytorch 76 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深度学习系列:深度学习在腾讯的平台化和应用实践 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

深度學(xué)習(xí)系列:深度學(xué)習(xí)在騰訊的平臺(tái)化和應(yīng)用實(shí)踐(一)

深度學(xué)習(xí)是近年機(jī)器學(xué)習(xí)領(lǐng)域的重大突破,有著廣泛的應(yīng)用前景。隨著Google公開Google Brain計(jì)劃,業(yè)界對(duì)深度學(xué)習(xí)的熱情高漲。騰訊在深度學(xué)習(xí)領(lǐng)域持續(xù)投入,獲得了實(shí)際落地的產(chǎn)出。我們準(zhǔn)備了四篇文章,闡述深度學(xué)習(xí)的原理和在騰訊的實(shí)踐,介紹騰訊深度學(xué)習(xí)平臺(tái)Mariana,本文為第一篇。

深度學(xué)習(xí)系列:深度學(xué)習(xí)在騰訊的平臺(tái)化和應(yīng)用實(shí)踐(一)

深度學(xué)習(xí)系列:Mariana DNN多GPU數(shù)據(jù)并行框架 微信語音是怎么來的?(二)

深度學(xué)習(xí)系列:Mariana CNN并行框架與圖像識(shí)別(三)

深度學(xué)習(xí)系列:解密最接近人腦的智能學(xué)習(xí)機(jī)器——深度學(xué)習(xí)及并行化實(shí)現(xiàn)(四)

深度學(xué)習(xí)(Deep Learning)是近年來機(jī)器學(xué)習(xí)領(lǐng)域的熱點(diǎn),在語音識(shí)別、圖像識(shí)別等領(lǐng)域均取得了突破性進(jìn)展。騰訊提供廣泛的互聯(lián)網(wǎng)服務(wù),在2014年第一季度,即擁有3.96億月活躍用戶的微信,8.48億月活躍用戶的QQ,以及6.44億月活躍用戶的Qzone等平臺(tái),擁有海量數(shù)據(jù)和眾多應(yīng)用,深度學(xué)習(xí)在騰訊有廣泛的潛在應(yīng)用場(chǎng)景。

深度學(xué)習(xí)是近年來機(jī)器學(xué)習(xí)領(lǐng)域最令人矚目的方向。自2006年深度學(xué)習(xí)界泰斗Geoffrey Hinton在Science雜志上發(fā)表Deep Belief Networks [1]的論文后,重新激活了神經(jīng)網(wǎng)絡(luò)的研究,開啟了深度神經(jīng)網(wǎng)絡(luò)的新時(shí)代。學(xué)術(shù)界和工業(yè)界對(duì)深度學(xué)習(xí)熱情高漲,并逐漸在語音識(shí)別、圖像識(shí)別、自然語言處理等領(lǐng)域獲得突破性進(jìn)展。深度學(xué)習(xí)在語音識(shí)別領(lǐng)域獲得相對(duì)20%到30%的準(zhǔn)確率提升,突破了近十年的瓶頸。2012年圖像識(shí)別領(lǐng)域在ImageNet圖像分類競(jìng)賽中取得了85%的top5準(zhǔn)確率 [2],相比前一年74%的準(zhǔn)確率有里程碑式的提升,并進(jìn)一步在2013年獲得89%的準(zhǔn)確率。目前Google、Facebook、Microsoft、IBM等國際巨頭,以及國內(nèi)百度、阿里巴巴等互聯(lián)網(wǎng)巨頭爭(zhēng)相布局深度學(xué)習(xí)。

深度學(xué)習(xí)通過構(gòu)建深層神經(jīng)網(wǎng)絡(luò),來模擬人類大腦的工作原理。如圖1所示,深層神經(jīng)網(wǎng)絡(luò)由一個(gè)輸入層,數(shù)個(gè)隱層,以及一個(gè)輸出層構(gòu)成。每層有若干個(gè)神經(jīng)元,神經(jīng)元之間有連接權(quán)重。每個(gè)神經(jīng)元模擬人類的神經(jīng)細(xì)胞,而結(jié)點(diǎn)之間的連接模擬神經(jīng)細(xì)胞之間的連接。

圖1:深度神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)

然而,深度學(xué)習(xí)要在騰訊落地,面臨巨大的挑戰(zhàn)。

首先,深度神經(jīng)網(wǎng)絡(luò)模型復(fù)雜,訓(xùn)練數(shù)據(jù)多,計(jì)算量大。一方面,DNN需要模擬人腦的計(jì)算能力,而人腦包含100多億個(gè)神經(jīng)細(xì)胞,這要求DNN中神經(jīng)元多,神經(jīng)元間連接數(shù)量也相當(dāng)驚人。從數(shù)學(xué)的角度看,DNN中每個(gè)神經(jīng)元都包含數(shù)學(xué)計(jì)算(如Sigmoid、ReLU或者Softmax函數(shù)),需要估計(jì)的參數(shù)量也極大。語音識(shí)別和圖像識(shí)別應(yīng)用中,神經(jīng)元達(dá)數(shù)萬個(gè),參數(shù)數(shù)千萬,模型復(fù)雜導(dǎo)致計(jì)算量大。另一方面,DNN需要大量數(shù)據(jù)才能訓(xùn)練出高準(zhǔn)確率的模型。DNN參數(shù)量大,模型復(fù)雜,為了避免過擬合,需要海量訓(xùn)練數(shù)據(jù)。兩方面因素疊加,導(dǎo)致訓(xùn)練一個(gè)模型耗時(shí)驚人。以語音識(shí)別為例,目前業(yè)界通常使用樣本量達(dá)數(shù)十億,以CPU單機(jī)需要數(shù)年才能完成一次訓(xùn)練,用流行的GPU卡也需要數(shù)周才能完成訓(xùn)練。

其次,深度神經(jīng)網(wǎng)絡(luò)需要支持大模型。以圖像識(shí)別為例,已有工作證明通過增加卷積層的filter數(shù)量,加大模型深度等,可以獲得更好的模型質(zhì)量,但模型參數(shù)也隨之增加。然而,以ImageNet 2012競(jìng)賽冠軍的網(wǎng)絡(luò)為例,其占用3.99 GB的顯存,已接近主流GPU的顯存容量,試圖增大模型則會(huì)超過GPU顯存范圍。因此,如何支持更大模型是一個(gè)大的挑戰(zhàn)。

再次,深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練收斂難,需要反復(fù)多次實(shí)驗(yàn)。深度神經(jīng)網(wǎng)絡(luò)是非線性模型,其代價(jià)函數(shù)是非凸函數(shù),容易收斂到局部最優(yōu)解。同時(shí),深度神經(jīng)網(wǎng)絡(luò)的模型結(jié)構(gòu)、輸入數(shù)據(jù)處理方式、權(quán)重初始化方案、參數(shù)配置、激活函數(shù)選擇、權(quán)重優(yōu)化方法等均可能對(duì)最終效果有較大影響。另外,深度神經(jīng)網(wǎng)絡(luò)的數(shù)學(xué)基礎(chǔ)研究稍顯不足。雖然可以通過限制性波爾茲曼機(jī)(Restricted Boltzmann Machines,RBMs),或者(DenoisingAutoencoder,DAEs)等產(chǎn)生式建模方法初始化網(wǎng)絡(luò)模型,以達(dá)到減少陷入局部最優(yōu)的風(fēng)險(xiǎn),但仍然不是徹底的解決方案,仍然需要在實(shí)際使用深度神經(jīng)網(wǎng)絡(luò)解決問題的時(shí)候,合理的利用海量數(shù)據(jù),合理的選擇優(yōu)化方式。上述原因?qū)е滦枰记伞⒔?jīng)驗(yàn),基于大量實(shí)驗(yàn)來訓(xùn)練出一個(gè)效果好的模型。

因此,深度學(xué)習(xí)成為一個(gè)效果很好但門檻極高的方向,如何落地產(chǎn)生實(shí)際應(yīng)用效果成為關(guān)注的焦點(diǎn)。

面對(duì)機(jī)遇和挑戰(zhàn),我們打造了騰訊深度學(xué)習(xí)平臺(tái)Mariana。Mariana包括三個(gè)框架:深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Networks,DNN)的GPU數(shù)據(jù)并行框架,深度卷積神經(jīng)網(wǎng)絡(luò)(Deep ConvolutionalNeural Networks,CNN)的GPU數(shù)據(jù)并行和模型并行框架,以及DNN CPU集群框架。Mariana通過此三個(gè)框架完成并行加速,針對(duì)多種應(yīng)用場(chǎng)景,以解決深度學(xué)習(xí)訓(xùn)練極慢的問題;Mariana通過模型并行,支持大模型;Mariana提供默認(rèn)算法的并行實(shí)現(xiàn)以減少新算法開發(fā)量,簡(jiǎn)化實(shí)驗(yàn)過程。Mariana面向語音識(shí)別、圖像識(shí)別、廣告推薦等眾多應(yīng)用領(lǐng)域。

騰訊深度學(xué)習(xí)平臺(tái)Mariana以GPU服務(wù)器為主,每臺(tái)服務(wù)器配置4或者6塊Nvidia Tesla系列高端科學(xué)計(jì)算用GPU卡。利用每塊GPU卡2000多個(gè)流處理器的強(qiáng)大計(jì)算能力,并實(shí)現(xiàn)多GPU卡并行以加速訓(xùn)練。

騰訊深度學(xué)習(xí)平臺(tái)Mariana重點(diǎn)研究多GPU卡的并行化技術(shù),完成DNN的數(shù)據(jù)并行框架,以及CNN的模型并行和數(shù)據(jù)并行框架。數(shù)據(jù)并行和模型并行是Google分布式大神Jeff Dean和深度學(xué)習(xí)大佬Andrew Ng在2012年NIPS會(huì)議上發(fā)表的DistBelief[3] 論文中針對(duì)深度學(xué)習(xí)的CPU集群框架提出的定義。數(shù)據(jù)并行指將訓(xùn)練數(shù)據(jù)劃分為多份,每份數(shù)據(jù)有一個(gè)模型實(shí)例進(jìn)行訓(xùn)練,再將多個(gè)模型實(shí)例產(chǎn)生的梯度合并后更新模型。模型并行指將模型劃分為多個(gè)分片,每個(gè)分片在一臺(tái)服務(wù)器,全部分片協(xié)同對(duì)一份訓(xùn)練數(shù)據(jù)進(jìn)行訓(xùn)練。我們學(xué)習(xí)并借鑒了這兩種并行方式,并成功應(yīng)用于單機(jī)多GPU卡的并行。

DNN的數(shù)據(jù)并行框架通過同步隨機(jī)梯度下降進(jìn)行訓(xùn)練。數(shù)據(jù)并行訓(xùn)練中,每個(gè)GPU卡各自訓(xùn)練,并各自產(chǎn)生一份梯度值,然后進(jìn)行參數(shù)交換。圖2. 展示了參數(shù)交換過程。每臺(tái)GPU服務(wù)器配置6塊GPU卡,其中四塊通過樹狀的PCIe連接,并與另外兩塊GPU卡通過IOH連接。參數(shù)交換過程從邏輯上看,梯度收集階段將全部梯度值累加起來,然后應(yīng)用到當(dāng)前模型以更新參數(shù)得到新模型,最后在模型分發(fā)階段將新模型下發(fā)給全部GPU卡。采用數(shù)據(jù)并行后,相對(duì)于單卡訓(xùn)練過程,關(guān)鍵的問題是參數(shù)交換過程引入額外時(shí)間消耗,拖累了并行性能,使得加速比很難提高。我們通過一個(gè)精心設(shè)計(jì)的拓?fù)渫瓿蓞?shù)交換,提升整體性能。此外,我們采用近似的自適應(yīng)學(xué)習(xí)率算法,使得支持自適應(yīng)學(xué)習(xí)率所需交換的數(shù)據(jù)量降低了一個(gè)數(shù)量級(jí)。


圖2:DNN GPU框架數(shù)據(jù)并行的參數(shù)交換過程

DNN的數(shù)據(jù)并行框架在微信語音識(shí)別中得到應(yīng)用。微信中語音識(shí)別功能的入口是語音輸入法、語音開放平臺(tái)以及長按語音消息轉(zhuǎn)文本等。對(duì)微信語音識(shí)別任務(wù),通過Mariana,識(shí)別準(zhǔn)確率獲得了極大的提升,目前識(shí)別能力已經(jīng)躋身業(yè)界一流水平。同時(shí)可以滿足語音業(yè)務(wù)海量的訓(xùn)練樣本需求,通過縮短模型更新周期,使得微信語音業(yè)務(wù)可以及時(shí)滿足各種新業(yè)務(wù)需求。

卷積神經(jīng)網(wǎng)絡(luò)CNN的模型并行和數(shù)據(jù)并行框架的結(jié)構(gòu)如下圖所示:

圖3:CNN GPU框架的模型并行和數(shù)據(jù)并行架構(gòu)

CNN模型并行和數(shù)據(jù)并行框架對(duì)GPU卡分組,組內(nèi)兩個(gè)GPU卡做模型并行,組間做數(shù)據(jù)并行。如上圖所示,4個(gè)GPU卡分成Worker Group 0和1。組內(nèi)兩卡各持有CNN模型的一部分,稱為partition,協(xié)作完成單個(gè)模型的訓(xùn)練。模型并行中,卡間數(shù)據(jù)傳輸通過引入Transfer Layer透明的完成。組間數(shù)據(jù)并行按同步隨機(jī)梯度下降進(jìn)行訓(xùn)練,并采用精巧的拓?fù)渫瓿蓞?shù)交換,但注意只有各組內(nèi)屬于同一個(gè)partition的數(shù)據(jù)各自交換,即圖中GPU0和GPU2、GPU1和GPU3分別進(jìn)行參數(shù)交換。引入數(shù)據(jù)并行和模型并行后,從磁盤讀取訓(xùn)練數(shù)據(jù),訓(xùn)練數(shù)據(jù)預(yù)處理,CNN訓(xùn)練分別占用磁盤、CPU、GPU資源,且均耗時(shí)較大。因此,我們引入流水線,使得磁盤、CPU、GPU資源可以同時(shí)得到利用,提升整體性能。

CNN數(shù)據(jù)并行和模型并行框架已在圖像識(shí)別應(yīng)用中初見成效。針對(duì)Hinton在2012年獲得ImageNet競(jìng)賽冠軍用的網(wǎng)絡(luò) [2],我們?nèi)〉昧藘煽P筒⑿?.71倍加速比,4 GPU卡數(shù)據(jù)并行加模型并行時(shí)比單卡2.52倍的加速比。通過CNN并行框架的模型并行,單個(gè)GPU上CNN網(wǎng)絡(luò)占用的GPU顯存從3.99 GB減少到2.15 GB,使得可以訓(xùn)練更大規(guī)模的圖像分類模型。通過模型并行獲得ImageNet 2012數(shù)據(jù)集87%的top5準(zhǔn)確率。CNN并行訓(xùn)練框架在微信圖像業(yè)務(wù)中有眾多潛在應(yīng)用都已嘗試接入本框架。同時(shí)在廣點(diǎn)通廣告推薦也開始應(yīng)用探索。

圖4:CNN GPU框架對(duì)Hinton的網(wǎng)絡(luò)[2]在ImageNet 2012的并行加速性能

DNN CPU集群框架實(shí)現(xiàn)基于CPU集群的數(shù)據(jù)并行和模型并行,其總體架構(gòu)如下圖所示:

圖5:DNN CPU集群框架總體架構(gòu)

DNN CPU集群框架提供Vertex+Message的API,實(shí)現(xiàn)BulkSynchronous Parallel(BSP)模式。每次DNN訓(xùn)練作業(yè)作為一個(gè)DNN Job,其執(zhí)行包含多個(gè)迭代,用戶通過Client工具提交DNN Job。DNN Master負(fù)責(zé)任務(wù)調(diào)度,將訓(xùn)練數(shù)據(jù)分發(fā)到不同的Worker Group進(jìn)行訓(xùn)練,并完成任務(wù)的failover等,以支持?jǐn)?shù)據(jù)并行。Master將DNN Job的狀態(tài)變化通過LogStore系統(tǒng)同步到數(shù)據(jù)庫,便于從WebUI展示全部作業(yè)狀態(tài)。此外,Master負(fù)責(zé)Counter的收集,并在WebUI上可視化展示。每個(gè)Worker Group中有1個(gè)Coordinator協(xié)調(diào)全部Worker完成模型并行,而Worker完成具體訓(xùn)練任務(wù)。模型通過參數(shù)服務(wù)器Parameter Server劃分,并可靠存儲(chǔ)在分布式文件系統(tǒng)中。在微信語音業(yè)務(wù)中,證明DNN CPU集群可取得與GPU相當(dāng)?shù)挠?xùn)練結(jié)果,而且CPU集群訓(xùn)練和GPU訓(xùn)練框架有互補(bǔ)性。

經(jīng)過一年多的沉淀,深度學(xué)習(xí)在騰訊產(chǎn)生了落地的成果。騰訊深度學(xué)習(xí)平臺(tái)Mariana逐步成型,形成了3個(gè)框架,包括:DNN GPU數(shù)據(jù)并行框架,CNN GPU模型并行和數(shù)據(jù)并行框架,以及DNN CPU集群模型并行和數(shù)據(jù)并行框架。Mariana通過數(shù)據(jù)并行和模型并行,解決了深度學(xué)習(xí)耗時(shí)冗長的問題,成為深度學(xué)習(xí)研究的有效助力。Mariana通過模型并行,有效支持了大模型。Mariana完成眾多工作增強(qiáng)易用性,簡(jiǎn)化深度學(xué)習(xí)實(shí)驗(yàn),大幅節(jié)約算法開發(fā)時(shí)間。Mariana的DNN GPU數(shù)據(jù)并行框架,針對(duì)微信語音識(shí)別應(yīng)用,在單機(jī)6 GPU卡配置下獲得相比單卡4.6倍的加速,可在數(shù)日內(nèi)完成數(shù)十億高維度訓(xùn)練樣本的DNN模型訓(xùn)練,同時(shí)模型字錯(cuò)率降低10%以上。Mariana的CNN模型并行和數(shù)據(jù)并行框架,針對(duì)ImageNet圖像分類問題,在單機(jī)4 GPU卡配置下,獲得了相比單卡2.52倍的加速,并支持更大模型,在ImageNet 2012數(shù)據(jù)集中獲得了87%的top5準(zhǔn)確率。目前,騰訊深度學(xué)習(xí)平臺(tái)Mariana已支持了微信語音識(shí)別的語音輸入法、語音開放平臺(tái)、長按語音消息轉(zhuǎn)文本等產(chǎn)品,在微信圖像識(shí)別中開始應(yīng)用。此外,在廣告推薦及個(gè)性化推薦等領(lǐng)域,也正在積極探索和實(shí)驗(yàn)中。

參考文獻(xiàn):

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.

via:騰訊大講堂

End.

總結(jié)

以上是生活随笔為你收集整理的深度学习系列:深度学习在腾讯的平台化和应用实践的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。