精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

大語言模型分布式訓(xùn)練的量化分析與優(yōu)秀實踐,以 GPT-175B 為例

人工智能
本文分享主題為大語言模型分布式訓(xùn)練的相關(guān)技術(shù)及量化分析,并以GPT-175B 為例,介紹相關(guān)技術(shù)的最佳實踐。

一、Transformer 大語言模型的 SOTA 訓(xùn)練技術(shù)

1、大語言模型的發(fā)展背景與挑戰(zhàn)

首先和大家分享下大語言模型的發(fā)展背景。過去的幾年內(nèi),無論從數(shù)據(jù)量的維度還是從模型規(guī)模的維度,語言模型規(guī)模都擴(kuò)大了非常多的數(shù)量級。隨著數(shù)據(jù)量和模型規(guī)模的擴(kuò)大,也面臨著一些挑戰(zhàn)。

圖片

其中涉及的挑戰(zhàn)主要可以分為兩部分。首先是計算方面,這里給了一個來自于Megatron 論文的公式去計算一個模型訓(xùn)練時需要的計算 FLOPS,我們可以簡單推算一下,GPT-3 175B 模型使用現(xiàn)在比較合理的 1.5T Tokens 數(shù)據(jù)量訓(xùn)練,大概需要 128 個 DGX A100 節(jié)點(*僅供技術(shù)交流使用),共計 1024 張 A100 卡(*僅供技術(shù)交流使用),在效率比較高的條件下連續(xù)訓(xùn)練 120 天。而且這還是一個非常理想的估計值。因為在實際訓(xùn)練時候不可避免地會遇到一些例如 Checkpoint、Save 與 Load 的時間、節(jié)點崩潰及重啟時間,或者我們需要取 Debug loss 曲線不正常的時間,因此實際的訓(xùn)練時間會遠(yuǎn)超過這個理想估計時間。

圖片

其次是運行大語言模型對顯存開銷的挑戰(zhàn)。例如對 GPT-3 175B 模型訓(xùn)練時的顯存開銷主要可以分為兩部分,第一部分是這個模型的狀態(tài)所占的顯存,包括模型參數(shù)量、梯度和優(yōu)化器所占的顯存。其中,主要的顯存開銷是優(yōu)化器狀態(tài)部分,也就是我們用 Adam 優(yōu)化器會涉及到的 Momentum 和 Variance 等。另一部分是 Activation 所占的顯存,后面會具體地推算這個 Activation 實際會占多大顯存,以及用了我們的一些優(yōu)化手段后, Activation 會占多少顯存。但無論如何,這兩個部分顯存加起來后會是一個巨大的顯存占用量,我們需要對模型進(jìn)行合理的切分,把它分布到不同的 GPU 上之后才能將模型運行起來。

圖片

今天我們也就圍繞上述的這兩點挑戰(zhàn)展開,一個是我們?nèi)绾伟涯P瓦\行起來,也就是解決顯存開銷的挑戰(zhàn);另一個是我們?nèi)绾伟涯P瓦\行得足夠快,也就是如何選擇合理的并行手段和優(yōu)化手段。

圖片

這里介紹一下 NeMO 和 Megatron,因為我們接下來介紹的技術(shù)都是基于 NeMO 和 Megatron 的。NeMO 和 Megatron 是 NVIDIA 對于大語言模型的兩個框架,NeMO 是偏產(chǎn)品化的框架,有更好的支持;Megatron-LM 是一個比較經(jīng)典的,偏學(xué)術(shù)研究的項目。NVIDIA 在這個框架做了大量的優(yōu)化來保證實際的模型訓(xùn)練性能處于 SOTA 狀態(tài)。

圖片

2、大語言模型的 SOTA 訓(xùn)練技術(shù)

接下來介紹下本次分享的大語言模型訓(xùn)練技術(shù)的總體概覽。下圖中標(biāo)記綠色的是去年或今年新出來的一些技術(shù),而標(biāo)記藍(lán)色的是比較經(jīng)典的技術(shù)。并行部分的介紹包括 Pipeline 并行、Tensor 并行和 Megatron v3 版本新出的 Sequence 并行。Expert 并行是針對 MOE 模型的一種并行,本文中不做展開。

第二個部分是顯存優(yōu)化,包括之前常聽到的 ZeRO,在 Megatron 和 NeMO 中已經(jīng)實現(xiàn)了 ZeRO-1,即 Distributed Optimizer;和Checkpoint Activations,其中 Selective Activation Checkpoint 是目前 Megatron 中用的比較多的,也是比較高效的一個 Checkpoint 技術(shù);其他的包括我們比較常用的,例如混合精度訓(xùn)練,Kernel Fusion 和 Flash Attention 等,以及在最新的 Megatron 和 NeMO 上更新的 Pipeline 通信和 Tensor 通信等。

圖片


二、以 GPT-175B 為例,最新訓(xùn)練技術(shù)量化分析

1、GPT-3 模型分布式訓(xùn)練技術(shù):模型并行

首先簡單地介紹下一些經(jīng)典的并行化技術(shù)。例如,Tensor 模型并行(TP)和Pipeline 模型并行(PP)。

