chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

PA利用Tesla V100 GPU Tensor核心的強(qiáng)大計算力縮短模型訓(xùn)練時間、提升模型迭代速度

NVIDIA英偉達(dá)企業(yè)解決方案 ? 來源:lq ? 2019-05-16 15:34 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本案例中,阿里巴巴PAI團(tuán)隊為了使PAI用戶無需經(jīng)過繁瑣的模型改寫即可實現(xiàn)混合精度訓(xùn)練、充分利用Tesla V100 GPU Tensor核心的強(qiáng)大計算力縮短模型訓(xùn)練時間、提升模型迭代速度,阿里巴巴團(tuán)隊在PAI平臺上開發(fā)了自動混合精度訓(xùn)練Feature,F(xiàn)eature已在PAI平臺上線開放對內(nèi)使用,顯著節(jié)省了用戶使用Tensor核心硬件加速單元的負(fù)擔(dān),并且以通用性的方式獲得了顯著的作業(yè)訓(xùn)練性能加速,比較充分地釋放出底層Tesla V100的計算潛力,且不影響模型的收斂性。

PAI(Platform Artificial Intelligence) 作為阿里巴巴集團(tuán)的機(jī)器學(xué)習(xí)平臺,一直致力于底層引擎技術(shù)、編譯優(yōu)化及在離線預(yù)測優(yōu)化的技術(shù)創(chuàng)新,同時通過PAI Studio、PAI DSW 、EAS、算法市場等相關(guān)生態(tài)產(chǎn)品,打造完整、豐富的生態(tài)體系,將AI技術(shù)更好的賦能于集團(tuán)內(nèi)外各類用戶。

PAI平臺管控了阿里巴巴集團(tuán)內(nèi)外大量的CPU、GPU、RDMA網(wǎng)卡等硬件資源,在確保單個作業(yè)執(zhí)行性能的同時,如何確保這些硬件資源的整體使用效率,是平臺側(cè)重點(diǎn)關(guān)注的問題。因為確保通過平臺層面的技術(shù)創(chuàng)新,讓阿里 “用更少的資源,跑得更快,支持更多業(yè)務(wù)同時迭代” 是中臺技術(shù)賦能業(yè)務(wù)創(chuàng)新的典型體現(xiàn)。

NVIDIA Tesla V100 GPU是NVIDIA于2017年推出的新一代GPU,采用Volta架構(gòu),引入了針對混合精度計算的Tensor核心,硬件層面顯著提升了峰值計算能力,相較于深度學(xué)習(xí)常用的浮點(diǎn)32位的計算,理論最高加速比可以達(dá)到8X。

NVIDIA Tesla V100 GPU推出之后,阿里巴巴集團(tuán)率先采用了Tesla V100。然而,一款新硬件的推出對上層軟件棧也提出了新的挑戰(zhàn)和要求,想要充分發(fā)揮新的底層硬件的性能效率,就需要軟件層進(jìn)行大量的適配工作(包括訓(xùn)練性能以及模型訓(xùn)練方式的適配,以確保獲得理想的time-to-accuracy的加速效果)。

為了使PAI用戶無需經(jīng)過繁瑣的模型改寫即可實現(xiàn)混合精度訓(xùn)練、充分利用NVIDIA V100 GPU Tensor核心的強(qiáng)大計算力縮短模型訓(xùn)練時間、提升模型迭代速度,阿里團(tuán)隊在PAI平臺上開發(fā)了自動混合精度訓(xùn)練Feature。

該Feature已在PAI平臺上線開放對內(nèi)使用,顯著節(jié)省了用戶使用Tensor核心硬件加速單元的負(fù)擔(dān),并且以通用性的方式獲得了顯著的作業(yè)訓(xùn)練性能加速,比較充分地釋放出底層新硬件的計算潛力,同時在近期向社區(qū)提交了相關(guān)的Pull Request因為有效發(fā)揮混合精度加速新硬件的效率確實存在不少陷阱和問題。

作為基礎(chǔ)設(shè)施平臺方,阿里巴巴PAI團(tuán)隊希望能夠從平臺層面將這些問題盡可能以透明、通用的方式進(jìn)行解決,從而解決上層用戶的使用負(fù)擔(dān),讓用戶透明地享受到Telsa V100新GPU的加速紅利。

已經(jīng)正常使用PAI自動混合精度訓(xùn)練的用戶,均能夠在無需改動一行代碼的前提下獲得顯著的訓(xùn)練加速,且不影響模型的收斂性。

1. 混合精度訓(xùn)練簡介

