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

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

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

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

一文看懂AI大模型的并行訓(xùn)練方式(DP、PP、TP、EP)

穎脈Imgtec ? 2025-11-28 08:33 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

大家都知道,AI計算(尤其是模型訓(xùn)練和推理),主要以并行計算為主。

AI計算中涉及到的很多具體算法(例如矩陣相乘、卷積、循環(huán)層、梯度運算等),都需要基于成千上萬的GPU,以并行任務(wù)的方式去完成。這樣才能有效縮短計算時間。

搭建并行計算框架,一般會用到以下幾種常見的并行方式:

Data Parallelism,數(shù)據(jù)并行

Pipeline Parallelism,流水線并行

Tensor Parallelism,張量并行

Expert Parallelism, 專家并行

接下來,我們逐一看看,這些并行計算方式的工作原理



DP(數(shù)據(jù)并行)

首先看看DP,數(shù)據(jù)并行(Data Parallelism)。

AI訓(xùn)練使用的并行,總的來說,分為數(shù)據(jù)并行和模型并行兩類。剛才說的PP(流水線并行)、TP(張量并行)和EP(專家并行),都屬于模型并行,待會再介紹。

d8ccb8b0-cbf1-11f0-8ce9-92fbcf53809c.png

這里,我們需要先大概了解一下神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程。簡單來說,包括以下主要步驟:

d8e15df6-cbf1-11f0-8ce9-92fbcf53809c.png

1. 前向傳播:輸入一批訓(xùn)練數(shù)據(jù),計算得到預(yù)測結(jié)果。

2. 計算損失:通過損失函數(shù)比較預(yù)測結(jié)果與真實標簽的差距。

3. 反向傳播:將損失值反向傳播,計算網(wǎng)絡(luò)中每個參數(shù)的梯度。

4. 梯度更新:優(yōu)化器使用這些梯度來更新所有的權(quán)重和偏置(更新參數(shù))。

以上過程循環(huán)往復(fù),直到模型的性能達到令人滿意的水平。訓(xùn)練就完成了。

我們回到數(shù)據(jù)并行。

數(shù)據(jù)并行是大模型訓(xùn)練中最為常見的一種并行方式(當(dāng)然,也適用于推理過程)。

它的核心思想很簡單,就是每個GPU都擁有完整的模型副本,然后,將訓(xùn)練數(shù)據(jù)劃分成多個小批次(mini-batch),每個批次分配給不同的GPU進行處理。

數(shù)據(jù)并行的情況下,大模型訓(xùn)練的過程是這樣的:

d8f0bc06-cbf1-11f0-8ce9-92fbcf53809c.png

1、對數(shù)據(jù)進行均勻切割,發(fā)給不同的、并行工作的GPU(Worker);

2、各GPU都擁有一樣的模型以及模型參數(shù),它們各自獨立進行前向傳播、反向傳播,計算得到各自的梯度;

3、各GPU通過卡間通信,以All-Reduce的通信方式,將梯度推給一個類似管理者的GPU(Server);

4、Server GPU對所有梯度進行求和或者平均,得到全局梯度;

5、Server GPU將全局梯度回傳(broadcast廣播)到每個Worker GPU,進行參數(shù)更新(更新本地模型權(quán)重)。更新后,所有worker GPU模型參數(shù)保持一致。

然后,再繼續(xù)重復(fù)這樣的過程,直至完成所有的訓(xùn)練。

再來一張圖,幫助理解:

d9036f72-cbf1-11f0-8ce9-92fbcf53809c.png

從下往上看

這里提到的All-Reduce,也是一個AI領(lǐng)域的常見概念,字面意思是“全(All)-規(guī)約(Reduce)”,即:對所有節(jié)點的數(shù)據(jù)進行聚合(如求和、求最大值),并將最終結(jié)果分發(fā)到所有節(jié)點。(參考:到底什么是All-Reduce、All-to-All?)

數(shù)據(jù)并行的優(yōu)點,在于實現(xiàn)過程比較簡單,能夠顯著加速大規(guī)模數(shù)據(jù)的訓(xùn)練過程,尤其適用于數(shù)據(jù)量遠大于模型參數(shù)的場景。

數(shù)據(jù)并行的缺點,在于顯存的限制。因為每個GPU上都有完整的模型副本,而當(dāng)模型的規(guī)模和參數(shù)越大,所需要的顯存就越大,很可能超過單個GPU的顯存大小。