其中,TP 是對模型的每個層做了一個層內(nèi)的拆分。目前 TP 只用于 Linear 層,當(dāng) Linear 層的 Shape 比較大時,使用 TP 是能達(dá)到很好的 GPU 利用率的。但 TP 也有一個缺點,即對每個 Linear 層做拆分,因此它的通信粒度是非常細(xì)的。這就意味著,在不做優(yōu)化的條件下,TP 每計算一次層的拆分,就需要有一次通信來做它的 Activation 合并操作,雖然 TP 單次通信量較小,但是它通信頻率頻次都很高,對帶寬的要求也很高。

PP 是流水線并行,也就是一個層間的拆分,把不同的層放到不同的 GPU 上。PP 的切分粒度比 TP 更粗,因此 PP 的通信量遠(yuǎn)小于 TP 的通信量,但是 PP 也存在一些缺點。一個完整的 Pipeline 運行起來需要將一個很大的 workload 切分成很小的多個 Workload,也就是需要將一個比較大 Batch size 切分成很多個小 Batch 才能保持流水線并行的高吞吐。并且如果在流水線拆分時候不同的 GPU 上的 Workload 不均勻會導(dǎo)致整個流水線的效率非常低。

圖片

下圖是一個 TP 的示意圖。MLP 基于 TP 做了拆分,由兩個 FFN 組成。在做 TP 拆分時做了一次優(yōu)化,也就是對第一個 Linear 層做列拆分,對第二個 Linear 層做行拆分,因此在每次 Forward 或 Backward 時只需要一次通信就能完成兩個 Linear 層的 TP 拆分。但在未做優(yōu)化時,需要兩次通信完成 TP 拆分。具體而言,也就是在 Forward 計算時,會在 g 操作處做一次 All-reduce 操作,實現(xiàn) Activations 的一次平均;相應(yīng)地,在 Backward 計算時會在f 操作處做一次 All-reduce 操作,實現(xiàn)梯度的平均。

圖片

另一個是對 Self-Attention 的 TP 拆分,如下面的示意圖,包括 Multi-head Attention 和 Linear 層兩個部分,對Multi-head Attention 的 TP 拆分是基于不同的 head 實現(xiàn)的,將不同的 head 放到不同的 GPU 上。同時,對 Linear 層做了行拆分。與 MLP 的兩個 Linear 層 TP 拆分類似,在 Forward 計算時在 g 操作處做一次 All-reduce,以及在 Backward 計算時在 f 操作處做一次 All-reduce。

圖片

接下來介紹的是 Sequence Parallelism,即序列并行,是對 TP 的優(yōu)化補充。例如,TP 拆分只會對 MLP 和 Self-Attention 的 Linear 層做并行化拆分,但是對其他的層,例如 Dropout 和 Layernorm 等沒有做并行化拆分,因為在一個 TP group 內(nèi),Layernorm 層的輸入是相同的,所以它的計算是完全相同的,也即在每 8 張 GPU 上的計算是完全相同的,因此這個部分的計算是冗余的。但是我們可以在它的 input 做 Sequence 維度上的拆分,經(jīng)過拆分后,在不同的 GPU 上它的 Layernorm 層的輸入是經(jīng)過拆分的,包括 Activation 相當(dāng)于也被拆分過了,所以不會有冗余的計算,從而能減少顯存的占用。

如下 Sequence Parallelism 示意圖,具體實現(xiàn) Sequence Parallelism 時,我們實際上是在 Layernorm 層做 Sequence Parallelism 拆分,然后在 Linear 層,又轉(zhuǎn)換成 TP 拆分,在 g 操作處將 Activation 進(jìn)行一次 all-gather 通信。執(zhí)行 TP 之后,再將 Activation 做一次 Reduce-scatter,之后又轉(zhuǎn)換成 input 在 Sequence 維度被拆分的狀態(tài)。對于通信量而言,使用 Sequence Parallelism 后,原先的一次 All-reduce 通信變成了一次 All-gather 通信加上一次 Reduce-scatter 通信,表面上通信的次數(shù)是變多了一倍,但是由于 all-reduce 的通信量其實是 All-gather 或 Reduce-scatter 的近兩倍,所以整體上的通信量差不多是一致的。也就是我們在 Sequence Parallelism 優(yōu)化后,通信量上并沒有改變,但是我們能收獲更少的計算量以及更少的 Activation 顯存占用。

圖片

下面介紹一個 4 GPU 的流水線并行的例子。

首先我們需要將第一個藍(lán)色的,即第一個 mini batch 的 Forward 計算在 Device 1 運算起來,計算完畢后傳到 Device 2,然后一致傳到最后一個 Device,這個流水線就逐漸繁忙起來。當(dāng)最后一個 Device 計算完 Forward 后,開始計算 Backward,之后可以將這個 Backward 往前傳。這樣的計算模式被稱為 One Forward One Backward(1F1B)狀態(tài)。最后會由最后一個 Device 將最后一個 mini batch 的 Backward 往前傳。所以如果只看最后一個 Device 的話,整個流水線是會先空幾個格,然后一直繁忙,然后在最后再空幾個格。

在 1F1B 計算狀態(tài),前面的幾個空格被稱為 Warm up 階段,最后的幾個空格階段被稱為 Cool down 階段。如果我們只看最后一個 Device,整個流水線的空閑時間被稱為 Bubble 時間,也就是它的 Warm up 時間加上 Cool down 時間。

