贛州網(wǎng)站制作培訓(xùn)百度一下免費(fèi)下載
第8章 分布式訓(xùn)練
8.1 為什么分布式訓(xùn)練越來(lái)越流行
近年來(lái),模型規(guī)模越來(lái)越大,對(duì)硬件(算力、內(nèi)存)的發(fā)展提出要求。因?yàn)閮?nèi)存墻的存在,單一設(shè)持續(xù)提高芯片的集成越來(lái)越困難,難以跟上模型擴(kuò)大的需求。
為了解決算力增速不足的問(wèn)題,人們考慮用多節(jié)點(diǎn)集群進(jìn)行分布式訓(xùn)練,以提升算力。
8.2 常見(jiàn)的并行策略
分為“數(shù)據(jù)并行”和“模型并行”。
8.2.1 數(shù)據(jù)并行
數(shù)據(jù)并行,需要對(duì)各個(gè)設(shè)備上的梯度進(jìn)行AllReduce,以確保各個(gè)設(shè)備上的模型始終保持一致。 當(dāng)數(shù)據(jù)集較大,模型較小時(shí),由于反向過(guò)程中為同步梯度產(chǎn)生的通信代價(jià)較小,此時(shí)選擇數(shù)據(jù)并行一般比較有優(yōu)勢(shì),傳統(tǒng)的模型,如 ResNet50,比較適合采用數(shù)據(jù)并行。
8.2.2 模型并行
當(dāng)神經(jīng)網(wǎng)絡(luò)非常巨大,數(shù)據(jù)并行同步梯度的代價(jià)就會(huì)很大,甚至網(wǎng)絡(luò)可能巨大到無(wú)法存放到單一計(jì)算設(shè)備中,這時(shí)候,可以采用模型并行策略解決問(wèn)題。 所謂的模型并行,就是每個(gè)設(shè)備上的數(shù)據(jù)是完整的、一致的,而模型被切分到了各個(gè)設(shè)備上,每個(gè)設(shè)備只擁有模型的一部分,所有計(jì)算設(shè)備上的模型拼在一起,才是完整的模型。
模型并行的好處是,省去了多個(gè)設(shè)備之間的梯度 AllReduce;但是,由于每個(gè)設(shè)備都需要完整的數(shù)據(jù)輸入,因此,數(shù)據(jù)會(huì)在多個(gè)設(shè)備之間進(jìn)行廣播,產(chǎn)生通信代價(jià)(這里指數(shù)據(jù)不會(huì)復(fù)制多份而是通過(guò)廣播來(lái)傳遞輸入數(shù)據(jù))。參數(shù)量較大的語(yǔ)言模型,如 BERT,常采用模型并行。
8.2.3 流水并行
當(dāng)神經(jīng)網(wǎng)絡(luò)過(guò)于巨大,無(wú)法在一個(gè)設(shè)備上存放時(shí),除了上述的模型并行的策略外,還可以選擇流水并行。 流水并行指將網(wǎng)絡(luò)切為多個(gè)階段,并分發(fā)到不同的計(jì)算設(shè)備上,各個(gè)計(jì)算設(shè)備之間以“接力”的方式完成訓(xùn)練。
8.2.4 混合并行
網(wǎng)絡(luò)的訓(xùn)練中,也可以將多種并行策略混用,以 GPT-3 為例,以下是它訓(xùn)練時(shí)的設(shè)備并行方案: 它首先被分為 64 個(gè)階段,進(jìn)行流水并行。每個(gè)階段都運(yùn)行在 6 臺(tái) DGX-A100 主機(jī)上。在6臺(tái)主機(jī)之間,進(jìn)行的是數(shù)據(jù)并行訓(xùn)練;每臺(tái)主機(jī)有 8 張 GPU 顯卡,同一臺(tái)機(jī)器上的8張 GPU 顯卡之間是進(jìn)行模型并行訓(xùn)練。
并行策略的選擇影響著訓(xùn)練效率,框架對(duì)并行訓(xùn)練的接口支持程度,決定了算法工程師的開發(fā)效率。
覺(jué)得有用的話,給個(gè)一鍵三連哦,歡迎關(guān)注無(wú)神一起學(xué)AI!