數(shù)據(jù)并行的通信開銷也比較大。不同GPU之間需要頻繁通信,以同步模型參數(shù)或梯度。而且,模型參數(shù)規(guī)模越大,GPU數(shù)量越多,這個通信開銷就越大。例如,對于千億參數(shù)模型,單次梯度同步需傳輸約2TB數(shù)據(jù)(FP16精度下)。



ZeRO

這里要插播介紹一個概念——ZeRO(Zero Redundancy Optimizer,零冗余優(yōu)化器)。

在數(shù)據(jù)并行策略中,每個GPU的內(nèi)存都保存一個完整的模型副本,很占內(nèi)存空間。那么,能否每個GPU只存放模型副本的一部分呢?

沒錯,這就是ZeRo——通過對模型副本中的優(yōu)化器狀態(tài)、梯度和參數(shù)進行切分,來實現(xiàn)減少對內(nèi)存的占用。

ZeRO有3個階段,分別是:

ZeRO-1:對優(yōu)化器狀態(tài)進行劃分。

ZeRO-2:對優(yōu)化器狀態(tài)和梯度進行劃分

ZeRO-3:對優(yōu)化器狀態(tài)、梯度和參數(shù)進行劃分。(最節(jié)省顯存)

通過下面的圖和表,可以看得更明白些:

d913ac5c-cbf1-11f0-8ce9-92fbcf53809c.pngd92647ea-cbf1-11f0-8ce9-92fbcf53809c.png

根據(jù)實測數(shù)據(jù)顯示,ZeRO-3在1024塊GPU上訓(xùn)練萬億參數(shù)模型時,顯存占用從7.5TB降至7.3GB/卡。

值得一提的是,DP還有一個DDP(分布式數(shù)據(jù)并行)。傳統(tǒng)DP一般用于單機多卡場景。而DDP能多機也能單機。這依賴于Ring-AllReduce,它由百度最先提出,可以有效解決數(shù)據(jù)并行中通信負載不均(Server存在瓶頸)的問題。

d932378a-cbf1-11f0-8ce9-92fbcf53809c.png



PP(流水線并行)

再來看看模型并行。

剛才數(shù)據(jù)并行,是把數(shù)據(jù)分為好幾個部分。模型并行,很顯然,就是把模型分為好幾個部分。不同的GPU,運行不同的部分。(注意:業(yè)界對模型并行的定義有點混亂。也有的資料會將張量并行等同于模型并行。)

流水線并行,是將模型的不同層(單層,或連續(xù)的多層)分配到不同的GPU上,按順序處理數(shù)據(jù),實現(xiàn)流水線式的并行計算。

d940bb02-cbf1-11f0-8ce9-92fbcf53809c.png

例如,對于一個包含7層的神經(jīng)網(wǎng)絡(luò),將1~2層放在第一個GPU上,3~5層放在第二個GPU上,6~7層放在第三個GPU上。訓(xùn)練時,數(shù)據(jù)按照順序,在不同的GPU上進行處理。

乍一看,流水并行有點像串行。每個GPU需要等待前一個GPU的計算結(jié)果,可能會導(dǎo)致大量的GPU資源浪費。

d952955c-cbf1-11f0-8ce9-92fbcf53809c.png

上面這個圖中,黃色部分就是Bubble (氣泡)時間。氣泡越多,代表GPU處于等待狀態(tài)(空閑狀態(tài))越長,資源浪費越嚴重。

為了解決上述問題,可以將mini-batch的數(shù)據(jù)進一步切分成micro-batch數(shù)據(jù)。當(dāng)GPU 0處理完一個micro-batch數(shù)據(jù)后,緊接著開始處理下一個micro-batch數(shù)據(jù),以此來減少GPU的空閑時間。如下圖(b)所示:

d962cc9c-cbf1-11f0-8ce9-92fbcf53809c.png

還有,在一個micro-batch完成前向計算后,提前調(diào)度,完成相應(yīng)的反向計算,這樣就能釋放部分顯存,用以接納新的數(shù)據(jù),提升整體訓(xùn)練性能。如上圖(c)所示。

這些方法,都能夠顯著減少流水線并行的Bubble時間。

對于流水線并行,需要對任務(wù)調(diào)度和數(shù)據(jù)傳輸進行精確管理,否則可能導(dǎo)致流水線阻塞,以及產(chǎn)生更多的Bubble時間。



TP(張量并行)

模型并行的另外一種,是張量并行。