如何將流水線的空閑時間減少呢?根據(jù)示意圖給出的公式,需要看 Bubble 時間除以理論時間得到的比例。我們需要盡量減小這個比例,例如可以盡量增大 mini batch 數(shù)量,也即需要拆分出來更多的 mini batch。但是并不是拆分更多的 min batch 就一定有收益。如果 mini batch 特別小,那么 GPU 計算的 Overhead 會比較大,單次的計算時間會增加,因此需要有一定的 Trade-off。所以我們對 PP 進(jìn)行了優(yōu)化,采用交錯流水線并行策略。

圖片

交錯流水線并行如下邊的示意圖。與默認(rèn)流水線并行的區(qū)別在于,默認(rèn)的流水線并行是對模型層進(jìn)行了一個連續(xù)的拆分,交錯流水線并行是對模型層進(jìn)行一個跳躍式的拆分。例如 Device 1 需要計算 Layer 0 至 3。根據(jù)前面介紹的 1F1B 計算狀態(tài),Device 4 需要在前面有一個 Warm up 時間才能進(jìn)入計算狀態(tài)。如何減少這個 Warm up 時間呢?其中一個方法是拆分更小的 mini batch,另一個方法是讓每個 Device 計算更少的層就能獲取到第一個 Activation。例如示意圖的下半部分,Device 1 需要計算的模型層是 Layer 0、1 和 Layer 8、9。在不考慮通信的條件下,流水線的 bubble 時間就縮小了一半。這個也是 Megatron 和 Nemo 對流水線并行的一個優(yōu)化。

圖片

接下來我們將三個并行優(yōu)化耦合到一起,看下它的通信模式是什么樣。下圖介紹的是一個 20 層的模型,包括了 DP、PP 和 TP 三個維度的并行優(yōu)化。

首先在 DP 維度,我們設(shè)置了兩組 DP。由于每組 DP 獲取了不同數(shù)據(jù),所以產(chǎn)生的梯度是不同的,因此在完成了 Backward 計算后需要對它的梯度做一次更新,在梯度更新前需要執(zhí)行一次梯度的 All-reduce 操作同步。在每組 DP 內(nèi)部,20 層的模型被拆分為四個流水線并行階段 stage,每個 stage 包含了模型的 5 個層。對每個 stage 而言,需要計算完包含的 5 個層,并將對應(yīng)的 Activation 傳到后續(xù)的 stage,以此類推,這個是流水線并行的通信模式。

在流水線并行的 stage 內(nèi)部是 TP 拆分,由四個 GPU 維護(hù)了這五層模型的計算,也即每個 GPU 只計算了其中的 1/4。這四個 GPU 在計算完第一層后需要做一次 All-reduce,然后才能計算第二層,以此類推,這個是 TP 的通信模式。由于 TP 的通信量是最大的,而且通信頻次很高,同時 TP 大O量的通信是必須和計算順序執(zhí)行的,沒辦法做 Overlap 優(yōu)化。因此,我們通常會將TP 設(shè)置成最里面的維度,盡量使用 NVLINK 高速帶寬通信。DP 的通信量比 PP 的通信量大很多,所以 DP 優(yōu)化通常設(shè)置成第二個維度,也是可以用 NVLINK 通信。當(dāng)模型比較大時,我們將TP 設(shè)置為 8 后,相應(yīng)的 DP 通信會跨節(jié)點通信。

PP 對通信的需求是最小的,且通信的頻次比較低,通信量也比較小,所以一般會將 PP 優(yōu)化設(shè)置成最外面的那個維度。下邊的示意圖存在部分差異是為了方便介紹。通常情況下,集群節(jié)點間的通信帶寬比較低時,可以盡量在節(jié)點間使用流水線并行。

圖片

2、GPT-3 模型分布式訓(xùn)練技術(shù):Activations 顯存優(yōu)化

Checkpointing activation 是比較常用的顯存優(yōu)化技術(shù)。簡單地講,Checkpointing activation 就是做重新計算。例如在 Forward 計算時得到的 Activation 不再保留,做 Backward 計算時,對這些 Activation 進(jìn)行重新計算,這樣可以極大程度上減少對 GPU 顯存的開銷。

Checkpointing activation 的實現(xiàn)方式有下邊示意圖列出來的幾種。其中一種比較 na?ve 的實現(xiàn)是 Full checkpointing,也即對 Transformer 的每個層都進(jìn)行重新計算。例如在最后一層做 Backward 計算時,需要這個 Transformer layer 在 Backward 計算之前重新執(zhí)行一次 Forward 計算,當(dāng)重新計算 Forward 后再開始這個層的 Backward 計算。Full checkpointing 對每個 Transformer layer 都打了一個重算點。

所以 Full checkpointing 的好處在于將顯存開銷降低到 O(n)的復(fù)雜度,而不足在于對每個 Transformer layer 都要重新計算一遍,從而帶來了近 36% 的額外計算開銷。

另一個優(yōu)化 Activation 的方式是 Sequence Parallelism 加上 Selective checkpointing,將這個重算的開銷從 36% 降低到 4%。

圖片