混合精度訓(xùn)練是指在訓(xùn)練過程中在不同的計算中使用不同的數(shù)值精度,從而充分挖掘GPU硬件上每一個晶體管的極致性能,目前在PAI上支持的混合精度訓(xùn)練主要是指FP16和FP32兩個數(shù)值精度。在標(biāo)準(zhǔn)Tensorflow訓(xùn)練任務(wù)中,variable及tensor的表示精度目前均默認(rèn)為FP32的,那么為什么要引入FP16的數(shù)值精度呢?

對于神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程而言,影響速度的兩個關(guān)鍵因素是,計算和訪存(這實際上也是由馮諾依曼體系結(jié)構(gòu)的本質(zhì)決定的):

從計算而言,NVIDIA在2017年推出了Volta架構(gòu),其中重要的模塊即為Tensor核心(如下圖),在Tensor核心的加速下,V100在混合精度下的吞吐量比在FP32下有8X的加速。Tensor核心主要對matrix-multiply-and-accumulate類計算進(jìn)行了加速?;赥ensor核心阿里巴巴PAI團(tuán)隊可以對 MatMul、 Convolution等計算原語進(jìn)行加速,而二者恰好是神經(jīng)網(wǎng)絡(luò)中計算量較大的op。

從訪存而言,若Tensor的數(shù)值精度由FP32變?yōu)镕P16,那么也可以得到理論上2X的訪存加速。 因此阿里巴巴PAI團(tuán)隊引入了混合精度對神經(jīng)網(wǎng)絡(luò)的訓(xùn)練進(jìn)行加速。

Volta V100 Tensor核心計算

2. Motivation

易用性是PAI平臺在追求高性能、高效率的同時同樣重視的另一個關(guān)鍵目標(biāo),因為其用戶,即AI Developer,希望專注于模型和算法本身,不希望被各種復(fù)雜的性能優(yōu)化問題分散精力,這要求其性能優(yōu)化能夠作為turn-key solution,盡可能對用戶透明,避免對用戶模型代碼的入侵?;旌暇扔?xùn)練加速優(yōu)化同樣如此。

目前一般的混合精度訓(xùn)練方法需要用戶自己將模型代碼修改為混合精度版本,因此會對模型代碼產(chǎn)生較深的入侵,特別是復(fù)雜模型,增加了用戶負(fù)擔(dān)。這個過程包含多個步驟:

1) 將計算部分轉(zhuǎn)換為FP16;

2) 將不支持FP16和不應(yīng)使用FP16計算的算子再逐一轉(zhuǎn)換回FP32;

3) Variable使用FP32存儲,這可以通過將Variable定義為FP32,在計算時再cast乘FP16,即tf.cast(tf.get_variable(..., dtype=tf.float32), tf.float16)來做到。

但是這種做法存在很多局限。首先,很多variable的定義被封裝在TF API中,如LSTMCell的weights和bias,模型代碼層面不可見,這種情況則需要通過custom_getter實現(xiàn);此外,有些情況下混合精度的訓(xùn)練過程還需要加入Loss Scaling策略才能確保收斂。整個過程易出錯,一旦出現(xiàn)收斂性問題就比較難調(diào)試,而且難以區(qū)分轉(zhuǎn)換出錯還是模型本身不適合混合精度訓(xùn)練。

此外,阿里團(tuán)隊還發(fā)現(xiàn)手工混合精度轉(zhuǎn)換存在一些性能問題,比如:實測大部分模型手工簡單轉(zhuǎn)換為混合精度模型之后的加速遠(yuǎn)低于預(yù)期,甚至出現(xiàn)大幅性能下降(如果是對混合精度訓(xùn)練細(xì)節(jié)非常了解的優(yōu)化專家來進(jìn)行手工精細(xì)調(diào)優(yōu),確實會取得更好的性能,但要求所有的算法工程師都具備相應(yīng)的能力其實是一個不合理的要求)。

分析下來,發(fā)現(xiàn)根源問題在于模型代碼層面的轉(zhuǎn)換是粗粒度的。部分算子其實天然不適合使用FP16,例如 Embedding Lookup,還有部分算子的FP16版本性能較差,例如 BiasAddGrad。模型代碼層面的粗粒度轉(zhuǎn)換很難對轉(zhuǎn)換過程進(jìn)行精細(xì)控制從而將這些FP16性能很差的算子排除在外。

當(dāng)然,模型代碼層面也可以做到細(xì)粒度的轉(zhuǎn)換,但是這樣做一方面增加模型代碼的入侵深度,使得人工工作量隨著模型復(fù)雜度急劇上升;另外這么做也需要一定的性能調(diào)優(yōu)經(jīng)驗,且避免不了多次迭代嘗試,這會給AI Developer帶來很大的額外負(fù)擔(dān);最后還有一個克服不了的問題,那就是在模型代碼層面無法觸及反向計算圖,所以像前面提到的BiasAddGrad算子在模型代碼層面就控制不了。