如果說流水線并行是將一個模型按層「垂直」分割,那么,張量并行則是在一個層內(nèi)「橫向」分割某些操作。

d96fd8b0-cbf1-11f0-8ce9-92fbcf53809c.png

具體來說,張量并行是將模型的張量(如權(quán)重矩陣)按維度切分到不同的GPU上運行的并行方式。

張量切分方式分為按行進行切分和按列進行切分,分別對應(yīng)行并行(Row Parallelism)(權(quán)重矩陣按行分割)與列并行(Column Parallelism)(權(quán)重矩陣按列分割)。

d9843274-cbf1-11f0-8ce9-92fbcf53809c.png

每個節(jié)點處理切分后的子張量。最后,通過集合通信操作(如All-Gather或All-Reduce)來合并結(jié)果。

d990a40a-cbf1-11f0-8ce9-92fbcf53809c.png

張量并行的優(yōu)點,是適合單個張量過大的情況,可以顯著減少單個節(jié)點的內(nèi)存占用。

張量并行的缺點,是當(dāng)切分維度較多的時候,通信開銷比較大。而且,張量并行的實現(xiàn)過程較為復(fù)雜,需要仔細設(shè)計切分方式和通信策略。

放一張數(shù)據(jù)并行、流水線并行、張量并行的簡單對比:

d99edc5a-cbf1-11f0-8ce9-92fbcf53809c.png



專家并行

2025年初DeepSeek爆紅的時候,有一個詞也跟著火了,那就是MoE(Mixture of Experts,混合專家模型)。

MoE模型的核心是“多個專家層+路由網(wǎng)絡(luò)(門控網(wǎng)絡(luò))”。

d9ae6fe4-cbf1-11f0-8ce9-92fbcf53809c.png

專家層的每個專家負責(zé)處理特定類型的token(如語法、語義相關(guān))。路由網(wǎng)絡(luò)根據(jù)輸入token的特征,選擇少數(shù)專家處理這個token,其他專家不激活。

MoE實現(xiàn)了任務(wù)分工、按需分配算力,因此大幅提升了模型效率。

專家并行(Expert Parallelism),是MoE(混合專家模型)中的一種并行計算策略。它通過將專家(子模型)分配到不同的GPU上,實現(xiàn)計算負載的分布式處理,提高計算效率。

專家并行與之前所有的并行相比,最大的不同在于,輸入數(shù)據(jù)需要通過一個動態(tài)的路由選擇機制分發(fā)給相應(yīng)專家,此處會涉及到一個所有節(jié)點上的數(shù)據(jù)重分配的動作。

然后,在所有專家處理完成后,又需要將分散在不同節(jié)點上的數(shù)據(jù)按原來的次序整合起來。

這樣的跨片通信模式,稱為All-to-All。(再次參考:到底什么是All-Reduce、All-to-All?)

專家并行可能存在負載不均衡的問題。某個專家所接收到的輸入數(shù)據(jù)大于了其所能接收的范圍,就可能導(dǎo)致Tokens不被處理或不能被按時處理,成為瓶頸。

所以,設(shè)計合理的門控機制和專家選擇策略,是部署專家并行的關(guān)鍵。



混合并行

在實際應(yīng)用中,尤其是訓(xùn)練萬億參數(shù)級別的超大模型時,幾乎不會只使用單一的并行策略,而是采用多維度的混合并行(結(jié)合使用多種并行策略)。

例如:

數(shù)據(jù)并行+張量并行:數(shù)據(jù)并行處理批量樣本,張量并行處理單樣本的大矩陣計算。

流水線并行+專家并行:流水線并行劃分模型層,專家并行劃分層內(nèi)專家模塊。

更高級的,是3D并行,通過“數(shù)據(jù)并行+張量并行+流水線并行”,實現(xiàn)三重拆分,是超大模型訓(xùn)練的主流方案。

d9bd55ae-cbf1-11f0-8ce9-92fbcf53809c.png

3D并行


最后的話

好啦,以上就是關(guān)于DP、PP、TP、EP等并行訓(xùn)練方式的介紹。大家都看懂了沒?

d9d34e9a-cbf1-11f0-8ce9-92fbcf53809c.png

并行計算方式其實非常復(fù)雜,剛才我們只是做了最簡單的介紹。但在真實工作中,開發(fā)者無需了解具體的實現(xiàn)細節(jié),因為業(yè)界提供了例如DeepSpeed(微軟開源,支持3D并行+ZeRO內(nèi)存優(yōu)化)、Megatron-LM(NVIDIA開源,3D并行的標桿)、FSDP等開源軟件,能夠讓開發(fā)者直接進行大語言模型訓(xùn)練。