在前面的介紹中已經(jīng)說明了 Sequence Parallelism 主要優(yōu)化了 Dropout 和Layernorm 層。相對于 na?ve 方式實現(xiàn)的 checkpointing,Selective checkpointing 會選擇一些重算性價比高的OP,對一些計算時間比較小但產(chǎn)生Activation 占用的顯存很大的 OP 進(jìn)行重算。例如下邊示例圖左邊的 Self-attention 模塊,通過對比分析后得出,對 Self-attention這塊做重算的收益是非常高的,因為它的計算量相對會少一點,但它的一些中間結(jié)果輸出占用的顯存開銷非常大。因此我們就可以只對這塊做重算。對其他的層,例如 Linear 和 Layernorm 層,可以采用其他的優(yōu)化方法對 Activation 進(jìn)行優(yōu)化。

Selective checkpointing 的核心思想是對一些性價比高的 OP 做重算,并與其他的并行優(yōu)化方法聯(lián)合使用,達(dá)到 1+1>2 的效果。

圖片

3、GPT-3 模型分布式訓(xùn)練技術(shù):分布式優(yōu)化器

接下來介紹下 Distributed Optimizer,即 Zero-1。在模型訓(xùn)練時,Optimizer 狀態(tài)是模型固定占用顯存的主要部分。假如模型參數(shù)量是m,則 Optimizer 的顯存開銷是 16 * m 字節(jié)。Zero-1 的思想是在不同的 DP rank 上對 Optimizer 狀態(tài)做拆分,所以 Distributed Optimizer(Zero-1)在每個 DP rank 占用的顯存是 16 * m 除以 DP size,明顯降低了顯存開銷,同時也帶來了通信模式的改變。

例如,我們可以直接對梯度做 Reduce-scatter,之后再對自己的那一部分參數(shù)做Optimizer 相關(guān)的狀態(tài)更新,Optimizer 狀態(tài)更新完畢后再用一個 All-gather 操作收集模型權(quán)重。這樣由 DP 并行的一個 All-reduce 變成了一個 Reduce-scatter 加上一個 All-gather。根據(jù)前面的介紹,這個 All-reduce 的通信量是 Reduce-scatter 或 All-gather 的兩倍,所以整體的通信量是沒有變化的,但通信的次數(shù)變多了。

其次,使用比較多的是 Zero-2 和Zero-3,但目前在 Megatron 和 Nemo 上還沒有做支持。因為在實際使用過程中,Zero-2 和 Zero-3 需要每次進(jìn)行額外的 forward 和 backward 計算,并且每次都需要做通信,但是流水線并行會將一個大的 batch 拆分成很多個小的 forward 和 backward,也就會造成大的通信量。所以當(dāng)同時使用 Zero-2 或 Zero-3 加上流水線并行時,通信量會大幅上升,因此這里不推薦大家同時使用流水線并行和 Zero-2 或 Zero-3,但流水線并行可以和 Zero-1 同時使用。

圖片


三、大模型性能調(diào)優(yōu)過程的顯存開銷、通信開銷和計算開銷分析

1、顯存開銷分析

接下來我們具體對顯存開銷、通信開銷和計算開銷做分析。首先是顯存開銷,以GPT-3 為例子,主要分為三個部分,第一部分是模型占用的顯存,即模型狀態(tài)的顯存,包括參數(shù)、梯度和 Optimizer 狀態(tài);第二部分是 Activation 占用的顯存,也就是模型的 OP 產(chǎn)生的中間值,包括模型 Transformer layer 層和 Embedding 層的輸出,這里我們簡化一下問題,只考慮 Transformer layer;第三部分是可能需要的一些臨時 Buffer,這里不做過多的展開,我們主要關(guān)注前面兩個比較重要的部分。

圖片

先看下模型參數(shù)顯存開銷,即模型做了 TP 和 PP 拆分后每個 GPU 上會有多大的實際參數(shù)。我們先看下 GPT-3 模型的整體構(gòu)成,模型包含了 96 層 Decoder,在每層 Decoder 內(nèi)包含一個 QKV 權(quán)重、Projection 權(quán)重以及兩個 FC 的權(quán)重,這樣的權(quán)重會被重復(fù) 96 次,另外包含了 Token Embedding 和 Position Encoding 的權(quán)重。當(dāng)進(jìn)行TP 拆分時,相當(dāng)于 QKV 權(quán)重和 Projection 權(quán)重會除以 t,再擠上兩層的 FC 權(quán)重也除以 t,t 是TP 拆分的數(shù)量。然后進(jìn)行 PP 拆分,也就是原始的 n 層除以 p,p 是 PP 拆分的 stage 數(shù)量,再加上 Token Embedding 和 Position Encoding 也做了 TP 維度的拆分。所以當(dāng) TP 等 8,PP 等于 16 時,每個 GPU 上需要存儲 1.37B 的參數(shù)量。

圖片

對于 1.37B 參數(shù)量實際占用的顯存,當(dāng)我們使用混合精度時,模型的參數(shù)和梯度占用的顯存都是 2.74GB。由于 Optimizer 狀態(tài)占用的顯存是 16 倍的參數(shù)量,所以 Optimizer 占用的顯存是 21.9GB,可以看到主要是 Optimizer 狀態(tài)占用很大比例的顯存開銷。

圖片