基于以上兩點(diǎn)原因,阿里團(tuán)隊在計算圖優(yōu)化環(huán)節(jié)實現(xiàn)了自動的、精細(xì)的混合精度轉(zhuǎn)換,對用戶完全透明,用戶跟正常訓(xùn)練FP32模型一樣,無需修改模型代碼;在計算圖優(yōu)化環(huán)節(jié),通過相應(yīng)的性能優(yōu)化避免混合精度轉(zhuǎn)換過程中伴生的性能不利因素,其實現(xiàn)的Loss Scaling策略對用戶更友好、適用面更廣泛。

3. 自動混合精度化的實現(xiàn)

阿里巴巴PAI團(tuán)隊的自動混合精度轉(zhuǎn)換在PAI平臺深度定制的Tensorflow框架PAI-TensorFlow的計算圖優(yōu)化引擎中實現(xiàn)。雖然相比于模型代碼層面的轉(zhuǎn)換,計算圖層面的轉(zhuǎn)換能夠做到自動化、對用戶透明,但是計算圖層面的轉(zhuǎn)換也有其缺點(diǎn)、有著相應(yīng)的制約和性能開銷,本節(jié)主要介紹阿里巴巴PAI團(tuán)隊在計算圖混合精度轉(zhuǎn)換的同時如何克服這些約束、降低性能開銷。

3.1 White-list

為了避免將不支持FP16、不適合使用FP16、FP16性能較差的算子轉(zhuǎn)換為FP16導(dǎo)致運(yùn)行錯誤或者性能大幅下降,阿里巴巴PAI團(tuán)隊維護(hù)了一個white-list,只有在這個white-list中的算子才有可能被轉(zhuǎn)換為FP16。這個white-list的更新,一方面,會基于一些heuristic的規(guī)則來進(jìn)行指定,此外,阿里巴巴PAI團(tuán)隊也會引入一個在線反饋tuning的機(jī)制,來對算子的FP16-friendliness數(shù)據(jù)進(jìn)行自動采集,以期盡可能減少人力負(fù)擔(dān)。

3.2 Cost Model

但不是white-list中的所有算子都應(yīng)該轉(zhuǎn)換為FP16,計算圖中每個節(jié)點(diǎn)需不需要轉(zhuǎn)換,除了和這個計算節(jié)點(diǎn)本身的算子類型有關(guān),還和這個節(jié)點(diǎn)周圍其他節(jié)點(diǎn)等因素緊密相關(guān),所以需要一個Cost Model來預(yù)測每個節(jié)點(diǎn)轉(zhuǎn)換為FP16之后對整體性能的影響,從而作出轉(zhuǎn)換與否的判斷。

舉個例子,前面提到的embedding_lookup算子,雖然也支持FP16,但是通過阿里巴巴PAI團(tuán)隊的cost model可以輕易地自動將計算圖中的 embedding_lookup節(jié)點(diǎn)排除在外。如下圖所示,上側(cè)是原始計算圖中的 embedding_lookup節(jié)點(diǎn),其訪存開銷是 2*N*D*4Bytes,其中系數(shù)2表示一次讀和一次寫,4Bytes是因為讀寫都是FP32數(shù)據(jù);下側(cè)則是將 embedding_lookup節(jié)點(diǎn)轉(zhuǎn)換為FP16之后的示意圖,轉(zhuǎn)換后的訪存開銷則變?yōu)?*N*D*2+V*D*4+V*D*2Bytes,其中第一項表示embedding_lookup本身的讀寫量減半,而增加的后兩項則是因為在embedding_lookup之前需要將embedding variable轉(zhuǎn)換為FP16. 通常情況下詞表大小V遠(yuǎn)遠(yuǎn)大于batch size N, 因此轉(zhuǎn)換后的總的訪存開銷遠(yuǎn)遠(yuǎn)大于轉(zhuǎn)換前,通過cost model就能夠判斷出這個轉(zhuǎn)換不應(yīng)該發(fā)生。

3.3 FP16 Propagation

在計算圖層面看模型的視角和在TF代碼層面看模型的視角不太一樣,在計算圖層面看到的只是一個個計算節(jié)點(diǎn)和他們之間的連接關(guān)系,缺失了更宏觀的結(jié)構(gòu)信息,比如哪些是前向計算、哪些是后向計算、以及哪些是Optimizer的計算(雖然在某種程度上可以通過節(jié)點(diǎn)的名字來判斷,但這依賴于計算圖構(gòu)造過程中的命名規(guī)則,更多是為了debug目的,不足以作為本質(zhì)的判斷依據(jù),一方面因為用戶有自定義命名的自由度;另一方面某些計算圖優(yōu)化Pass在添加計算節(jié)點(diǎn)時則不受計算圖構(gòu)造的命名規(guī)則的約束)。

