成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

#AIGC創(chuàng)新先鋒者征文大賽# 怎樣在 10k 個(gè) H100 GPU 上訓(xùn)練模型? 原創(chuàng) 精華

發(fā)布于 2024-10-28 10:51
瀏覽
0收藏

??【本文正在參與 AI.x社區(qū)AIGC創(chuàng)新先鋒者征文大賽】??
??http://www.ekrvqnd.cn/aigc/2223.html??

編者按: 怎樣在 10,000 個(gè) H100 GPU 上訓(xùn)練大模型?如何充分利用每一塊 GPU 的算力?如何在這個(gè)復(fù)雜的 GPU 網(wǎng)絡(luò)中高效傳遞數(shù)據(jù)?當(dāng)不可避免的硬件故障發(fā)生時(shí),又該如何快速恢復(fù)訓(xùn)練進(jìn)度?我們今天為大家?guī)?lái)的文章中,作者為我們揭示了應(yīng)對(duì)這些挑戰(zhàn)的關(guān)鍵策略。

作者 | Soumith Chintala

編譯 |?岳揚(yáng)

#AIGC創(chuàng)新先鋒者征文大賽# 怎樣在 10k 個(gè) H100 GPU 上訓(xùn)練模型?-AI.x社區(qū)

我的好友 Francois Fleuret 提出了上述問(wèn)題。我迅速總結(jié)了一些在大規(guī)模訓(xùn)練領(lǐng)域中相當(dāng)普遍的知識(shí),內(nèi)容分為三部分。

  1. 首先,是如何將盡可能大的神經(jīng)網(wǎng)絡(luò)和 batch-size 適配到那 10000 張 H100s 上,這個(gè)步驟涉及到并行處理和使用節(jié)省內(nèi)存的各種技巧。
  2. 其次,是如何在這些 GPU 之間盡可能高效地傳遞模型狀態(tài)信息(state)。
  3. 最后,是如何在遇到硬件或軟件故障時(shí),盡可能迅速地恢復(fù)系統(tǒng)。

01 如何將盡可能大的神經(jīng)網(wǎng)絡(luò)和 batch-size 適配到那 10000 張 H100s 上

1.1 并行策略

  1. 在數(shù)據(jù)批次(batches)上進(jìn)行并行處理(數(shù)據(jù)并行(data parallel))
  2. 在神經(jīng)網(wǎng)絡(luò)層上進(jìn)行并行處理(比如,將一層神經(jīng)網(wǎng)絡(luò)層分布到多個(gè) GPU 上進(jìn)行計(jì)算)
  3. 對(duì)神經(jīng)網(wǎng)絡(luò)的不同模型層進(jìn)行分割,以便它們能夠在不同的 GPU 上運(yùn)行(比如,前 N 層運(yùn)行在 GPU1 上,第 N+1 層到第 N+10 層運(yùn)行在 GPU2 上)

持續(xù)優(yōu)化并行策略,直到所有 GPU 都能被高效利用,達(dá)到最高利用率。

1.2 Checkpointing / Compute vs memorize

  • 在執(zhí)行前向傳播時(shí),需要保存一些中間結(jié)果以便后續(xù)計(jì)算反向傳播(save_for_backward)。然而,當(dāng)神經(jīng)網(wǎng)絡(luò)規(guī)模非常大時(shí),為了處理更大的數(shù)據(jù)批次,更有效的方法是釋放這些中間結(jié)果,待到需要計(jì)算反向傳播時(shí)再重新計(jì)算。
  • 類(lèi)似 FSDP 這樣的技術(shù),通過(guò)在單個(gè) GPU 上只保留模型的分片來(lái)節(jié)省內(nèi)存。當(dāng)需要其他權(quán)重時(shí),會(huì)從其他 GPU 聚合模型的完整權(quán)重。

02 盡可能高效地在 GPU 集群間傳遞模型狀態(tài)信息

2.1 Communication overlap 策略:

在需要 GPU 間通信時(shí),應(yīng)盡可能早地啟動(dòng)通信過(guò)程:

  • 例如,當(dāng)?shù)?N 層完成反向傳播后,在第 N-1 層還在進(jìn)行反向傳播計(jì)算時(shí),負(fù)責(zé)第 N 層的所有 GPU 可以同時(shí)開(kāi)始執(zhí)行梯度全歸約操作。

2.2 探索并利用網(wǎng)絡(luò)底層拓?fù)浣Y(jié)構(gòu):

在多個(gè)計(jì)算節(jié)點(diǎn)間傳遞大量模型狀態(tài)信息(如梯度、優(yōu)化器狀態(tài)信息)是一項(xiàng)復(fù)雜的任務(wù)。在使用 Sync SGD 時(shí),需要盡可能快地集中傳輸這些狀態(tài)信息。

網(wǎng)絡(luò)中可能包含多層交換機(jī),并具備 RDMA 能力(可以直接將 GPU 內(nèi)存中的數(shù)據(jù)復(fù)制到網(wǎng)卡,完全繞過(guò) CPU 內(nèi)存),同時(shí)擁有前端和后端網(wǎng)卡(前端網(wǎng)卡連接到如 NFS 之類(lèi)的存儲(chǔ)系統(tǒng),后端網(wǎng)卡則將 GPU 連接到集群中的其他 GPU)。

因此,在執(zhí)行 all-reduce 或 scatter/gather 等通信操作時(shí),充分利用這些網(wǎng)絡(luò)信息至關(guān)重要。例如,通過(guò)樹(shù)形歸約算法(tree-reduce),all-reduce 操作的時(shí)間復(fù)雜度可以降低到O(log(n));同時(shí),網(wǎng)絡(luò)光纖連接節(jié)點(diǎn)間的不同類(lèi)型光纖對(duì)常數(shù)因子的影響,對(duì)于減少整體延遲時(shí)間也是非常重要的。