小棗君之所以要專門介紹并行訓(xùn)練方式,其實更多是為了幫助大家深入地理解算力集群架構(gòu)和網(wǎng)絡(luò)的設(shè)計。

大家可以看到,不同的并行訓(xùn)練方式,有著不同的通信流量特點。算力集群整體架構(gòu)和網(wǎng)絡(luò)設(shè)計,需要盡量去適配這些并行計算方式的流量特點,才能滿足模型訓(xùn)推任務(wù)的要求,實現(xiàn)更高的工作效率。

比如說,數(shù)據(jù)并行,由于需要頻繁同步梯度信息,對網(wǎng)絡(luò)帶寬要求較高,需要確保網(wǎng)絡(luò)帶寬能夠滿足大量梯度數(shù)據(jù)快速傳輸?shù)男枨?,避免因帶寬不足?dǎo)致通信延遲,影響訓(xùn)練效率。

流水線并行,大模型的每一段,在不同的服務(wù)器上以流水線的方式逐步計算,涉及到多個服務(wù)器“串起來”,就建議部署在比較靠近的服務(wù)器上(盡量部署在葉脊網(wǎng)絡(luò)的同一個leaf葉下)。

張量并行,通信數(shù)據(jù)量大,就建議部署在一臺服務(wù)器的多個GPU上進行計算。

專家并行中,不同專家分配在不同GPU上,GPU間需要交換中間計算結(jié)果等信息,其通信流量特點取決于專家的數(shù)量以及數(shù)據(jù)交互的頻率等,也需要合理規(guī)劃GPU間的連接方式和通信路徑。

d9e1021a-cbf1-11f0-8ce9-92fbcf53809c.png

總之,在GPU算卡性能越來越難以提升的背景下,深入研究并行計算的設(shè)計,從架構(gòu)和網(wǎng)絡(luò)上挖掘潛力,是業(yè)界的必然選擇。

隨著AI浪潮的繼續(xù)發(fā)展,以后是否還會出現(xiàn)其它的并行訓(xùn)練方式呢?讓我們拭目以待吧!