這個局限性給計算圖層面的自動混合精度轉(zhuǎn)換造成了一定的障礙,因為PAI團(tuán)隊并不希望Optimizer本身的計算也被轉(zhuǎn)換為FP16,原因是因為部分模型需要loss scaling才能防止gradients underflow ,Loss Scaling包含Scaling與Unscaling兩個步驟,降低在兩個動作之間的梯度值轉(zhuǎn)換為FP16后Underflow的風(fēng)險,而Optimizer本身的計算位于Unscaling之后,如果Optimizer本身的計算也被轉(zhuǎn)換為FP16,那么就存在很大的underflow風(fēng)險。正如前面所說,在計算圖層面并不能完全確認(rèn)哪些計算是optimizer本身的。

為了解決這個問題,阿里巴巴PAI團(tuán)隊提出并實現(xiàn)了FP16 Propagation方案?;舅枷胧?,計算圖中節(jié)點(diǎn)的FP16轉(zhuǎn)換順序并不是隨意的,而是從MatMul/Conv2D節(jié)點(diǎn)開始向下游傳播,那么只要在gradient unscaling的位置(使團(tuán)隊自己添加的Mul節(jié)點(diǎn))做一個特殊標(biāo)記,F(xiàn)P16的傳播遇到這個標(biāo)記便停止,從而保證gradient unscaling之后的節(jié)點(diǎn)都不會被轉(zhuǎn)換為FP16。

3.4 Cast Elimination & Cast Fusion

計算圖層面的自動細(xì)粒度還存在一個不可避免的問題是會產(chǎn)生大量的Cast轉(zhuǎn)換節(jié)點(diǎn),因為將每個節(jié)點(diǎn)轉(zhuǎn)換為FP16必然會在輸入端插入FP32轉(zhuǎn)FP16的Cast, 輸出端插入FP16轉(zhuǎn)FP32的Cast,這些Cast會帶來很大的額外開銷,因此阿里巴巴PAI團(tuán)隊通過Cast Elimination 和 Cast Fusion兩個方法來降低所引入的這部分開銷。

Cast Elimination就是將兩個連續(xù)的相反的Cast節(jié)點(diǎn)互相抵消,如下圖所示。這種情況在FP16轉(zhuǎn)換后大量存在,如果沒有Cast Elimination,這些Cast節(jié)點(diǎn)帶來的額外開銷大部分情況下足以抵消混合精度訓(xùn)練所帶來的性能收益。

雖然Cast Elimination已經(jīng)能夠消除大部分Cast節(jié)點(diǎn),但并不能完全消除,對于剩余的Cast節(jié)點(diǎn)可以進(jìn)一步通過Cast Fusion使其和前后的節(jié)點(diǎn)融合,從而避免帶來額外的訪存開銷和Kernel Launch開銷。

4. 自動Loss Scaling的實現(xiàn)

4.1 loss scaling介紹

SSD訓(xùn)練過程中的gradients分布

由于數(shù)值精度的下降,模型的訓(xùn)練過程可能會有一定的精度下降或者不收斂情況。由于FP16的表示范圍有限,數(shù)值較小的gradients可能會出現(xiàn)underflow,導(dǎo)致數(shù)值直接被截斷為0,如上圖,圖中所示為一個經(jīng)典的SSD圖像檢測模型在訓(xùn)練過程中的gradients分布圖,圖中紅線以左都會因為underflow的問題在FP16下變?yōu)?,而同時觀察到FP16有很大一部分表征能力并沒有用到,因此可以將gradients放大一定的倍數(shù)進(jìn)行表達(dá)。對于此問題可以通過loss scaling策略進(jìn)行解決,即在loss上乘以一個scaling factor,在gradients進(jìn)行apply之前進(jìn)行unscale即可。

下圖所示即為loss scaling的計算流程示意圖,在loss位置,將loss乘以scaling factor,進(jìn)行后向計算,在得到FP32 gradients進(jìn)行unscaling操作,保證gradients數(shù)值的準(zhǔn)確性。其中對于scaling factor,阿里巴巴PAI團(tuán)隊實際是引入了額外的超參數(shù),若其值較大,則在后向計算中,gradients可能出現(xiàn)overflow的情況,若其值較小,則依然不能很好的解決FP16下underflow的問題。對于它的控制,NVIDIA提出了auto scaling策略,其主要想法是,在不溢出的情況下,可以使用一個盡量大的scaling factor。

