摘要:本文內(nèi)容節(jié)選自由主辦的第七屆,北京一流科技有限公司首席科學(xué)家袁進輝老師木分享的讓簡單且強大深度學(xué)習(xí)引擎背后的技術(shù)實踐實錄。年創(chuàng)立北京一流科技有限公司,致力于打造分布式深度學(xué)習(xí)平臺的事實工業(yè)標(biāo)準(zhǔn)。
本文內(nèi)容節(jié)選自由msup主辦的第七屆TOP100summit,北京一流科技有限公司首席科學(xué)家袁進輝(老師木)分享的《讓AI簡單且強大:深度學(xué)習(xí)引擎OneFlow背后的技術(shù)實踐》實錄。
北京一流科技有限公司將自動編排并行模式、靜態(tài)調(diào)度、流式執(zhí)行等創(chuàng)新性技術(shù)相融合,構(gòu)建成一套自動支持數(shù)據(jù)并行、模型并行及流水并行等多種模式的分布式深度學(xué)習(xí)框架,降低了分布式訓(xùn)練門檻、極大的提高了硬件使用率。該框架已經(jīng)成功幫助眾多頭部互聯(lián)網(wǎng)公司及人工智能企業(yè)提升了大模型訓(xùn)練效率,節(jié)約了硬件運營和使用成本,達到了降本增效的效果。一流科技是一家為企業(yè)客戶提供面向大規(guī)模大計算大模型等深度學(xué)習(xí)框架的人工智能領(lǐng)域科技創(chuàng)新公司。
分享者袁進輝是北京一流科技有限公司創(chuàng)始人,任首席科學(xué)家。2008年7月在清華大學(xué)計算機系獲得工學(xué)博士學(xué)位,獲得清華大學(xué)優(yōu)秀博士學(xué)位論文獎。2013年加入微軟亞洲研究院從事大規(guī)模機器學(xué)習(xí)平臺的研發(fā)工作。2014年發(fā)明了當(dāng)時世界上最快的主題模型訓(xùn)練算法和系統(tǒng)LightLDA,只用數(shù)十臺服務(wù)器即可完成以前數(shù)千臺服務(wù)器才能實現(xiàn)的大規(guī)模主題模型,該技術(shù)成功應(yīng)用于微軟在線廣告系統(tǒng),被當(dāng)時主管研究的全球副總裁周以真稱為“年度最好成果”。2015年至2016年底,專注于搭建基于異構(gòu)集群的深度學(xué)習(xí)平臺,項目榮獲微軟亞洲研究院院長特別獎 (top 1%)。2017年創(chuàng)立北京一流科技有限公司,致力于打造分布式深度學(xué)習(xí)平臺的事實工業(yè)標(biāo)準(zhǔn)。
編者按:2018年11月30日-12月3日,第七屆全球軟件案例研究峰會在北京國家會議中心盛大開幕,現(xiàn)場解讀2018年「壹佰案例榜單」。本文為北京一流科技有限公司首席科學(xué)家袁進輝(老師木)分享的《讓AI簡單且強大:深度學(xué)習(xí)引擎OneFlow背后的技術(shù)實踐》案例實錄。
提綱:
研發(fā)OneFlow的動機
OneFlow技術(shù)突破
總結(jié)
01研發(fā)OneFlow的動機
軟件OneFlow簡介
業(yè)界有人工智能浪潮的三駕馬車之說,即數(shù)據(jù)、算法、算力。具體到算力,業(yè)界更多關(guān)注的是硬件,譬如GPU,甚至是TPU之類的AI專用芯片。但是,人們發(fā)現(xiàn),有了更快的加速器之后,制約大規(guī)模分布式訓(xùn)練算力的瓶頸是軟件。怎么幫助數(shù)據(jù)科學(xué)家和研究員們更輕松的把各種算法在底層硬件上跑起來,而且充分釋放底層硬件的潛力,正是軟件框架需要解決的問題。目前,已有的開源深度學(xué)習(xí)框架對數(shù)據(jù)并行場景解決的比較好,但遇到模型越來越大的場景就沒有好辦法。用戶或者束手無策,或者只能付出極大成本基于開源框架做深度定制開發(fā)來滿足需求。OneFlow團隊的目標(biāo)是研發(fā)一個通用框架自動解決這些問題,讓那些沒有框架研發(fā)能力的團隊也能夠享受分布式GPU集群帶來的效率,這是我們歷時兩年多研發(fā)一套全新深度學(xué)習(xí)框架的初衷。
背后的動機:計算力是深度學(xué)習(xí)發(fā)展的最重要的推動力。
案例:2015 Microsoft Resnet
2016 Baidu Deep Speech 2 2017 Google NMT
2015年微軟研究院發(fā)明的ResNet需要的計算量是7乘以10的18次方次計算(ExaFlops)。當(dāng)然,可以推算一下用一顆24核的CPU來計算,大概需要多久能完成這些計算,也可以推算用幾千個核心的GPU來算需要多長時間。可能是需要幾個月或幾個星期的時間。除了計算量在增長,模型大小也在增長,ResNet 這種CNN模型通常是幾千萬參數(shù),需要幾百兆字節(jié)的存儲空間,百度研發(fā)的Deep Speech模型到了三億參數(shù)的規(guī)模,然后Google的機器翻譯模型NMT,已經(jīng)到了幾十億參數(shù),整個模型在一塊GPU上已經(jīng)放不下了。這種情況,數(shù)據(jù)并行無濟于事,需要模型并行或流水并行來解決大模型的分布式訓(xùn)練問題。很不幸,目前還沒有開源框架支持這些需求,一些大公司通過內(nèi)部定制的系統(tǒng)來支持這種需求。
今年上半年Facebook發(fā)布了一個研究結(jié)果,收集35億張弱標(biāo)注圖片,使用幾百塊GPU,經(jīng)過接近一個月的時間,訓(xùn)練了一個用于圖片分類的卷積神經(jīng)網(wǎng)絡(luò)模型,它能做到什么效果呢?能提高6個百分點的準(zhǔn)確率。這是非常了不得的成績,算法基本上沒什么變化,僅僅是通過采用更多的數(shù)據(jù)和計算就能把top-1的準(zhǔn)確率提高了這么多。要知道,對于一個商業(yè)價值很高的場景,提高0.5個百分點可能是一個團隊一年的KPI。
九月份Google發(fā)表了BigGAN模型,研究人員通過提高圖片的分辨率來訓(xùn)練更大的GAN模型,CNN中間的activation和反向gradient會非常多,當(dāng)然計算量也會大的非常多,基于TPU集群來完成訓(xùn)練。這個手段同樣獲得了比以前的GAN模型好的多的效果。
上個月,Google又發(fā)表了BERT模型,相當(dāng)于一種大的多的transformer模型,在16個TPU上訓(xùn)練了4天,然后基于這個語言模型作為主干網(wǎng)絡(luò)去解決各種常見的自然語言處理任務(wù),發(fā)現(xiàn)在各任務(wù)上全面超越了以前的方法。很不幸,目前還沒有出現(xiàn)在GPU集群上從零開始訓(xùn)練BERT-Large模型的辦法,如果想在自己的業(yè)務(wù)里應(yīng)用BERT,只能去下載Google預(yù)訓(xùn)練好的模型,然后做少量微調(diào)來使用。這倒不是資源不足的問題,即使是已經(jīng)搭建了大規(guī)模的GPU集群的客戶也無能為力,有錢也解決不了。
深度學(xué)習(xí)經(jīng)過這幾年的爆發(fā)式發(fā)展,特別引人注目的算法層面的創(chuàng)新越來越少了,今年比較吸引眼球的進步都來自于計算力,也就是人們常說的“大力出奇跡”的方式。怎么才能讓更多的企業(yè)用戶能享受到算力提升的紅利,幫助算法科學(xué)家完成更多的KPI, 這是OneFlow非常關(guān)心的問題。常言道,工欲善其事必先利其器,框架在深度學(xué)習(xí)研究和落地的過程中就扮演了“工具”的角色,好的工具能大大加速人工智能研發(fā)的效率,甚至可能成為行業(yè)競爭的決勝法寶。從BigGAN和BERT等例子也可以看出來,當(dāng)一家公司掌握了其他人不掌握的工具時,就可以引領(lǐng)算法研究的潮流,反過來,當(dāng)一家公司的基礎(chǔ)設(shè)施跟不上的時候,也就沒辦法做前沿探索,即使是做研究也只能跟在Google后面,因此稱深度學(xué)習(xí)框架是人工智能制高點的戰(zhàn)略武器一點不為過。
基于純硬件的解決思路
案例:Nvidia DGX-2
IBM Power9 Server
英偉達通過銷售GPU成為這一波AI計算力紅利的最大受益者,英偉達除了把單個設(shè)備做的越來越快,也做了服務(wù)器架構(gòu)方面的諸多創(chuàng)新,出品了一系列超級計算盒子,每個盒子里面可以集成8個或者是16個計算力非常強的GPU(譬如DGX-1是P100,今年推出的DGX-2是V100),更特別的是,這些GPU之間使用了非常高速的互聯(lián),能夠?qū)崿F(xiàn)GPU之間點對點150GB以上的傳輸帶寬,比常見的PCIe帶寬要高一個數(shù)量級。這種設(shè)計使得DGX服務(wù)器能夠使得16塊GPU一起工作時幾乎像一個單體芯片那樣輸出超強算力。
當(dāng)然還有比DGX更特別的服務(wù)器,比如說IBM出的Power9 Server,它的獨特之處在于他的CPU使用了不同于Intel x86 CPU的架構(gòu),而且支持CPU和GPU之間NV Link互連,意味著CPU和GPU之間的數(shù)據(jù)傳輸也能夠做到150GB以上的帶寬。目前世界排名第一的超級計算機Summit就使用了類似Power9 Server的架構(gòu)。
基于這么強的硬件就能解決計算力的問題嗎?
IBM和Nvidia一起搭建了世界上最強的超級計算機Summit,一共用了2萬多塊V100 GPU,還使用了最先進的互聯(lián)技術(shù)(NVLink, Infiniband),要說最強的硬件,除了TPU Cluster,應(yīng)該沒有更好的了,這是不是就夠了呢?IBM首席科學(xué)家在今年的ASPLOS(計算機體系結(jié)構(gòu)頂級會議)上做了一個特邀報告,主題是“只有很強的硬件,沒有很好的軟件還是不能解決擴展問題”。現(xiàn)在國內(nèi)擁有幾千塊GPU乃至上萬塊GPU的頭部公司不在少數(shù),但基于開源框架能訓(xùn)練BERT-Large模型嗎?不行,這也印證了軟件框架瓶頸的問題:購買了很多的硬件,但用不起來,或者說不能很好的用起來。
理念:縱向擴展與橫向擴展
縱向擴展
縱向擴展是通過把單個設(shè)備或者是單個機器做的越來越強,或通過編譯器優(yōu)化的手段讓作業(yè)在一個設(shè)備上或者是一個機器內(nèi)部把硬件性能發(fā)揮到極致來滿足現(xiàn)在日益增長的計算需求。硬件從多核架構(gòu)CPU發(fā)展到眾核架構(gòu)GPU,GPU從P100到V100, 為了追求更高的效率,甚至研發(fā)FPGA或ASIC芯片來獲得更高算力。當(dāng)前最知名的AI芯片是Google的TPU,寒武紀(jì),華為,阿里,百度等本土公司也在研發(fā)AI芯片。AI芯片的主要問題是有物理限制(譬如制程,功耗,同步時鐘等等約束),人們不能生產(chǎn)出計算力任意大的芯片。也有人把這個現(xiàn)象稱為硅基擴展瓶頸(Silicon Scaling)。除了提高單個芯片的吞吐率,英偉達的DGX也是縱向擴展的例子,DGX通過在一個機器內(nèi)部高速互聯(lián)手段實現(xiàn)芯片之間點對點極高的傳輸帶寬,從而使得多芯片間協(xié)作起來更加高效。
橫向擴展
如果縱向擴展仍不能滿足需求,人們繼續(xù)把多臺服務(wù)器通過高速以太網(wǎng)或Infiniband連接起來組成集群來實現(xiàn)更高算力。如果能投入多少硬件資源,就得到多少計算力,那計算力瓶頸就迎刃而解了。理想很豐滿,現(xiàn)實很骨感。一方面,芯片間互聯(lián)帶寬要比片內(nèi)數(shù)據(jù)訪問帶寬低一到兩個數(shù)量級,在芯片間搬運數(shù)據(jù)成為瓶頸,另一方面,編寫在多芯片上高效運行的軟件非常挑戰(zhàn),以深度學(xué)習(xí)為例,神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)不同,效率最高的并行方式(邏輯任務(wù)向物理計算單元的映射)也不同。在集群上實現(xiàn)線性加速比縱向擴展更有想象空間,但實現(xiàn)難度更大。一個理想的橫向擴展方案,不管底層實際使用了多少松散耦合在一起的芯片,在上層用戶眼里就像在一個專門為當(dāng)前任務(wù)打造的巨大單體芯片一樣,編程簡單而且任務(wù)運行時能把底層每一個獨立的芯片都利用充分。要實現(xiàn)這個目的,必須依靠軟件框架。
邏輯任務(wù)到物理拓撲之間的最優(yōu)映射復(fù)雜多變
給定一個特定的神經(jīng)網(wǎng)絡(luò)模型和一批計算資源,從任務(wù)到設(shè)備之間的映射有多種方式,但不同的映射方案運行效率不同。哪種方案最優(yōu)既取決于作業(yè)本身的特性,也取決于底層硬件的拓撲。神經(jīng)網(wǎng)絡(luò)由很多局部計算(通常稱為kernel)搭建組成,每一個局部計算是采用數(shù)據(jù)并行,還是模型并行取決于這個局部任務(wù)的計算傳輸比。現(xiàn)在業(yè)界討論比較多的卷積運算參數(shù)量很小,但中間結(jié)果量大,所以最劃算的方法是對數(shù)據(jù)進行切分,不同的設(shè)備處理不同的數(shù)據(jù),在設(shè)備之間偶爾進行參數(shù)同步,這種數(shù)據(jù)并行方法基本上是一個已經(jīng)被解決的問題。還有一些運算,中間計算結(jié)果相對于參數(shù)量更少,就適合模型并行。還有一些網(wǎng)絡(luò)參數(shù)量很大或中間計算結(jié)果都很大,可能采用流水并行(也就是接力的形式)是最優(yōu)的。模型并行和流水并行中通信的數(shù)據(jù)路由要比數(shù)據(jù)并行復(fù)雜,同時,怎么重疊計算和傳輸從而提高設(shè)備利用率也非常挑戰(zhàn),現(xiàn)有開源框架對這些更復(fù)雜的并行模式的支持還比較初級。
通信密集,延遲敏感
左圖展示了一個常見的大數(shù)據(jù)處理引擎的架構(gòu),集群中的計算資源一般分成用于中心調(diào)度的Master節(jié)點和用于處理數(shù)據(jù)的Worker節(jié)點。Master節(jié)點以有向無環(huán)圖(DAG)的方式管理整個作業(yè)的進度,同時監(jiān)控所有Worker的資源使用狀況,在合適的時機把一個子任務(wù)(Task)分配給某個Worker去做,某個Worker在完成一個子任務(wù)之后,會向Master節(jié)點匯報,等待Master分配新的任務(wù)。在傳統(tǒng)大數(shù)據(jù)處理中,Worker執(zhí)行一個子任務(wù)的時間量級一般在幾十秒鐘或數(shù)分鐘。其它開銷,諸如發(fā)生在Master節(jié)點那里的排隊開銷,Master和Worker之間對話的時間開銷,以及數(shù)據(jù)傳輸開銷都是數(shù)十毫秒,相對于Worker的工作時間可以被忽略。但是深度學(xué)習(xí)訓(xùn)練的負載與此不同,深度學(xué)習(xí)訓(xùn)練更接近流式計算,一方面是因為隨機梯度下降算法采用的小批次訓(xùn)練,計算粒度小,另一方面是因為底層硬件吞吐率可能是CPU的數(shù)十倍,計算太快。直接后果就是,數(shù)據(jù)處理時間越來越短,每個子任務(wù)可能幾百毫秒就完成了,在這種情況下,之前可忽略的那種幾十乃至幾百毫秒的開銷就非常顯著了,如果不能通過技術(shù)手段把這些開銷消除或掩蓋掉,整個系統(tǒng)的性能就非常低。
02OneFlow技術(shù)突破
基于靜態(tài)調(diào)度的流式計算引擎
為了對任意作業(yè)和資源都達到類似巨大單體專用芯片的效果,OneFlow首創(chuàng)了靜態(tài)調(diào)度(左圖)和流式執(zhí)行(右圖)架構(gòu)的深度學(xué)習(xí)框架。靜態(tài)調(diào)度是什么思路呢?它來自于計算機體系結(jié)構(gòu)。我們熟知的CPU芯片中真正做算術(shù)運算的器件只占很小比例的面積,大部分面積在做亂序執(zhí)行,流水線和緩沖區(qū)的管理。學(xué)界和工業(yè)界很久以前就開始探索怎么讓芯片的有效面積盡可能多的做算術(shù)運算,靜態(tài)調(diào)度的思路應(yīng)運而生,基本上是把流水管理,指令排布之類的工作從硬件轉(zhuǎn)移至編譯器。這樣硬件復(fù)雜度就可以大幅降低,當(dāng)然編譯器復(fù)雜度肯定會提高很多。有一個叫VLIW(超長指令集架構(gòu))的指令集就采用了這種思路。OneFlow的靜態(tài)調(diào)度體現(xiàn)在兩方面,首先,編譯器自動解決從邏輯任務(wù)到硬件資源的映射,包括數(shù)據(jù)并行,模型并行,流水并行的設(shè)備分配以及數(shù)據(jù)路由方案,大大降低了分布式編程的復(fù)雜度,用戶只需要關(guān)心任務(wù)的邏輯結(jié)構(gòu)以及本次任務(wù)可使用的硬件資源,而不用去編程實現(xiàn)數(shù)據(jù)在硬件資源中的流動機制;其次,靜態(tài)調(diào)度把所有能在正式運行之前得到的調(diào)度策略,資源管理策略等問題都在編譯階段解決,運行時就不需要在線求解最優(yōu)的調(diào)度方案,從而大大降低運行時開銷。
經(jīng)過靜態(tài)編譯,每個設(shè)備負責(zé)運行的子任務(wù)是預(yù)先可知的,每個子任務(wù)的上下游依賴也預(yù)先可知,在運行任務(wù)時,就不再需要中心調(diào)度器,只需要支持上下游任務(wù)之間局部的握手信號即可,即生產(chǎn)者向消費者發(fā)送的請求以及消費者向生產(chǎn)者發(fā)送的確認,整個系統(tǒng)以全鏈路異步的方式運行。這個思路也來自于芯片設(shè)計領(lǐng)域一種叫異步電路的技術(shù)。OneFlow另一個區(qū)別于其它深度學(xué)習(xí)框架的特色是把數(shù)據(jù)搬運看成一等公民,在靜態(tài)分析階段就把磁盤IO,主存和設(shè)備之間數(shù)據(jù)搬運,節(jié)點間數(shù)據(jù)搬運看作和計算同等重要的任務(wù),在代價分析和調(diào)度策略里作為一等公民進行顯式建模,從而得到重疊傳輸和計算的最優(yōu)方案。與此相對,已有開源框架把數(shù)據(jù)搬運當(dāng)成二等公民處理,編譯期的注意力主要集中在計算的優(yōu)化上。熟悉軟件定義網(wǎng)絡(luò)(SDN)技術(shù)的朋友可以發(fā)現(xiàn),OneFlow編譯器相當(dāng)于網(wǎng)絡(luò)的控制平面,用于獲取數(shù)據(jù)計算和轉(zhuǎn)發(fā)策略,運行時相當(dāng)于網(wǎng)絡(luò)的數(shù)據(jù)平面,執(zhí)行體依照控制層面的策略去轉(zhuǎn)發(fā)和處理數(shù)據(jù)。
產(chǎn)品對比
OneFlow歷經(jīng)兩年的研發(fā),2018年10月份才推出1.0版本,還是一個很年輕的系統(tǒng),目前正在客戶的生產(chǎn)環(huán)境里面試用和迭代。實事求是的講,我們在模型的豐富程度,易用性,多語言支持等方面還有比較大的提升空間,目前是落后于其它框架的。但是,OneFlow在企業(yè)級大規(guī)模應(yīng)用上是稱得上遙遙領(lǐng)先的:(1)分布式最容易使用,用戶在寫程序的時候是感受不到多機和單機的區(qū)別的;(2)OneFlow支持數(shù)據(jù)并行,模型并行和流水并行,而其它框架只支持最容易支持的數(shù)據(jù)并行;(3)OneFlow在分布式訓(xùn)練時的擴展能力,加速比是最優(yōu)秀的。這些特點也正是OneFlow作為企業(yè)級深度學(xué)習(xí)框架,比已有開源深度學(xué)習(xí)框架優(yōu)秀之處。
人有我優(yōu),用數(shù)據(jù)并行加速CNN訓(xùn)練
卷積神經(jīng)網(wǎng)絡(luò)(CNN)作為最容易解決的一個問題,是大家最喜歡拿來做基準(zhǔn)測試的應(yīng)用。在過去一年,很多公司用數(shù)據(jù)并行方法,已經(jīng)可以用數(shù)千塊GPU做到幾分鐘就在ImageNet數(shù)據(jù)集上訓(xùn)練好ResNet模型。如果發(fā)現(xiàn)TensorFlow的參數(shù)服務(wù)器不給力,上層使用Horovod,底層使用Nvidia NCCL已經(jīng)可以做到很漂亮的結(jié)果。需要注意的是,以前社區(qū)有一個認識是TensorFlow并行做的不好,速度比其它框架慢,實際上今天已經(jīng)不是這樣了,TensorFlow團隊的benchmark項目(https://github.com/tensorflow...)針對CNN做了很多優(yōu)化,做數(shù)據(jù)并行已經(jīng)是開源框架里最優(yōu)秀之一了。我們使用完全一樣的算法和硬件(V100 GPU, 100Gbps RDMA網(wǎng)絡(luò)),和TensorFlow benchmark對比會發(fā)現(xiàn),無論是基于單機多卡,還是多機多卡都是比TensorFlow快。上圖左邊是OneFlow,右邊是TensorFlow,除了AlexNet遇到硬件瓶頸,OneFlow都能做到線性加速,TensorFlow在單機多卡和多機多卡上與OneFlow還是有一定的差距。
阿姆達爾定律
上面的評測結(jié)果中,在32卡時,OneFlow仍是線性加速,當(dāng)卡數(shù)增加到一定程度,譬如幾百或者是上千時遲早會遇到天花板。并行效率不同的系統(tǒng),只是遇到天花板時間早晚的問題,這是阿姆達爾定律所揭示的規(guī)律。比如說上圖綠色曲線表示一個并行度(parallel portion)為95%的任務(wù),什么時候遇到天花板呢?可以計算出來,加速到20倍的時候就到了天花板了,后面投入再多的資源進去它也不可能再加速了。假設(shè)系統(tǒng)的并行度不隨卡數(shù)變化,在卡數(shù)少時,大部分系統(tǒng)還是比較接近線性的,各個系統(tǒng)之間差別很小,但當(dāng)卡數(shù)增多時,系統(tǒng)遲早會遇到天花板,即使增加再多的GPU也不會進一步提升吞吐率。這表明,在卡數(shù)比較少時實現(xiàn)線性加速比不一定能在卡很多時還能實現(xiàn)線性加速,但在卡數(shù)較少時就實現(xiàn)不了線性加速,在卡數(shù)更多時肯定距離線性加速更遠。由此可見,把系統(tǒng)的運行時開銷優(yōu)化到極致,對于大規(guī)模集群訓(xùn)練效率是至關(guān)重要的。
人無我有,分布式訓(xùn)練BERT-Large模型
BERT-Large是谷歌最近推出的一個學(xué)習(xí)語言模型的大型神經(jīng)網(wǎng)絡(luò),基本上在常見的自然語言處理任務(wù)上都顯著超越了以前的方法。BERT-large有24層,整個模型大概1.3G,每一層中間結(jié)果都蠻大的,如果不做內(nèi)存優(yōu)化,對于32GB顯存的V100,一次也就處理八九個句子。雖然BERT是個大殺器,但客戶想基于自己語料重新訓(xùn)練一個BERT-Large模型,卻不可能。谷歌在TPU Cluster上用16個TPU訓(xùn)練BERT-Large需要4天時間。沒有TPU的用戶,只能使用GPU,最主要的是,現(xiàn)在還沒有開源的分布式解決方案,谷歌放出來TensorFlow代碼只支持單GPU卡,如果用戶做一些定制去支持分布式,很遺憾,加速比也很不理想。如左上角圖所示,即使是在有NVLink互聯(lián)的單機八卡服務(wù)器上,TensorFlow也只能實現(xiàn)四五倍的加速,按這種加速比去推算一下,即使是使用幾十塊V100也是需要一個月以上的時間。在Google BERT論文發(fā)表后不久,我們團隊就基于OneFlow實現(xiàn)了和TensorFlow準(zhǔn)確率一樣的BERT,在單機八卡服務(wù)器上數(shù)據(jù)并行接近線性加速,在8機64卡的配置下,也能跑到50倍以上的加速比。這還不是線性加速比,我們正在做一些優(yōu)化工作,不久以后對于BERT-Large在多機多卡也能實現(xiàn)線性加速比。OneFlow現(xiàn)在的實現(xiàn)在單精度條件下只需要8天就能訓(xùn)練出來BERT-Large模型,如果加上半精度支持,時間會再縮短一半,只需要三四天。需要指出的是,Google BERT的詞典只有4萬個單詞,當(dāng)詞表達到幾十萬或上百萬級別時,embedding層就無法用數(shù)據(jù)并行計算了,必須做模型并行,而后續(xù)的層次可以繼續(xù)使用數(shù)據(jù)并行,也就是混合并行,OneFlow可以很方便的支持起來。最近,我們已經(jīng)開始為幾家頭部互聯(lián)網(wǎng)公司提供BERT訓(xùn)練服務(wù),在客戶自己的數(shù)據(jù)集上訓(xùn)練BERT-Large模型。
以訓(xùn)練安防領(lǐng)域的大規(guī)模人臉識別模型為例,當(dāng)人臉類別達到百萬級時,最后的全連接層必須使用模型并行,要解決這個問題,用戶就不得不深度hack 已有開源框架,此時會面臨易用性和高效性的難題。詞嵌入和廣告/推薦系統(tǒng)領(lǐng)域也存在許多大模型的問題,模型容量可達幾十GB甚至幾百GB乃至TB,也只有少數(shù)頭部企業(yè)不計研發(fā)成本才能做一些定制開發(fā)來支持這些需求。OneFlow 可以很方便高效的支持這些需求,大大節(jié)省用戶成本,幫助用戶完成以前搞不定的事情。
05總結(jié)
一路走來,我們深切體會了do right things, do things right 如此重要。在諸多方向里,我們經(jīng)過反復(fù)論證,認為這個領(lǐng)域最關(guān)鍵也最難的問題是橫向擴展,從公司成立之初,就立下解決這個業(yè)界公認難題的目標(biāo)。不同于其它框架的技術(shù)路線,OneFlow以軟硬協(xié)同設(shè)計為指導(dǎo)思想,從芯片設(shè)計領(lǐng)域借鑒了大量有益的思路,在純軟件層面解決了橫向擴展難題。我們深信現(xiàn)在OneFlow的技術(shù)路線是解決深度學(xué)習(xí)橫向擴展難題的必由之路,在我們走通這條路徑之后,很高興看到技術(shù)社區(qū)其它團隊已經(jīng)開始沿著這個方向進發(fā)。創(chuàng)新和創(chuàng)造是OneFlow決勝的法寶,僅僅follow已有框架走過的路是不可能實現(xiàn)超越的,唯有創(chuàng)新才有機會。最后,我們深感真正有價值的事都是長跑,除了技術(shù)因素,情懷和堅持也必不可少,seeing is believing, believing is seeing。
以上內(nèi)容來自袁進輝(老師木)老師的分享。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/20000.html
摘要:深度學(xué)習(xí)在過去的幾年里取得了許多驚人的成果,均與息息相關(guān)。機器學(xué)習(xí)進階筆記之一安裝與入門是基于進行研發(fā)的第二代人工智能學(xué)習(xí)系統(tǒng),被廣泛用于語音識別或圖像識別等多項機器深度學(xué)習(xí)領(lǐng)域。零基礎(chǔ)入門深度學(xué)習(xí)長短時記憶網(wǎng)絡(luò)。 多圖|入門必看:萬字長文帶你輕松了解LSTM全貌 作者 | Edwin Chen編譯 | AI100第一次接觸長短期記憶神經(jīng)網(wǎng)絡(luò)(LSTM)時,我驚呆了。原來,LSTM是神...
摘要:本文著重以人臉識別為例介紹深度學(xué)習(xí)技術(shù)在其中的應(yīng)用,以及優(yōu)圖團隊經(jīng)過近五年的積累對人臉識別技術(shù)乃至整個人工智能領(lǐng)域的一些認識和分享。從年左右,受深度學(xué)習(xí)在整個機器視覺領(lǐng)域迅猛發(fā)展的影響,人臉識別的深時代正式拉開序幕。 騰訊優(yōu)圖隸屬于騰訊社交網(wǎng)絡(luò)事業(yè)群(SNG),團隊整體立足于騰訊社交網(wǎng)絡(luò)大平臺,專注于圖像處理、模式識別、機器學(xué)習(xí)、數(shù)據(jù)挖掘、深度學(xué)習(xí)、音頻語音分析等領(lǐng)域開展技術(shù)研發(fā)和業(yè)務(wù)落地。...
閱讀 2846·2021-09-10 10:51
閱讀 2214·2021-09-02 15:21
閱讀 3205·2019-08-30 15:44
閱讀 868·2019-08-29 18:34
閱讀 1651·2019-08-29 13:15
閱讀 3321·2019-08-26 11:37
閱讀 2696·2019-08-26 10:46
閱讀 1106·2019-08-26 10:26