文章來源于鮮棗課堂,作者小棗君

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

    關(guān)注

    0

    文章

    81

    瀏覽量

    31402
  • DP
    DP
    +關(guān)注

    關(guān)注

    1

    文章

    241

    瀏覽量

    42106
  • pp
    pp
    +關(guān)注

    關(guān)注

    0

    文章

    8

    瀏覽量

    8499
  • ep
    ep
    +關(guān)注

    關(guān)注

    0

    文章

    16

    瀏覽量

    16490
  • AI大模型
    +關(guān)注

    關(guān)注

    0

    文章

    398

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    AI模型是如何訓(xùn)練的?訓(xùn)練模型花費多大?

    電子發(fā)燒友網(wǎng)報道(/李彎彎)在深度學(xué)習(xí)中,經(jīng)常聽到個詞“模型訓(xùn)練”,但是模型是什么?又是怎么訓(xùn)練
    的頭像 發(fā)表于 10-23 00:19 ?2.8w次閱讀

    基于Transformer做大模型預(yù)訓(xùn)練基本的并行范式

    在之前的內(nèi)容中,我們已經(jīng)介紹過流水線并行、數(shù)據(jù)并行DP,DDP和ZeRO)。 今天我們將要介紹最重要,也是目前基于Transformer做大模型預(yù)
    的頭像 發(fā)表于 05-31 14:38 ?4439次閱讀
    基于Transformer做大<b class='flag-5'>模型</b>預(yù)<b class='flag-5'>訓(xùn)練</b>基本的<b class='flag-5'>并行</b>范式

    訓(xùn)練好的ai模型導(dǎo)入cubemx不成功怎么處理?

    訓(xùn)練好的ai模型導(dǎo)入cubemx不成功咋辦,試了好幾個模型壓縮了也不行,ram占用過大,有無解決方案?
    發(fā)表于 03-11 07:18

    訓(xùn)練好的ai模型導(dǎo)入cubemx不成功怎么解決?

    訓(xùn)練好的ai模型導(dǎo)入cubemx不成功咋辦,試了好幾個模型壓縮了也不行,ram占用過大,有無解決方案?
    發(fā)表于 08-04 09:16

    AI模型是如何訓(xùn)練的?訓(xùn)練模型花費多大?

    電子發(fā)燒友網(wǎng)報道(/李彎彎)在深度學(xué)習(xí)中,經(jīng)常聽到個詞“模型訓(xùn)練”,但是模型是什么?又是怎么訓(xùn)練
    的頭像 發(fā)表于 10-23 00:20 ?1w次閱讀

    什么是預(yù)訓(xùn)練 AI 模型?

    預(yù)訓(xùn)練 AI 模型是為了完成特定任務(wù)而在大型數(shù)據(jù)集上訓(xùn)練的深度學(xué)習(xí)模型。這些模型既可以直接使用,
    的頭像 發(fā)表于 04-04 01:45 ?2436次閱讀

    什么是預(yù)訓(xùn)練AI模型?

    預(yù)訓(xùn)練 AI 模型是為了完成特定任務(wù)而在大型數(shù)據(jù)集上訓(xùn)練的深度學(xué)習(xí)模型。這些模型既可以直接使用,
    的頭像 發(fā)表于 05-25 17:10 ?1912次閱讀

    圖解大模型訓(xùn)練之:數(shù)據(jù)并行上篇(DP, DDP與ZeRO)

    數(shù)據(jù)并行的核心思想是:在各個GPU上都拷貝份完整模型,各自吃份數(shù)據(jù),算份梯度,最后對梯度進行累加來更新整體
    發(fā)表于 06-16 09:54 ?4529次閱讀
    圖解大<b class='flag-5'>模型</b><b class='flag-5'>訓(xùn)練</b>之:數(shù)據(jù)<b class='flag-5'>并行</b>上篇(<b class='flag-5'>DP</b>, DDP與ZeRO)

    模型分布式訓(xùn)練并行技術(shù)()-概述

    數(shù)據(jù)并行是最常見的并行形式,因為它很簡單。在數(shù)據(jù)并行訓(xùn)練中,數(shù)據(jù)集被分割成幾個碎片,每個碎片被分配到個設(shè)備上。這相當(dāng)于沿批次(Batch)
    的頭像 發(fā)表于 08-24 15:17 ?2588次閱讀
    大<b class='flag-5'>模型</b>分布式<b class='flag-5'>訓(xùn)練</b><b class='flag-5'>并行</b>技術(shù)(<b class='flag-5'>一</b>)-概述

    基于PyTorch的模型并行分布式訓(xùn)練Megatron解析

    NVIDIA Megatron 是個基于 PyTorch 的分布式訓(xùn)練框架,用來訓(xùn)練超大Transformer語言模型,其通過綜合應(yīng)用了數(shù)據(jù)并行
    的頭像 發(fā)表于 10-23 11:01 ?5631次閱讀
    基于PyTorch的<b class='flag-5'>模型</b><b class='flag-5'>并行</b>分布式<b class='flag-5'>訓(xùn)練</b>Megatron解析

    如何訓(xùn)練自己的AI模型

    訓(xùn)練自己的AI模型個復(fù)雜且耗時的過程,涉及多個關(guān)鍵步驟。以下是個詳細的訓(xùn)練流程:
    的頭像 發(fā)表于 10-23 15:07 ?7218次閱讀

    AI模型訓(xùn)練數(shù)據(jù)來源分析

    AI模型訓(xùn)練數(shù)據(jù)來源廣泛且多元化,這些數(shù)據(jù)源對于構(gòu)建和優(yōu)化AI模型至關(guān)重要。以下是對AI
    的頭像 發(fā)表于 10-23 15:32 ?7211次閱讀

    為什么ai模型訓(xùn)練要用gpu

    GPU憑借其強大的并行處理能力和高效的內(nèi)存系統(tǒng),已成為AI模型訓(xùn)練不可或缺的重要工具。
    的頭像 發(fā)表于 10-24 09:39 ?2107次閱讀

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

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

    看懂AI訓(xùn)練、推理與訓(xùn)推體的底層關(guān)系

    (Inference)。它們就像“學(xué)霸的高考備考”和“考試當(dāng)天的答題表現(xiàn)”,缺不可。1、什么是AI訓(xùn)練(Training)?通過大量數(shù)據(jù)訓(xùn)練模型
    的頭像 發(fā)表于 09-19 11:58 ?2309次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>看懂</b><b class='flag-5'>AI</b><b class='flag-5'>訓(xùn)練</b>、推理與訓(xùn)推<b class='flag-5'>一</b>體的底層關(guān)系