Loss scaling實現(xiàn)流程框架圖

4.2 Loss scaling的自動實現(xiàn)

對于loss scaling策略,用戶可以用類似

grads = [grad / scale for grad in tf.gradients(loss * scale, params)]

的方式進(jìn)行手動實現(xiàn),但手動實現(xiàn)存在以下兩方面的劣勢:

用戶的code可能有多種方式實現(xiàn)梯度的計算,例如可能直接調(diào)用tf.gradients() ,也可能調(diào)用optimizer.compute_gradients(),甚至也可能是調(diào)用optimizer.minimize()進(jìn)行計算。在不同的策略下,用戶需要找到gradients的實際計算位置,并對其進(jìn)行l(wèi)oss scaling計算操作;

若使用constant loss scaling,則用戶需要根據(jù)經(jīng)驗指定scaling factor, 則有可能引入了額外的調(diào)參過程;而用戶若希望使用auto loss scaling的策略,則用戶需要理解auto loss scaling的完整策略,并手動實現(xiàn),這個過程使得用戶需要對code進(jìn)行一個不小的改動量,帶來的overhead是比較大的,且存在一定的出錯概率。

目前社區(qū)tensorflow和NVIDIA所給的示例中給出了另外一種實現(xiàn)方式,即對用戶的optimizer進(jìn)行一層混合精度的wrapper封裝,并重新實現(xiàn)了compute_gradients()/apply_gradients()/minimize()等函數(shù)。但這種實現(xiàn)方式存在以下問題:

用戶code對于gradients的計算,不一定是通過調(diào)用optimizer.compute_gradients()實現(xiàn)的,也可能是直接調(diào)用tf.gradients(),在這種情況下用戶就需要改動自己的code以適用于混合精度的loss scaling訓(xùn)練策略,這對用戶的overhead是比較大的;

wrapper封裝方式無法解耦與其他optimizer wrapper的耦合依賴;例如,在分布式訓(xùn)練時,用戶一般會用分布式optimizer對于標(biāo)準(zhǔn)optimizer進(jìn)行一層封裝,例如opt = tf.train.SyncReplicasOptimizer(opt),此時用戶可能存在不知道封裝哪一個optimizer的困惑,并且目前社區(qū)的code是沒有對于分布式訓(xùn)練wrapper與混合精度訓(xùn)練wrapper進(jìn)行解耦的,社區(qū)目前的版本與tf.train.SyncReplicasOptimizer耦合使用時會出現(xiàn)死鎖情況;

更細(xì)節(jié)地,wrapper方式不能實現(xiàn)對于colocate_gradients_with_ops等一些device placement控制功能的支持。

因此,為了解放用戶,阿里巴巴PAI團(tuán)隊采取了另外一種實現(xiàn)方式,即對tf.gradients()進(jìn)行了decorator,在這種方式下,可以支持optimizer.compute_gradients()/optimizer.minimize()/tf.gradients()任一方式下的梯度計算,同時是對梯度反向計算的原子操作tf.gradients()進(jìn)行了decorator,因此它與其他的optimizer wrapper不存在耦合情況。細(xì)節(jié)地,用戶在使用混合精度時,若希望啟動loss scaling只需要將optimizer相關(guān)的部分都放在with gradients.mixed_precision_scope下即可,例如如下所示。

4.3 模型收斂性驗證

對于混合精度訓(xùn)練,阿里巴巴PAI團(tuán)隊基于不同類型的model進(jìn)行了收斂性驗證。實驗結(jié)果可以驗證部分model在混合精度訓(xùn)練下也可保持與FP32訓(xùn)練結(jié)果相當(dāng)?shù)哪P途?,部分model出現(xiàn)了精度下降或訓(xùn)練不收斂的情況,但均可通過loss scaling的策略恢復(fù)模型精度,保證其與FP32下一致的模型精度。

4.3.1 Classification CNNs

對于分類CNN網(wǎng)絡(luò),阿里巴巴PAI團(tuán)隊基于ResNet50在ImageNet上進(jìn)行了收斂性分析,下圖所示為訓(xùn)練過程的test accuracy曲線,對比實驗包括:

FP32 baseline;

混合精度訓(xùn)練(MP)+no loss scaling;

混合精度訓(xùn)練(MP)+constant scaling (scaling factor=64);

混合精度訓(xùn)練(MP)+auto scaling。 由對比可見,即使不加loss scaling策略,混合精度訓(xùn)練的精度與FP32下基本無差別。

ResNet50訓(xùn)練曲線對比

4.3.2 Detection CNNs