Optimizer 狀態(tài)的顯存開銷可以通過前面介紹的 Distributed optimizer 或 Zero 技術(shù)進(jìn)行優(yōu)化。其中,Zero-1技術(shù)可以將 Optimizer 狀態(tài)做一個 DP 維度的拆分,從而降低顯存占用。例如,當(dāng)DP size 設(shè)置為 8 時,Optimizer 狀態(tài)的顯存占用可以從 21.9GB 降低到 2.7GB。

若在 Zero-1 基礎(chǔ)上再做 Zero-2,可以將梯度也進(jìn)行 DP 維度的拆分,梯度的顯存占用由 2.74GB 降低到 0.34GB。若再做 Zero-3,可以將參數(shù)也做相應(yīng)的拆分,將其顯存占用降低為 0.34GB。

可以看到,當(dāng) DP size 等于8 時,使用 Zero-1 對 Optimizer 狀態(tài)做拆分就可以帶來明顯的顯存開銷降低。相對而言,使用 Zero-2、Zero-3 對梯度和參數(shù)做拆分時的顯存開銷優(yōu)化不明顯,同時會增加非常多的通信 overhead。所以建議如果不是顯存特別緊張的條件下,盡量不要用 Zero-3。一方面它帶來很大的計算開銷和通信開銷,另一方面它的優(yōu)化也會比較難調(diào)試。

從另一個角度來說,當(dāng)模型參數(shù)被 TP 和 PP 拆分后,每個 GPU 上的參數(shù)和梯度自然地被拆分了,所以它占用的顯存也比較小,使用 Zero-1 就能達(dá)到一個很好的效果。另外,值得注意的是,我們并不推薦使用 PP 后再疊加 ZeRO-2/3,主要原因是一方面它對顯存的進(jìn)一步優(yōu)化不是很明顯;另一方面是它會帶來一定的通信沖突,所以建議大家使用 TP 和 PP 后用 Zero-1 就可以了。

圖片

接下來介紹 Activation 顯存開銷。為簡化問題,我們只分析單個 Transformer layer 的 Activation 顯存占用。具體的計算方法是考慮每個 OP 計算輸出的 shape 大小,將各個 OP 輸出的 shape 加起來即可得到預(yù)計的顯存開銷大小。如下邊示例圖中的公式,從計算公式可以發(fā)現(xiàn)一個很大的問題,公式包含了一個s 即 Sequence 長度的平方項,當(dāng) s 比較大時,這個顯存開銷會變得非常恐怖,有必要進(jìn)行優(yōu)化。

圖片

使用前面介紹的 Full checkpointing 優(yōu)化方法可以有效減少 Activation 顯存開銷。在 Full checkpointing 中,僅存儲每個 Transformer layer 的輸出,且中間計算結(jié)果在 Backward 時直接重算,從而使得 Activation 顯存開銷計算變?yōu)?2 * b * s * h。

圖片

使用 TP 拆分,實際上就是對 Self-attention 和 MLP 進(jìn)行了 TP 維度的拆分,將相應(yīng) QKV 和 FC 計算輸出的 shape 除以 t,如果在這個基礎(chǔ)上,再加上Sequence Parallelism 的話,會進(jìn)一步對兩個 Layernorm 輸出的 shape 除以 t。在這個基礎(chǔ)上繼續(xù)使用 Selective checkpointing 時,就可以將這個 s 的平方給優(yōu)化掉,因為我們會把這個 Self-attention 的輸出 Activation 直接 Drop 掉。

圖片

圖片

圖片

因此,整體的重算開銷從 Full checkpointing 時的 36% 降低為TP+SP+Selective checkpointing 時的 4%,相應(yīng)的顯存開銷從原先的 2.86GB 降低為 106MB。

圖片

2、通信開銷分析

通信開銷也分成 DP、TP 和 PP 三個部分。首先看下 DP 的通信開銷,如下圖所示,DP 的通信開銷等于梯度通信的大小除以總線帶寬,再乘以一個 All-reduce 系數(shù),其中總線帶寬需要根據(jù)實際的消息大小去測試出一個總線帶寬的估計。

圖片

TP 和 TP+SP 兩個優(yōu)化方法的通信量大小是一致的。具體的 TP 通信開銷計算如下邊示例圖中的公式,分成每次 TP 通信量的大小除以實際獲得的總線帶寬,再乘以一個 All-reduce 系數(shù),再乘以 Self-attention 和 MLP 各做三次通信次數(shù),再乘以 Transformer layer 的層數(shù)以及 mini batch 的數(shù)量。

圖片

圖片

流水線并行的通信開銷主要看下邊的示例圖的綠色部分,具體計算是首先獲取單次通信的時間再乘以一個通信的次數(shù)。其中,通信次數(shù)包括了 1F1B 次數(shù),再加上 Warm up 和 Cool down 的次數(shù)。

圖片

3、計算開銷分析

