訓(xùn)大模型講究「化勁」!陶大程帶隊(duì):一文打盡「高效訓(xùn)練」方案,別再說(shuō)硬件是唯一瓶頸
深度學(xué)習(xí)領(lǐng)域已經(jīng)取得了階段性重大進(jìn)展,特別是在計(jì)算機(jī)視覺(jué)、自然語(yǔ)言處理和語(yǔ)音等方面,使用大數(shù)據(jù)訓(xùn)練得到的大規(guī)模模型對(duì)于實(shí)際應(yīng)用、提高工業(yè)生產(chǎn)力和促進(jìn)社會(huì)發(fā)展具有巨大的前景。
不過(guò)大模型也需要大算力才能訓(xùn)得動(dòng),隨著人們對(duì)計(jì)算能力要求的不斷提高,盡管已有許多研究探索高效的訓(xùn)練方法,但仍然沒(méi)有對(duì)深度學(xué)習(xí)模型加速技術(shù)的全面綜述。
最近,來(lái)自悉尼大學(xué)、中國(guó)科學(xué)技術(shù)大學(xué)等機(jī)構(gòu)的研究人員發(fā)布了一篇綜述,全面總結(jié)了大規(guī)模深度學(xué)習(xí)模型的高效訓(xùn)練技術(shù),展現(xiàn)了訓(xùn)練過(guò)程中的各個(gè)組件內(nèi)的通用機(jī)制。
論文鏈接:https://arxiv.org/pdf/2304.03589.pdf
研究人員考慮了最基本的權(quán)重更新公式,并將其基本組成部分劃分為五個(gè)主要方面:
1、以數(shù)據(jù)為中心(data-centric),包括數(shù)據(jù)集正則化、數(shù)據(jù)采樣和以數(shù)據(jù)為中心的課程學(xué)習(xí)技術(shù),可以顯著降低數(shù)據(jù)樣本的計(jì)算復(fù)雜性;
2、以模型為中心(model-centric),包括基本模塊的加速、壓縮訓(xùn)練、模型初始化和以模型為中心的課程學(xué)習(xí)技術(shù),側(cè)重于通過(guò)減少參數(shù)計(jì)算來(lái)加速訓(xùn)練;
3、以優(yōu)化為中心(optimization-centric),包括學(xué)習(xí)率的選擇、使用大batch size、高效目標(biāo)函數(shù)的設(shè)計(jì)、模型加權(quán)平均技術(shù)等;側(cè)重于訓(xùn)練策略以提高大規(guī)模模型的通用性;
4、預(yù)算訓(xùn)練(budgeted training),包括一些在硬件受限的情況下使用的加速技術(shù);
5、以系統(tǒng)為中心(system-centric),包括一些高效的分布式框架和開(kāi)源庫(kù),為加速算法的實(shí)現(xiàn)提供足夠的硬件支持。
以數(shù)據(jù)為中心的高效訓(xùn)練
最近,大規(guī)模模型的進(jìn)展大放異彩,而其對(duì)數(shù)據(jù)集的要求卻急劇增加。巨大的數(shù)據(jù)樣本被用來(lái)驅(qū)動(dòng)訓(xùn)練過(guò)程并取得出色的性能。因此,以數(shù)據(jù)為中心的研究對(duì)實(shí)際加速至關(guān)重要。
數(shù)據(jù)處理(data processing)的基本作用是在不額外增加標(biāo)注成本的情況下,高效地增加數(shù)據(jù)樣本的多樣性;由于數(shù)據(jù)標(biāo)注的成本往往過(guò)于昂貴,部分開(kāi)發(fā)機(jī)構(gòu)無(wú)法負(fù)擔(dān),也凸顯了以數(shù)據(jù)為中心領(lǐng)域的研究的重要性;同時(shí),數(shù)據(jù)處理還注重提高數(shù)據(jù)樣本的并行加載效率。
研究人員將所有這些對(duì)數(shù)據(jù)的高效處理稱為「以數(shù)據(jù)為中心」(data-centric)的方法,可以顯著提高訓(xùn)練大規(guī)模模型的性能。
文中從以下幾個(gè)方面回顧和研究技術(shù):
數(shù)據(jù)正則化 Data Regularization
數(shù)據(jù)正則化是一種預(yù)處理技術(shù),通過(guò)一系列的數(shù)據(jù)變換來(lái)增強(qiáng)原始數(shù)據(jù)樣本的多樣性,可以提高訓(xùn)練樣本在特征空間中的等效表示,不需要額外的標(biāo)簽信息的要求。
高效的數(shù)據(jù)正則化方法在訓(xùn)練過(guò)程中被廣泛使用,能夠顯著提高大規(guī)模模型的泛化性能。
數(shù)據(jù)采樣 Data sampling
數(shù)據(jù)采樣也是一種有效的方法,從大批量的樣本中選擇一個(gè)子集來(lái)對(duì)梯度進(jìn)行更新,它的好處是以小批量的訓(xùn)練的方式,可以減少當(dāng)前批次中那些不重要的或不好樣本的影響。
通常情況下,采樣出來(lái)的數(shù)據(jù)是更重要的,性能與使用全批次訓(xùn)練得到的模型相當(dāng);每次迭代的概率需要隨著訓(xùn)練過(guò)程逐漸調(diào)整,以確保采樣沒(méi)有偏差。
以數(shù)據(jù)為中心的課程學(xué)習(xí) Data-centric Curriculum Learning
課程學(xué)習(xí)在訓(xùn)練過(guò)程的不同階段研究漸進(jìn)的訓(xùn)練設(shè)置,以減少整體的計(jì)算成本。
在開(kāi)始的時(shí)候,使用低質(zhì)量的數(shù)據(jù)集訓(xùn)練足以學(xué)習(xí)低層次的特征;然后使用高質(zhì)量的數(shù)據(jù)集(更多的增強(qiáng)和復(fù)雜的預(yù)處理方法)逐漸幫助學(xué)習(xí)復(fù)雜的特征,并達(dá)到與使用整個(gè)訓(xùn)練集相同的精度。
以模型為中心的高效訓(xùn)練
設(shè)計(jì)高效的模型架構(gòu)始終是深度學(xué)習(xí)領(lǐng)域最重要的研究之一,一個(gè)優(yōu)秀的模型應(yīng)當(dāng)是一個(gè)高效的特征提取器,可以投射到容易分離的高級(jí)特征中。
與其他特別關(guān)注高效、新穎的模型架構(gòu)的工作不同,這篇論文在「以模型為中心」的研究中更加關(guān)注通用模塊的等價(jià)替代方案,在具有可比性的情況下實(shí)現(xiàn)更高的訓(xùn)練效率。
幾乎所有的大型模型都是由小模塊或?qū)咏M成的,所以對(duì)模型的調(diào)研可以為高效訓(xùn)練大規(guī)模模型提供指導(dǎo)作用,研究人員主要從以下幾個(gè)方面研究:
架構(gòu)效率 Architecture Efficiency
隨著深度模型中參數(shù)量的急劇增加,也帶來(lái)了巨大的計(jì)算消耗,所以需要實(shí)現(xiàn)一個(gè)高效的替代方案來(lái)近似原始版本的模型架構(gòu)的性能,這個(gè)方向也逐漸受到學(xué)術(shù)界的重視;這種替換不僅僅是數(shù)值計(jì)算的近似,還包括深度模型中的結(jié)構(gòu)簡(jiǎn)化和融合。
研究人員根據(jù)不同的架構(gòu)來(lái)區(qū)分現(xiàn)有的加速技術(shù),并展示了一些觀察和結(jié)論。
壓縮訓(xùn)練效率 Compression Training Efficiency
壓縮一直是計(jì)算加速的研究方向之一,在數(shù)字信號(hào)處理(多媒體計(jì)算/圖像處理)中起著關(guān)鍵作用。
傳統(tǒng)的壓縮包括兩個(gè)主要分支:量化和稀疏,文中詳細(xì)說(shuō)明了二者現(xiàn)有的成就和對(duì)深度訓(xùn)練的貢獻(xiàn)。
初始化效率 Initialization Efficiency
模型參數(shù)的初始化在現(xiàn)有的理論分析和實(shí)際場(chǎng)景中都是一個(gè)非常重要的因素。
一個(gè)不好的初始化狀態(tài)甚至?xí)?dǎo)致整個(gè)訓(xùn)練在早期的訓(xùn)練階段崩潰和停滯,而一個(gè)好的初始化狀態(tài)則有助于在一個(gè)平滑的損失范圍內(nèi)加快整個(gè)收斂的速度,文中主要從模型初始化的角度研究評(píng)估和算法設(shè)計(jì)。
以模型為中心的課程學(xué)習(xí) Model-centric Curriculum Learning
從以模型為中心的角度來(lái)看,課程學(xué)習(xí)通常從大規(guī)模模型中的一個(gè)小模型或部分參數(shù)開(kāi)始訓(xùn)練,然后逐漸恢復(fù)到整個(gè)架構(gòu);在加速訓(xùn)練過(guò)程中顯示了較大優(yōu)勢(shì),并且沒(méi)有明顯的負(fù)面效應(yīng),文中回顧了該方法在訓(xùn)練過(guò)程中的實(shí)現(xiàn)和效率。
以優(yōu)化為中心的高效學(xué)習(xí)
優(yōu)化方法的加速方案一直是機(jī)器學(xué)習(xí)領(lǐng)域的一個(gè)重要研究方向,在實(shí)現(xiàn)最優(yōu)條件的同時(shí)降低復(fù)雜性一直是學(xué)術(shù)界追求的目標(biāo)。
近年來(lái),高效、強(qiáng)大的優(yōu)化方法在訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)方面取得了重要突破,作為機(jī)器學(xué)習(xí)中廣泛使用的基本優(yōu)化器,SGD類的優(yōu)化器成功地幫助深度模型實(shí)現(xiàn)各種實(shí)際應(yīng)用,不過(guò)隨著問(wèn)題的日益復(fù)雜,SGD更容易陷入局部最小值,無(wú)法穩(wěn)定地泛化。
為了解決這些困難,Adam及其變種被提出來(lái),在更新上引入自適應(yīng)性,這種做法在大規(guī)模的網(wǎng)絡(luò)訓(xùn)練中取得了良好的效果,例如在BERT、Transformer和ViT模型中都有應(yīng)用。
除了所設(shè)計(jì)的優(yōu)化器的自身性能外,對(duì)加速訓(xùn)練技術(shù)的組合也很重要。
研究人員基于優(yōu)化的角度,將目前對(duì)加速訓(xùn)練的思考總結(jié)為以下幾個(gè)方面:
學(xué)習(xí)率 Learning rate
學(xué)習(xí)率是非凸優(yōu)化的一個(gè)重要的超參數(shù),在當(dāng)前的深度網(wǎng)絡(luò)訓(xùn)練中也是至關(guān)重要的,像Adam及其變種這樣的自適應(yīng)方法,已經(jīng)成功地在深度模型上取得了卓越的進(jìn)展。
一些基于高階梯度的調(diào)整學(xué)習(xí)率的策略也有效地實(shí)現(xiàn)了加速訓(xùn)練,學(xué)習(xí)率衰減的實(shí)現(xiàn)也會(huì)影響到訓(xùn)練過(guò)程中的性能。
大批尺寸 Large batchsize
采用更大的批處理量將有效地提高訓(xùn)練效率,能夠直接減少完成一個(gè)epoch訓(xùn)練所需的迭代次數(shù);在樣本總量固定的情況下,處理一個(gè)更大的批尺寸比處理多個(gè)小批尺寸的樣本來(lái)說(shuō)消耗更低,因?yàn)榭梢蕴岣邇?nèi)存利用率和降低通信瓶頸。
高效的目標(biāo) Efficient objective
最基礎(chǔ)的ERM在最小化問(wèn)題上起到關(guān)鍵作用,使得許多任務(wù)得以實(shí)際運(yùn)用。
隨著對(duì)大型網(wǎng)絡(luò)研究的深入,一些作品更加關(guān)注優(yōu)化和泛化之間的差距,并提出有效的目標(biāo)以減少測(cè)試誤差;從不同的角度解釋泛化的重要性,并在訓(xùn)練中對(duì)其進(jìn)行聯(lián)合優(yōu)化,可以大大加快測(cè)試的準(zhǔn)確性。
加權(quán)平均 Averaged weights
加權(quán)平均是一種實(shí)用的技術(shù),可以增強(qiáng)模型的通用性,因?yàn)榭紤]的是歷史狀態(tài)的加權(quán)平均,有一組凍結(jié)的或可學(xué)習(xí)的系數(shù),可以大大加快訓(xùn)練進(jìn)程。
預(yù)算化高效訓(xùn)練
最近有幾項(xiàng)工作專注于用較少的資源訓(xùn)練深度學(xué)習(xí)模型,并且盡可能地實(shí)現(xiàn)更高的精度。
這類問(wèn)題被定義為預(yù)算訓(xùn)練(budgeted training),即在給定的預(yù)算(對(duì)可測(cè)量成本的限制)下進(jìn)行訓(xùn)練,以實(shí)現(xiàn)最高的模型性能。
為了系統(tǒng)地考慮硬件支持以接近真實(shí)情況,研究人員將預(yù)算訓(xùn)練定義為在給定的設(shè)備和有限的時(shí)間內(nèi)進(jìn)行訓(xùn)練,例如,在單個(gè)低端深度學(xué)習(xí)服務(wù)器上訓(xùn)練一天,以獲得具有最佳性能的模型。
對(duì)預(yù)算內(nèi)訓(xùn)練的研究可以闡明如何制作預(yù)算內(nèi)訓(xùn)練的訓(xùn)練配方,包括決定模型大小、模型結(jié)構(gòu)、學(xué)習(xí)率安排和其他幾個(gè)影響性能的可調(diào)整因素的配置,以及結(jié)合適合可用預(yù)算的高效訓(xùn)練技術(shù),文中主要回顧了預(yù)算訓(xùn)練的幾項(xiàng)先進(jìn)技術(shù)。
以系統(tǒng)為中心的高效訓(xùn)練
以系統(tǒng)為中心的研究就是為所設(shè)計(jì)的算法提供具體的實(shí)現(xiàn)方法,研究的是能夠真正實(shí)現(xiàn)高效訓(xùn)練的硬件的有效和實(shí)際執(zhí)行。
研究人員重點(diǎn)關(guān)注通用計(jì)算設(shè)備的實(shí)現(xiàn),例如多節(jié)點(diǎn)集群中的CPU和GPU設(shè)備,從硬件的角度解決設(shè)計(jì)算法中的潛在沖突是關(guān)注的核心。
文中主要回顧了現(xiàn)有框架和第三方庫(kù)中的硬件實(shí)現(xiàn)技術(shù),這些技術(shù)有效地支持了數(shù)據(jù)、模型和優(yōu)化的處理,并介紹一些現(xiàn)有的開(kāi)源平臺(tái),為模型的建立、有效利用數(shù)據(jù)進(jìn)行訓(xùn)練、混合精度訓(xùn)練和分布式訓(xùn)練提供了堅(jiān)實(shí)的框架。
以系統(tǒng)為中心的數(shù)據(jù)效率 System-centric Data Efficiency
高效的數(shù)據(jù)處理和數(shù)據(jù)并行是系統(tǒng)實(shí)現(xiàn)中的兩個(gè)重要關(guān)注點(diǎn)。
隨著數(shù)據(jù)量的快速增加,低效的數(shù)據(jù)處理逐漸成為訓(xùn)練效率的瓶頸,尤其是在多節(jié)點(diǎn)上的大規(guī)模訓(xùn)練,設(shè)計(jì)更多對(duì)硬件友好的計(jì)算方法和并行化可以有效避免訓(xùn)練中的時(shí)間浪費(fèi)。
以系統(tǒng)為中心的模型效率 System-centric Model Efficiency
隨著模型參數(shù)數(shù)量的急劇擴(kuò)大,從模型角度看,系統(tǒng)效率已經(jīng)成為重要的瓶頸之一,大規(guī)模模型的存儲(chǔ)和計(jì)算效率給硬件實(shí)現(xiàn)帶來(lái)巨大挑戰(zhàn)。
文中主要回顧如何實(shí)現(xiàn)部署的高效I/O和模型并行的精簡(jiǎn)實(shí)現(xiàn),以加快實(shí)際訓(xùn)練的速度。
以系統(tǒng)為中心的優(yōu)化效率 System-centric Optimization Efficiency
優(yōu)化過(guò)程代表了每個(gè)迭代中的反向傳播和更新,也是訓(xùn)練中最耗時(shí)的計(jì)算,因此以系統(tǒng)為中心的優(yōu)化的實(shí)現(xiàn)直接決定了訓(xùn)練的效率。
為了清楚地解讀系統(tǒng)優(yōu)化的特點(diǎn),文中重點(diǎn)關(guān)注不同計(jì)算階段的效率,并回顧每個(gè)過(guò)程的改進(jìn)。
開(kāi)源框架 Open Source Frameworks
高效的開(kāi)源框架可以促進(jìn)訓(xùn)練,作為嫁接(grafting)算法設(shè)計(jì)和硬件支持的橋梁,研究人員調(diào)查了一系列開(kāi)源框架,并分析了每個(gè)設(shè)計(jì)的優(yōu)勢(shì)和劣勢(shì)。
結(jié)論
研究人員回顧了有效訓(xùn)練大規(guī)模深度學(xué)習(xí)模型的通用訓(xùn)練加速技術(shù),考慮了梯度更新公式中的所有組件,涵蓋了深度學(xué)習(xí)領(lǐng)域的整個(gè)訓(xùn)練過(guò)程。
文中還提出了一個(gè)新穎的分類法,將這些技術(shù)總結(jié)歸類為五個(gè)主要方向:以數(shù)據(jù)為中心、以模型為中心、以優(yōu)化為中心、預(yù)算訓(xùn)練和以系統(tǒng)為中心。
前四部分主要從算法設(shè)計(jì)和方法論的角度進(jìn)行綜合研究,而在「以系統(tǒng)為中心的高效訓(xùn)練」部分,從范式創(chuàng)新和硬件支持的角度總結(jié)了實(shí)際實(shí)現(xiàn)情況。
文中回顧并總結(jié)了與每個(gè)部分相對(duì)應(yīng)的常用或最新開(kāi)發(fā)的技術(shù),每項(xiàng)技術(shù)的優(yōu)勢(shì)和權(quán)衡,并討論局限性和有前景的未來(lái)研究方向;在提供全面的技術(shù)回顧和指導(dǎo)的同時(shí),這篇綜述還提出了當(dāng)前高效訓(xùn)練的突破口和瓶頸。
研究人員希望能幫助研究人員高效地實(shí)現(xiàn)通用的訓(xùn)練加速,并為高效訓(xùn)練的未來(lái)發(fā)展提供一些有意義和有前景的影響;除了在每一節(jié)末尾提到的一些潛在的進(jìn)展之外,更廣泛的、有前景的觀點(diǎn)如下:
1、 高效的Profile搜索
高效訓(xùn)練可以從數(shù)據(jù)增強(qiáng)組合、模型結(jié)構(gòu)、優(yōu)化器設(shè)計(jì)等角度出發(fā),為模型設(shè)計(jì)預(yù)建的和可定制的profile搜索策略,相關(guān)研究已經(jīng)取得了一些進(jìn)展。
新的模型架構(gòu)和壓縮模式、新的預(yù)訓(xùn)練任務(wù)、對(duì)「模型邊緣」(model-edge)知識(shí)的利用同樣值得探索。
2、自適應(yīng)調(diào)度器 Adaptive Scheduler
使用一個(gè)面向優(yōu)化的調(diào)度器,如課程學(xué)習(xí)、學(xué)習(xí)速率和批次大小以及模型的復(fù)雜性,有可能實(shí)現(xiàn)更好的性能;Budget-aware調(diào)度器可以動(dòng)態(tài)適應(yīng)剩余預(yù)算,降低人工設(shè)計(jì)的成本;自適應(yīng)調(diào)度器可以用來(lái)探索并行性和通信方法,同時(shí)考慮到更通用且實(shí)際的情況,例如在跨越多地區(qū)和數(shù)據(jù)中心的異構(gòu)網(wǎng)絡(luò)中進(jìn)行大規(guī)模去中心化訓(xùn)練。