對于detection CNNs,阿里巴巴PAI團(tuán)隊在Faster RCNN和SSD上進(jìn)行了收斂性驗證:

Faster RCNN on PASCAL VOC2007

對于此model,在混合精度訓(xùn)練下,不加loss scaling的情況下,mAP有1.65的drop,但在constant scaling及auto scaling的策略下,此精度均可recover,且精度略高于FP32情況下的模型精度

SSD on PASCAL VOC2007+2012

SSD模型在混合精度訓(xùn)練情況下,不加loss scaling時出現(xiàn)了不收斂的情況,但在constant scaling及auto scaling情況下,其收斂精度均可與FP32 baseline相當(dāng)。

4.3.3 NMT

對于NMT任務(wù),阿里巴巴PAI團(tuán)隊使用了small NMT模型在WMT German-English任務(wù)上進(jìn)行了混合精度訓(xùn)練,在auto scaling策略下,其所得BLEU值與FP32情況下訓(xùn)練結(jié)果相當(dāng)。

4.3.4 GAN

對于GAN的收斂性驗證,阿里巴巴PAI團(tuán)隊在基于公開model Prograssive GAN (PGAN)和阿里巴巴PAI內(nèi)部推進(jìn)的一個AI字體生成業(yè)務(wù)model進(jìn)行了驗證。

下圖所示從左至右分別為兩個模型在FP32、FP16(no loss scaling)以及FP16(auto scaling)情況下的生成圖片,其主觀結(jié)果無明顯差異。

4.3.5 Wide & Deep Learning

對于搜索、推薦、廣告領(lǐng)域常用的WDL模型,阿里巴巴PAI團(tuán)隊基于Tensor flow官方案例 進(jìn)行了收斂性驗證,實驗結(jié)果如下。即使在不加loss scaling的情況下,團(tuán)隊觀察到混合精度的訓(xùn)練結(jié)果與FP32也是相當(dāng)?shù)摹?/p>

5. 線下性能評測

5.1 Language Model

首先選取了Tensorflow官方的Language Model進(jìn)行評測:

評測模型提供了FP16訓(xùn)練的Option --use_fp16,這屬于前面提到的模型代碼層面的手工轉(zhuǎn)換,正好可以和PAI自動混合精度訓(xùn)練做一些性能對比。

收斂性:無需Loss Scaling, AutoMixedPrecision收斂性與FP32訓(xùn)練無差異。

性能:如下圖所示(單位words/sec),PAI自動混合進(jìn)度訓(xùn)練的性能明顯超過手工轉(zhuǎn)換的FP16模型的性能,相對于V100 FP32性能基準(zhǔn),加速達(dá)到2.3X。

5.2 NMT Transformer

同時阿里巴巴PAI團(tuán)隊針對阿里達(dá)摩院機(jī)器翻譯團(tuán)隊的In-house Production Model也進(jìn)行了混合精度的加速效果驗證。

收斂性:加上Loss Scaling, AutoMixedPrecision收斂性與FP32訓(xùn)練無差異

性能:如下圖所示(單位step/sec), 這個模型有兩種配置,hidden size = 512的配置相對于V100 FP32加速比為1.6X, hidden size = 1024的配置加速比為2.1X。

6. 線上性能對比

首先要說明的一點(diǎn)是,雖然已經(jīng)有多個業(yè)務(wù)的多個模型在線上使用PAI混合精度訓(xùn)練,但并不是每個模型的每個配置阿里巴巴PAI團(tuán)隊都能拿到和非混合精度訓(xùn)練的性能對比,因為用戶在順利使用PAI混合精度訓(xùn)練后并沒有再使用非混合精度訓(xùn)練的需求,有時候用戶跑非混合精度訓(xùn)練純粹是為了幫阿里巴巴PAI團(tuán)隊做性能對比,團(tuán)隊也不愿意過多地浪費(fèi)用戶寶貴的時間和集群計算資源來做性能對比。所以下面會比較細(xì)節(jié)地列舉兩個項目各自其中一個模型的性能對比,再給出一些代表性的模型性能對比。

6.1 高德某導(dǎo)航類相關(guān)項目

該項目是PAI自動混合精度訓(xùn)練的第一個用戶,該項目自研的模型,既包括多個卷積層也包括多個全連接層。

該項目最新開發(fā)的模型使用PAI混合精度訓(xùn)練,模型收斂性沒有收到影響。

使用PAI混合精度訓(xùn)練和V100非混合精度訓(xùn)練的性能對比,如下表所示(單位sec/step)

對于小尺寸模型,在相同的V100 GPU上,PAI混合精度訓(xùn)練相比于非混合精度訓(xùn)練加速2.3X。