像 NCCL 這樣的庫(kù)能夠智能地識(shí)別底層網(wǎng)絡(luò)拓?fù)洌⒃趫?zhí)行 all-reduce 和其他通信操作時(shí)加以利用。

在這樣的大規(guī)模計(jì)算中,我們還必須調(diào)整交換機(jī)和網(wǎng)卡中的數(shù)據(jù)包路由算法,以實(shí)現(xiàn)有效的負(fù)載均衡。交換機(jī)也需要大量的 HBM 內(nèi)存(不僅僅是 GPU 需要),因?yàn)楫?dāng)數(shù)據(jù)包排隊(duì)等待時(shí),需要在某個(gè)地方排隊(duì)而不會(huì)被丟棄——這就是交換機(jī)級(jí)別的 HBM 內(nèi)存。

03 如何在遇到硬件或軟件故障時(shí),盡可能迅速地恢復(fù)系統(tǒng)?

故障是不可避免的,涉及GPU、網(wǎng)卡、電纜等多種硬件。有些故障能夠迅速被發(fā)現(xiàn),而有些則可能因?yàn)槟硞€(gè)節(jié)點(diǎn)沒(méi)有按時(shí)響應(yīng)(比如 NCCL 的 all-reduce 操作卡住了)才被察覺(jué)。我們開(kāi)發(fā)了多種工具來(lái)監(jiān)控機(jī)群的健康狀況,并盡可能快地將故障節(jié)點(diǎn)從機(jī)群中移除。這可不是一件容易的事。

在這種規(guī)模下,內(nèi)存位隨機(jī)翻轉(zhuǎn)導(dǎo)致的隱性數(shù)據(jù)損壞概率增加,可能導(dǎo)致訓(xùn)練 loss 值異常升高。雖然這種問(wèn)題在小規(guī)模系統(tǒng)中很少見(jiàn),但在大規(guī)模系統(tǒng)中則可能頻繁發(fā)生。在軟件層面提前檢測(cè)這種問(wèn)題非常困難。一些硬件設(shè)備配備了內(nèi)置校驗(yàn)和的電路,可以在計(jì)算后進(jìn)行校驗(yàn) —— 這樣,一旦發(fā)生位翻轉(zhuǎn),硬件就能觸發(fā)中斷。但 H100 和之前的 NVIDIA GPU 都不具備這一功能。

為了應(yīng)對(duì)這些故障,我們需要盡可能頻繁且迅速地保存模型狀態(tài)信息;一旦發(fā)生故障,我們也要能夠迅速恢復(fù)并繼續(xù)訓(xùn)練。通常,我們會(huì)迅速將模型狀態(tài)信息另存到 CPU 內(nèi)存的一個(gè)獨(dú)立線程中,并在后臺(tái)將數(shù)據(jù)從 CPU 內(nèi)存寫(xiě)入到磁盤(pán)或遠(yuǎn)程存儲(chǔ)系統(tǒng)。我們還以分片的形式保存模型狀態(tài)信息(利用了 torch.distributed 的 checkpointing 功能),也就是說(shuō),不是每個(gè) GPU 都需要保存完整的模型權(quán)重;每個(gè) GPU 只需保存一部分權(quán)重 —— 其余部分可以通過(guò)其他 GPU 的分片 checkpoints 來(lái)恢復(fù)。

Thanks for reading!

Hope you have enjoyed and learned new things from this blog!

About the authors

Soumith Chintala

Cofounded and lead?@PyTorch?at Meta. Also dabble in robotics at NYU. AI is delicious when it is accessible and open-source.

END

本期互動(dòng)內(nèi)容 ??

?還記得你第一次配置分布式訓(xùn)練環(huán)境時(shí)的經(jīng)歷嗎?有什么想對(duì)新手說(shuō)的建議?

原文鏈接:

https://soumith.ch/blog/2024-10-02-training-10k-scale.md.html

?著作權(quán)歸作者所有,如需轉(zhuǎn)載,請(qǐng)注明出處,否則將追究法律責(zé)任
標(biāo)簽
收藏
回復(fù)
舉報(bào)
回復(fù)
相關(guān)推薦
主站蜘蛛池模板: 国内自拍偷拍视频 | 国产成人jvid在线播放 | 又黄又爽的网站 | 99re66在线观看精品热 | 亚洲一区二区三区免费在线观看 | 精品一区二区三区在线观看国产 | 日日射影院 | 91久久精品国产91久久性色tv | 91av在线看| 国产精品国产a级 | 亚洲高清视频一区二区 | 国产精品久久影院 | 中文字幕av第一页 | 看av片网站| 亚洲国产精品成人综合久久久 | 午夜免费视频 | 国产精品一区2区 | 美女久久 | 精品久久香蕉国产线看观看亚洲 | 欧美不卡一区二区三区 | 日韩欧美中文字幕在线观看 | 精品国产亚洲一区二区三区大结局 | 欧美在线视频网站 | 精品视频免费 | 国产精品久久久久久久久久久久冷 | 国产在线一区二区三区 | 日日日日日日bbbbb视频 | 国产粉嫩尤物极品99综合精品 | 欧美国产日韩在线观看 | 免费在线看黄视频 | 久久免费精品 | 99re在线 | 亚洲欧美国产精品一区二区 | 精品久久久网站 | 日韩羞羞 | 日韩不卡在线 | 日本成人久久 | 中文字幕精品一区二区三区精品 | 91精品国产自产在线老师啪 | 精品av | 国产一区三区在线 |