接下來介紹下計算開銷,具體的計算公式推導(dǎo)見下邊的示例圖公式。示例圖左邊的是對 Self-attention、FFN 和 Logit 層的計算拆解,主要計算一些 Linear 層的 FLOPS。將這些 FLOPS 加起來就得到單個 Transformer layer 的 FLOPS,然后再乘上 Batch 數(shù)量以及層數(shù)就能得到整體的模型 FLOPS。通過模型 FLOPS 可以衡量整個訓(xùn)練系統(tǒng)的效率是否足夠好。例如針對 GPT-3 175B 而言,如果它的模型 FLOPS 在 A100 (*僅供技術(shù)交流使用)上小于 150 TFLOPS,說明訓(xùn)練可能是有一點問題的,如果小于 120TFLOPS 說明訓(xùn)練肯定有一些比較嚴(yán)重的異常問題,造成速度下降。

圖片


四、總結(jié)

最后來進(jìn)行一下總結(jié)。對于 GPT-3 175B 的訓(xùn)練而言,我們該怎么去組合這些優(yōu)化?首先有些優(yōu)化項是默認(rèn)開啟的,比如我們通常推薦大家使用混合精度、Flash attention 以及 Megatron 上大量的默認(rèn)優(yōu)化 OP。其次是半精度訓(xùn)練選擇,比如要選擇用 BF16 還是 FP16,對于大模型訓(xùn)練推薦優(yōu)先考慮 BF16,因為 FP16 會有很多潛在的問題和坑,使用 BF16 會比較穩(wěn)定,尤其是對 20B 以上的模型,推薦大家只用 BF16。

接下來是如何將這些優(yōu)化進(jìn)行組合,例如,如果訓(xùn)練運行起來有顯存開銷問題,可以依次打開這些優(yōu)化,首先可以嘗試使用 Selective activation checkpointing,然后開啟 Distributed Optimizer,之后逐漸開啟 TP。我們不需要一開始就將 TP 設(shè)置成 8,這里有個準(zhǔn)則,需要評判 Hidden size 除以 TP 后不能小于 1024,最好要大于 2048,這樣會有一個比較好的收益。之后逐漸地去開啟 PP。不要一開始就將 PP 設(shè)置得很大,然后可以用 Full activation checkpointing。

如果不會遇到 OOM,并且 GBS 能開的足夠大,那么盡量使用 DP 去擴(kuò)展即可。

圖片

責(zé)任編輯:姜華 來源: DataFunTalk
相關(guān)推薦

2023-10-26 18:10:43

分布式并行技術(shù)系統(tǒng)

2025-04-16 02:30:00

2018-10-17 08:39:56

Redis分布式系統(tǒng)緩存

2022-03-21 19:44:30

CitusPostgreSQ執(zhí)行器

2022-10-08 15:41:08

分布式存儲

2021-08-07 05:00:20

存儲系統(tǒng)

2021-07-04 07:07:06

Ceph分布式存儲架構(gòu)

2017-09-01 05:35:58

分布式計算存儲

2024-04-08 11:04:03

2018-01-25 08:29:28

Kafka源碼存儲

2020-09-23 22:36:27

分布式架構(gòu)系統(tǒng)

2024-06-12 09:52:49

2024-01-05 07:28:50

分布式事務(wù)框架

2025-06-12 09:48:46

2024-06-03 10:43:34

2024-09-13 17:02:29

2022-05-11 22:10:05

分布式云云計算公共云

2022-12-28 09:48:09

分布式系統(tǒng)關(guān)鍵路徑

2022-03-15 09:10:00

分布式訓(xùn)練實踐
點贊
收藏

51CTO技術(shù)棧公眾號