對于正常尺寸的模型,如果不用混合精度訓(xùn)練,在V100 GPU上則因為OOM根本無法訓(xùn)練,這也體現(xiàn)了PAI混合精度訓(xùn)練除了性能上的加速,也能降低顯存的消耗。

6.2 速賣通 (AliExpess)某商品數(shù)據(jù)挖掘項目

AliExpess商品數(shù)據(jù)挖掘項目是PAI自動混合精度訓(xùn)練的第二個用戶,使用PAI混合精度訓(xùn)練,同樣對模型收斂性沒有任何影響。

和前面的高德導(dǎo)航類項目新開發(fā)的模型直接在V100集群使用PAI混合精度訓(xùn)練不同的是,該項目的模型在使用PAI混合精度訓(xùn)練之前已經(jīng)在使用P100集群訓(xùn)練,切換到PAI混合精度訓(xùn)練后獲得了非常顯著的加速,一方面是V100 GPU相對于P100 GPU的性能提升,另一方面是在V100 GPU上PAI混合精度訓(xùn)練帶來的性能提升。訓(xùn)練時間對比如下圖所示

對于小尺寸模型,在相同的V100 GPU上,PAI混合精度訓(xùn)練相比于非混合精度訓(xùn)練加速2.3X。

對于正常尺寸的模型,如果不用混合精度訓(xùn)練,在V100 GPU上則因為OOM根本無法訓(xùn)練,這也體現(xiàn)了PAI混合精度訓(xùn)練除了性能上的加速,也能降低顯存的消耗。

6.3 PAI自動混合精度代表性模型加速示例

因為自動混合精度功能在設(shè)計上就充分考慮到了通用性及透明性,所以業(yè)務(wù)多樣性支持得比較出色,下面展示的部分?jǐn)?shù)據(jù)包括PAI平臺對內(nèi)業(yè)務(wù)CNN、Transformer、BERT以及FCN占模型結(jié)構(gòu)主體的不同模型,業(yè)務(wù)場景橫跨了NLP、圖像、電商數(shù)據(jù)挖掘、高德交通導(dǎo)航等。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 神經(jīng)網(wǎng)絡(luò)

    關(guān)注

    42

    文章

    4814

    瀏覽量

    103635
  • gpu
    gpu
    +關(guān)注

    關(guān)注

    28

    文章

    4948

    瀏覽量

    131251
  • 阿里巴巴
    +關(guān)注

    關(guān)注

    7

    文章

    1638

    瀏覽量

    48243

原文標(biāo)題:PAI自動混合精度訓(xùn)練——Tensor核心在阿里PAI平臺落地應(yīng)用實踐

文章出處:【微信號:NVIDIA-Enterprise,微信公眾號:NVIDIA英偉達(dá)企業(yè)解決方案】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    通往AGI之路:揭秘英偉達(dá)A100、A800、H800、V100在高性能計算與大模型訓(xùn)練中的霸主地位

    英偉達(dá)前段時間發(fā)布GH 200包含 36 個 NVLink 開關(guān),將 256 個 GH200 Grace Hopper 芯片和 144TB 的共享內(nèi)存連接成一個單元。除此之外,英偉達(dá)A100、A800、H100、
    的頭像 發(fā)表于 06-29 11:23 ?3w次閱讀
    通往AGI之路:揭秘英偉達(dá)A<b class='flag-5'>100</b>、A800、H800、<b class='flag-5'>V100</b>在高性能<b class='flag-5'>計算</b>與大<b class='flag-5'>模型</b><b class='flag-5'>訓(xùn)練</b>中的霸主地位

    【大語言模型:原理與工程實踐】揭開大語言模型的面紗

    Transformer架構(gòu),利用自注意機(jī)制對文本進(jìn)行編碼,通過預(yù)訓(xùn)練、有監(jiān)督微調(diào)和強(qiáng)化學(xué)習(xí)等階段,不斷提升性能,展現(xiàn)出強(qiáng)大的語言理解和生成
    發(fā)表于 05-04 23:55

    特斯拉V100 Nvlink是否支持v100卡的nvlink變種的GPU直通?

    /4029/SYS-4029GP-TVRT.cfm)我們正試圖做pci將GPU直接傳輸?shù)絍M中但是當(dāng)我們通過pci設(shè)備并安裝驅(qū)動程序時,我們會從nvidia-nvlink模塊中獲得錯誤。是否支持v100卡的nvlink
    發(fā)表于 09-12 16:25

    在Ubuntu上使用Nvidia GPU訓(xùn)練模型

    問題最近在Ubuntu上使用Nvidia GPU訓(xùn)練模型的時候,沒有問題,過一會再訓(xùn)練出現(xiàn)非??D,使用nvidia-smi查看發(fā)現(xiàn),顯示GPU
    發(fā)表于 01-03 08:24

    真正的計算卡卡皇 Tesla V100計算卡性能將在8月份公布

    雖然Vega顯卡就要發(fā)布了,而且Nvidia的Titan Xp也已經(jīng)正式發(fā)售,但是這幾款顯卡在狂暴的Tesla V100計算卡面前還是顯得有點(diǎn)弱小,尤其是在處理高性能運(yùn)算的時候。那么作為真正的卡皇,Nvidia什么時候揭示
    發(fā)表于 05-16 16:25 ?1929次閱讀

    Nvidia發(fā)布世界最大GPU

    日前,英偉達(dá)GTC 2018(GPU Technology Conference 2018,以下簡稱GTC)在美國圣何塞舉行。英偉達(dá)再一次在提升計算力的路上越走越遠(yuǎn)。GPU產(chǎn)品依然是主
    的頭像 發(fā)表于 03-31 09:12 ?5469次閱讀

    NVIDIA CEO推出新核彈_Tesla V100新品和Quadro GV100

    盯著凌晨GTC大會觀看的網(wǎng)友可能會略感失望,新的游戲顯卡果然沒有在這個注重AI、深度學(xué)習(xí)的圖形峰會上公開。當(dāng)然,NVIDIA CEO還是推出了新核彈,基于GV100核心Tesla V100
    的頭像 發(fā)表于 04-07 01:46 ?7198次閱讀

    如何用單獨(dú)的GPU,在CIFAR-10圖像分類數(shù)據(jù)集上高效地訓(xùn)練殘差網(wǎng)絡(luò)

    現(xiàn)在我們假設(shè)在一個英偉達(dá)Volta V100 GPU上用100%的計算力,訓(xùn)練將需要多長時間。網(wǎng)
    的頭像 發(fā)表于 11-12 09:35 ?7286次閱讀

    NVIDIA頂級計算Tesla V100s發(fā)布,大幅度提速

    SC 2019超算大會期間,NVIDIA低調(diào)發(fā)布了新款頂級計算Tesla V100S,自然就是此前Tesla V100的升級版本。
    的頭像 發(fā)表于 11-25 09:48 ?2w次閱讀

    英偉達(dá)Tesla V100介紹

    Tesla V100s在物理上與V100相同。它遵循類似的雙插槽PCIe附加卡(AIC)設(shè)計,并采用Nvidia的參考散熱器。不過,還不清楚Nvidia是否會以SXM2板的外形尺寸提供V100
    的頭像 發(fā)表于 11-28 15:18 ?1.9w次閱讀

    基于NVIDIA Tesla V100 GPU等硬件打造隱私計算加速方案

    隱私計算全棧技術(shù)與基礎(chǔ)設(shè)施提供商星云Clustar,依托自身的算加速能力及基于NVIDIA Tesla V100 GPU等硬件打造隱私
    的頭像 發(fā)表于 08-02 14:43 ?4670次閱讀

    llm模型訓(xùn)練一般用什么系統(tǒng)

    。 硬件系統(tǒng) 1.1 GPU(圖形處理器) 在訓(xùn)練大型語言模型時,GPU是首選的硬件設(shè)備。相比于CPU,GPU具有更高的并行處理能力,可以顯
    的頭像 發(fā)表于 07-09 10:02 ?816次閱讀

    PyTorch GPU 加速訓(xùn)練模型方法

    在深度學(xué)習(xí)領(lǐng)域,GPU加速訓(xùn)練模型已經(jīng)成為提高訓(xùn)練效率和縮短訓(xùn)練時間的重要手段。PyTorch作
    的頭像 發(fā)表于 11-05 17:43 ?1410次閱讀

    訓(xùn)練AI大模型需要什么樣的gpu

    訓(xùn)練AI大模型需要選擇具有強(qiáng)大計算能力、足夠顯存、高效帶寬、良好散熱和能效比以及良好兼容性和擴(kuò)展性的GPU。在選擇時,需要根據(jù)具體需求進(jìn)行權(quán)衡和選擇。
    的頭像 發(fā)表于 12-03 10:10 ?654次閱讀

    GPU是如何訓(xùn)練AI大模型

    在AI模型訓(xùn)練過程中,大量的計算工作集中在矩陣乘法、向量加法和激活函數(shù)等運(yùn)算上。這些運(yùn)算正是GPU所擅長的。接下來,AI部落小編帶您了解GPU
    的頭像 發(fā)表于 12-19 17:54 ?747次閱讀