3d玉蒲团在线观看| 国产一级一级片| 精品九九久久| 中文字幕第一页久久| 91中文字幕在线| 日韩av一二三区| 国产探花一区| 精品人在线二区三区| 久草青青在线观看| a毛片在线播放| 91性感美女视频| 成人a级免费视频| 午夜影院在线看| 天天天综合网| 亚洲美女精品成人在线视频| 欧美在线free| 午夜视频久久久| 亚洲女同志亚洲女同女播放| 日韩成人dvd| 国产69精品久久久久9| 林心如三级全黄裸体| 精品无人区一区二区| 欧美日高清视频| 黄色动漫网站入口| 丝袜美腿av在线| 中文av一区二区| 精品国产二区在线| 99久久精品国产成人一区二区| 国产精品亚洲产品| 欧美人在线观看| 欧美一区免费观看| av中文一区| 精品偷拍各种wc美女嘘嘘| 一个人看的视频www| 精品肉辣文txt下载| 五月天国产精品| 男人天堂成人网| 天天影视久久综合| 国产免费久久精品| 欧美久久电影| 深夜福利在线观看直播| 国产sm精品调教视频网站| 成人淫片在线看| 亚洲综合精品视频| 麻豆国产一区二区| 国产精品视频精品| 中文字幕在线观看免费| 日韩高清不卡一区二区三区| 日本久久精品视频| 亚洲第一在线播放| 蘑菇福利视频一区播放| 国产自产v一区二区三区c| 亚洲国产欧美一区二区丝袜黑人| 久久精品国产99久久99久久久| 国产一区高清| 精品视频色一区| 亚洲高清免费在线观看| 精品久久毛片| 91麻豆精品国产91久久久资源速度| 亚洲免费一级视频| 未满十八勿进黄网站一区不卡| 欧美日韩亚洲综合| 五月天中文字幕在线| 欧美黄色一级| 亚洲精品一区二区三区福利| 超碰caoprom| 亚洲小说图片视频| 夜夜嗨av一区二区三区四区| 精品人妻一区二区三区蜜桃视频| 第四色成人网| 美日韩精品免费视频| 久草视频免费在线播放| 亚洲国产专区校园欧美| 欧美中文字幕视频在线观看| 国产suv精品一区二区33| 日韩国产欧美三级| 成人亚洲欧美一区二区三区| www.国产麻豆| 91日韩精品一区| 日韩欧美亚洲区| 超碰porn在线| 欧美日韩国产区| 精品久久久久久久无码| 不卡精品视频| 精品国偷自产国产一区| 国产aⅴ激情无码久久久无码| 久久影视一区| 欧美激情精品久久久久久蜜臀| 国产精品免费av一区二区| 蜜臀久久久99精品久久久久久| 91久久国产自产拍夜夜嗨| 同心难改在线观看| 国产精品不卡在线| 国产精品色婷婷久久58| 国产精品伊人日日| 北条麻妃在线| 亚洲国产精品影院| 婷婷六月天在线| av成人资源| 中文字幕在线看视频国产欧美在线看完整 | 日本乱理伦在线| 色综合久久久久综合体桃花网| 久久久久久综合网| 国产成人影院| 欧美黑人极品猛少妇色xxxxx| 一级做a爰片久久毛片| 国产一区二区精品久久99| 精品婷婷色一区二区三区蜜桃| 2019中文字幕在线视频| 婷婷久久综合九色综合伊人色| 99re精彩视频| 日韩有码av| 欧美肥婆姓交大片| 一区二区日韩在线观看| 久久蜜桃av一区二区天堂| 亚洲精品国产suv一区88| 久久99久久99精品免观看软件| 欧美成人a∨高清免费观看| 久久精品色妇熟妇丰满人妻| 亚洲女人av| 国产欧美日韩综合精品二区| 国产黄色在线网站| 欧美视频在线一区二区三区| 欧美性xxxx图片| 精品1区2区3区4区| 91情侣偷在线精品国产| www亚洲人| 色婷婷综合久久久中文字幕| 稀缺小u女呦精品呦| 午夜性色一区二区三区免费视频| 欧美mv日韩mv| 91在线观看免费高清完整版在线观看| 五月婷婷六月丁香综合| 亚洲中国最大av网站| 中文字幕第三区| 日韩精品2区| 日本高清视频精品| 你懂的免费在线观看| 欧美日韩亚洲国产一区| 亚洲精品国产成人av在线| 午夜精品久久| 91在线免费网站| 国产色在线观看| 51午夜精品国产| 多男操一女视频| 精品一二三四区| 91香蕉视频网址| 亚洲精品三区| 久久精品99久久久久久久久| 中文字幕1区2区3区| 国产精品天美传媒沈樵| 能看的毛片网站| 成人看的羞羞网站| 国产精品永久免费| 黄色在线免费| 欧美一区二区三区免费观看视频 | 粉嫩av一区二区三区免费野| 国产精品一级黄片| 另类av一区二区| 视频在线99| 永久免费观看精品视频| 九九热在线精品视频| 亚洲精品第五页| 午夜精品久久一牛影视| 国产精品无码久久久久久| 奇米一区二区三区| 一区二区精品视频| 日韩在线精品强乱中文字幕| 高清欧美性猛交xxxx黑人猛交| 亚洲 国产 欧美 日韩| 在线影视一区二区三区| 国产免费久久久久| a级高清视频欧美日韩| 色综合男人天堂| 国产又粗又长又硬| 国产成人av电影在线播放| 精品少妇人妻av免费久久洗澡| 天堂网av成人| 国产区亚洲区欧美区| 久久电影网站| 亚洲欧美成人网| 国产精品一区二区人人爽| 五月婷婷激情综合网| 高清国产在线观看| 国产精品18久久久久久久网站| 国产午夜福利100集发布| 成人一区不卡| 成人女人免费毛片| 福利视频一区| 97人人模人人爽人人喊中文字| 久草视频在线看| 欧美一区二区三区的| 中文字幕在线播| 一个色在线综合| 中文字幕第20页| 国产激情91久久精品导航| 一区二区三区不卡在线| 精品欠久久久中文字幕加勒比| 国产精品欧美激情在线播放| 女同视频在线观看| 中文字幕一区电影| 无码h黄肉3d动漫在线观看| 欧美日韩中文精品| 看片网址国产福利av中文字幕| 国产精品欧美一区二区三区| 亚洲成人av免费在线观看| 国产一区二区美女诱惑| 九一精品在线观看| 99精品免费视频| 视色,视色影院,视色影库,视色网| 制服丝袜日韩| 国产精品久久久久久久久婷婷 | 各处沟厕大尺度偷拍女厕嘘嘘| 久久日本片精品aaaaa国产| 久久久久久久成人| 日本在线免费播放| 亚洲欧美制服中文字幕| 殴美一级特黄aaaaaa| 7799精品视频| 亚洲专区在线播放| 欧美性猛片aaaaaaa做受| 久久中文字幕免费| 亚洲高清免费视频| 欧美日韩成人免费观看| 综合久久给合久久狠狠狠97色| www.久久av| 久久午夜电影网| 成年人的黄色片| 成人免费视频一区| 国产无套精品一区二区三区| 韩国三级中文字幕hd久久精品| 亚洲色图38p| 久久国产日本精品| 37pao成人国产永久免费视频| 亚洲激情国产| www精品久久| 很黄很黄激情成人| 日韩电影第一页| 先锋资源在线视频| 久久99久久99| 亚洲最大天堂网| 麻豆91在线观看| 五月婷婷六月丁香激情| 麻豆成人免费电影| 黄色片在线免费| 欧美aaaaaa午夜精品| 日韩爱爱小视频| 久久精品久久久精品美女| 91制片厂毛片| 久久99精品久久久| 熟妇无码乱子成人精品| 国产剧情av麻豆香蕉精品| 性色av浪潮av| 成人av片在线观看| 国产熟女高潮一区二区三区| 91老师片黄在线观看| 中字幕一区二区三区乱码| 国产嫩草影院久久久久| 亚洲区一区二区三| 亚洲欧美日韩在线播放| 久久久一二三区| 天天色 色综合| 99超碰在线观看| 欧美精品在线观看一区二区| 国产美女主播在线观看| 精品三级在线看| 免费人成黄页在线观看忧物| 尤物99国产成人精品视频| 国产调教视频在线观看| 欧美精品久久久久a| 成人美女大片| 成人黄色大片在线免费观看| www.神马久久| 欧美成人免费在线| 日韩成人激情| 超碰成人免费在线| 久久久久91| 亚洲综合在线一区二区| av电影在线观看一区| 日韩精品无码一区二区三区久久久| 国产精品久久久久精k8| 久久精品国产亚洲AV无码麻豆| 欧美日韩综合视频| 国产又黄又大又粗的视频| 精品久久一区二区三区| 久久这里精品| 欧美国产日韩中文字幕在线| www.成人爱| 亚洲自拍偷拍视频| 日韩在线你懂的| 一区二区三区四区久久| 午夜在线精品偷拍| 先锋资源在线视频| 国产欧美一区二区精品性色 | 亚洲精品久久| www.浪潮av.com| 国产一区91精品张津瑜| 免费黄色在线视频| 一区二区三区免费网站| 毛片在线免费播放| 亚洲国产精品字幕| av软件在线观看| 国产精品99一区| 国产精品香蕉| 手机成人av在线| 天堂成人免费av电影一区| 国产精品嫩草69影院| 国产欧美一区二区三区沐欲| 亚洲一区二区免费| 亚洲精品乱码日韩| 久久精品国产综合精品| 欧美激情一级片一区二区| 国产精品无码一本二本三本色| 成人免费视频视频| 成人免费毛片xxx| 欧美三级在线播放| 午夜影院在线视频| 久久免费福利视频| 国产精品白丝久久av网站| 视频一区视频二区视频三区视频四区国产 | 91网站在线播放| 久久网免费视频| 91精品国产综合久久久蜜臀粉嫩 | 日本亚洲不卡| 日本天堂免费a| 久久99深爱久久99精品| 国产视频不卡在线| 在线精品视频免费播放| 九九九伊在人线综合| 97视频色精品| 精品久久ai电影| 国产免费黄色一级片| 国产91精品入口| 久久精品99久久久久久| 欧美成人欧美edvon| 天堂成人av| 99在线视频免费观看| 欧美日韩日本国产亚洲在线| 久久综合在线观看| 亚洲美女免费在线| 国产强伦人妻毛片| 久久久成人的性感天堂| 亚洲精品aa| 日韩精品一区二区三区电影| 韩国女主播成人在线| 国产黄色小视频网站| 91精品国产乱码久久蜜臀| 国产精品剧情| 亚洲综合中文字幕在线| 午夜日韩在线| 先锋资源av在线| 欧美日韩在线视频观看| 欧美777四色影视在线| 国产精品免费一区豆花| 欧美激情欧美| 九色91porny| 精品成人av一区| 久久电影中文字幕| 国产精品日韩专区| 欧美1级日本1级| 欧美夫妇交换xxx| 狠狠躁18三区二区一区| 经典三级在线| 91久久精品国产91久久| 欧美日韩视频| mm131美女视频| 在线播放中文一区| 成人女同在线观看| 欧美精品一区二区三区在线看午夜 | 蜜桃福利午夜精品一区| 一区二区三区精密机械公司| 日本xxxx人| 国产精品黄页免费高清在线观看| 欧美国产一区二区三区激情无套| 日韩高清一二三区| 欧美性猛交xxxx| 午夜伦理在线| 国产精品二区在线观看| 久久高清国产| 成人免费视频国产免费观看| 亚洲第一天堂无码专区| 福利一区二区三区视频在线观看| 欧美性猛交内射兽交老熟妇| 久久人人97超碰com| av网站免费大全| 青草成人免费视频| 91精品国偷自产在线电影 | 97视频在线播放| 999国产精品999久久久久久| yjizz视频| 欧美揉bbbbb揉bbbbb| 黄色污污视频在线观看| 日本一区二区三不卡| 国产99久久久久久免费看农村| 91看片在线播放| 久久福利视频网| 狠狠综合久久av一区二区蜜桃| 91成人在线观看喷潮蘑菇| 欧美伊人久久大香线蕉综合69| 久草在线资源站资源站|