本發(fā)明屬于自然語言處理,涉及大語言模型微調(diào)方法,尤其涉及針對異構(gòu)gpu顯卡的大語言模型分布式流水并行微調(diào)方法。
背景技術(shù):
1、在自然語言處理領(lǐng)域,大語言模型(llm)的微調(diào)是一項關(guān)鍵任務(wù),旨在將預(yù)訓(xùn)練的通用模型適應(yīng)到特定任務(wù)或領(lǐng)域。傳統(tǒng)的全量微調(diào)方法在微調(diào)過程中更新所有模型參數(shù),但由于llm模型的巨大參數(shù)量和微調(diào)任務(wù)的特殊性,這種方法顯得笨重且計算資源密集。因此,針對微調(diào)過程中的gpu內(nèi)存和計算優(yōu)化問題,特別是針對參數(shù)高效的微調(diào)技術(shù)的挑戰(zhàn),成為當(dāng)前研究的焦點。
2、現(xiàn)有的微調(diào)方法,如lora技術(shù),提供了一種參數(shù)高效的微調(diào)方式,通過僅調(diào)整部分參數(shù)來實現(xiàn)模型的專業(yè)化和領(lǐng)域化,從而在保持微調(diào)效果的同時降低了計算資源的需求。然而,面對多任務(wù)微調(diào)時,特別是在大規(guī)模llm模型上,仍然存在一系列挑戰(zhàn),包括如何有效地分配和利用計算資源,以及如何通過動態(tài)任務(wù)調(diào)度和分布式計算優(yōu)化算法提高整體訓(xùn)練和微調(diào)過程的效率。
3、目前已有一些關(guān)于llm微調(diào)優(yōu)化的研究,如s-lora等系統(tǒng)。s-lora是一個致力于優(yōu)化llm服務(wù)場景下效率的系統(tǒng),其核心思想是使用異構(gòu)批處理來批量處理不同的lora適配器,結(jié)合高效管理kv緩存等方法來提高系統(tǒng)吞吐量。該系統(tǒng)通過共享一個預(yù)訓(xùn)練模型,在服務(wù)眾多l(xiāng)ora適配器時有效地管理計算資源。s-lora系統(tǒng)主要關(guān)注于llm在服務(wù)場景下的效率,通過批處理和資源管理來優(yōu)化系統(tǒng)吞吐量,并沒有充分考慮微調(diào)過程中的訓(xùn)練場景,特別是在多任務(wù)微調(diào)和大模型微調(diào)的情況下,其性能仍有待進(jìn)一步提升。
4、因此,目前大語言模型微調(diào)技術(shù)主要存在以下問題:(1)未充分考慮到多任務(wù)微調(diào)的復(fù)雜性,或者缺乏高效的任務(wù)調(diào)度算法和資源分配策略,導(dǎo)致在資源分配和任務(wù)調(diào)度方面缺乏靈活性和智能性;(2)由于缺乏動態(tài)資源分配和任務(wù)調(diào)度機(jī)制,或者由于硬件配置不匹配,導(dǎo)致部分gpu可能處于空閑狀態(tài),而其他gpu過載,未能有效地解決多gpu環(huán)境中計算資源利用不均衡的問題;(3)未能設(shè)計出適用于多gpu環(huán)境的高效模型同步策略,或者未對模型收斂速度進(jìn)行充分優(yōu)化,可能導(dǎo)致模型在不同gpu上的收斂不一致,影響微調(diào)的效果。
技術(shù)實現(xiàn)思路
1、本發(fā)明的目的在于針對現(xiàn)有技術(shù)中的不足,提供一種針對異構(gòu)gpu顯卡的大語言模型分布式流水并行微調(diào)方法,在提高大規(guī)模預(yù)訓(xùn)練語言模型在特定任務(wù)上微調(diào)的效率和效果,同時最大化計算資源的利用率,減少訓(xùn)練成本。
2、本發(fā)明的發(fā)明思路為:(1)對于單卡環(huán)境下的多l(xiāng)ora任務(wù)微調(diào):開發(fā)更高效的梯度下降方法和任務(wù)調(diào)度策略,以最大化單個gpu的利用率,提高任務(wù)吞吐率和流轉(zhuǎn)率;優(yōu)化模型微調(diào)過程,充分利用gpu的內(nèi)存和計算能力,提高訓(xùn)練速度和模型性能;(2)對于多機(jī)多卡環(huán)境下的lora模型并行化微調(diào):設(shè)計高效的模型切分和向量并行技術(shù),充分利用多個gpu的計算能力和內(nèi)存大小,以實現(xiàn)高效的并行微調(diào);解決流水線并行中的計算負(fù)載平衡和通信開銷問題,設(shè)計新的重疊計算與通信策略,以提高訓(xùn)練效率并保證模型收斂性;(3)本發(fā)明還提出了兩種多l(xiāng)ora微調(diào)任務(wù)的調(diào)度優(yōu)化算法:①提前結(jié)束估算算法,開發(fā)準(zhǔn)確的任務(wù)提前結(jié)束估算算法,以預(yù)測任務(wù)的執(zhí)行時間并提前釋放gpu資源,提高系統(tǒng)的整體吞吐率;②任務(wù)調(diào)度優(yōu)化算法:設(shè)計高效的任務(wù)調(diào)度算法,優(yōu)化多任務(wù)執(zhí)行中的batch?fusion策略,減少計算過程中的空閑時間,確保資源的高效利用和公平管理。
3、本發(fā)明提供的針對異構(gòu)gpu顯卡的大語言模型分布式流水并行微調(diào)方法,基于多任務(wù)微調(diào)系統(tǒng)同時對多個lora模型實現(xiàn)微調(diào);每個lora模型切分為多個部分,分布在相應(yīng)數(shù)量的gpu上,并對gpu進(jìn)行排序;所述多任務(wù)微調(diào)系統(tǒng)包括任務(wù)配置模塊、分析器、任務(wù)動態(tài)調(diào)度器和分布在多個gpu上的多任務(wù)訓(xùn)練模塊;每個多任務(wù)訓(xùn)練模塊用于實現(xiàn)對lora模型的相應(yīng)部分微調(diào);
4、所述大語言模型分布式流水并行微調(diào)方法包括以下步驟:
5、s1依據(jù)用戶請求,通過所述任務(wù)配置模塊生成多個任務(wù),并將每個任務(wù)劃分為若干訓(xùn)練批次;
6、s2通過分析器為每個任務(wù)配置超參數(shù);
7、s3按照每個任務(wù)的訓(xùn)練批次順序,通過任務(wù)動態(tài)調(diào)度器結(jié)合動態(tài)調(diào)度策略生成調(diào)度方案;
8、s4按照gpu正序,將調(diào)度方案發(fā)送給首個gpu上的多任務(wù)訓(xùn)練模塊,多任務(wù)訓(xùn)練模塊按照調(diào)度方案中包含的訓(xùn)練批次對所有l(wèi)ora模型進(jìn)行訓(xùn)練;并將訓(xùn)練結(jié)果傳送至下一個gpu上的多任務(wù)訓(xùn)練模塊,重復(fù)上述操作,直至最后一個gpu;然后依據(jù)最后一個gpu輸出的訓(xùn)練結(jié)果確定損失函數(shù),將訓(xùn)練結(jié)果和損失函數(shù)反饋給分析器;同時按照gpu逆序,將損失函數(shù)進(jìn)行反向傳播,對gpu上相應(yīng)部分的lora模型參數(shù)進(jìn)行優(yōu)化;
9、s5所述分析器依據(jù)訓(xùn)練結(jié)果和損失函數(shù)進(jìn)行精度分析,判斷所有任務(wù)是否滿足訓(xùn)練要求;若所有任務(wù)滿足訓(xùn)練要求,程序結(jié)束;否則將精度分析結(jié)果反饋至任務(wù)動態(tài)調(diào)度器,返回步驟s3。
10、lora模型選自llama-7b、llama-13b、chatglm2-6b和llama2-7b或llama2-13b等??梢詫ora模型可以按照不同的維度進(jìn)行切分,例如按層切分或按參數(shù)切分。在優(yōu)選實現(xiàn)方式中,例如按照頭部(head)、中部(mid)和尾部(tail),對lora模型進(jìn)行切分,頭部(head)和尾部(tail)分布在兩個gpu,而中部(mid)可以按照大小判斷是否需要進(jìn)行再次切分,分布在一個以上的gpu上。
11、上述步驟s1中,用戶請求包括任務(wù)配置(即模型的超參數(shù)配置)、訓(xùn)練數(shù)據(jù)和調(diào)度目標(biāo),調(diào)度目標(biāo)包括最小化等待時間、減少周轉(zhuǎn)時間、最大化吞吐量、最大化精度、按照順序執(zhí)行調(diào)度等。
12、上述步驟s3中,所述任務(wù)動態(tài)調(diào)度器對各批次中的任務(wù)長度進(jìn)行排序,將同批次中任務(wù)長度相同或相近的任務(wù)來完成調(diào)度方案中任務(wù)符號填充;從而使任務(wù)動態(tài)調(diào)度器采取接近最優(yōu)的方法來減少填充符號對訓(xùn)練吞吐量的影響。這意味著它能夠有效處理不同長度的輸入序列,從而減少由于填充符號引起的計算資源浪費(fèi)。
13、所述動態(tài)調(diào)度策略包括:
14、①不早停策略:按照任務(wù)順序執(zhí)行;
15、②早停策略:初始時,按照任務(wù)順序執(zhí)行;在訓(xùn)練過程中,依據(jù)分析器的精度分析結(jié)果的變化趨勢,提前結(jié)束精度變差的任務(wù),同時將后序的任務(wù)提前;
16、③有預(yù)測的早停策略:首先基于所有任務(wù)的一批次以上的數(shù)據(jù)生成調(diào)度方案,執(zhí)行步驟s4進(jìn)行預(yù)測試,得到預(yù)測結(jié)果,并反饋給分析器;分析器依據(jù)預(yù)測結(jié)果進(jìn)行精度分析,生成后續(xù)任務(wù)調(diào)度方案;在后續(xù)訓(xùn)練過程中,依據(jù)分析器的精度分析結(jié)果的變化趨勢,提前結(jié)束精度變差的任務(wù),同時將后序的任務(wù)提前。
17、依據(jù)用戶請求中的調(diào)度目標(biāo),選擇①、②、③中的一種策略來生成調(diào)度任務(wù);例如當(dāng)調(diào)度目標(biāo)為最小化等待時間、減少周轉(zhuǎn)時間、最大化吞吐量時,任務(wù)動態(tài)調(diào)度器根據(jù)預(yù)測結(jié)果自動選擇策略②或③;當(dāng)調(diào)度目標(biāo)為按順序執(zhí)行一系列任務(wù)時,任務(wù)動態(tài)調(diào)度器自動選擇策略①。任務(wù)動態(tài)調(diào)度器能夠有效管理系統(tǒng)資源,提高整體系統(tǒng)效率。它通過智能調(diào)度策略,確保系統(tǒng)資源在各個任務(wù)之間得到最優(yōu)化的分配和利用。尤其是對于有預(yù)測的早停策略,實現(xiàn)了一個內(nèi)存使用估計模型。這使得調(diào)度器能夠根據(jù)當(dāng)前的資源使用情況和任務(wù)需求,自適應(yīng)地調(diào)整作業(yè)的調(diào)度,以優(yōu)化內(nèi)存利用率和避免內(nèi)存溢出。接著,調(diào)度器實現(xiàn)了多目標(biāo)優(yōu)化。其目標(biāo)不僅是減少等待時間和降低周轉(zhuǎn)時間,還包括增加吞吐量,同時確保任務(wù)執(zhí)行的優(yōu)先級和公平性。這意味著高優(yōu)先級的任務(wù)將優(yōu)先執(zhí)行,同時遵循先來先服務(wù)的原則。
18、上述步驟s4中,所述多任務(wù)訓(xùn)練模塊將多個任務(wù)的訓(xùn)練數(shù)據(jù)融合成一個訓(xùn)練集;在每次迭代中,多個lora模型共享一個預(yù)訓(xùn)練模型。
19、給定第i個任務(wù)的輸入順序xi,輸出數(shù)據(jù)將是hi。融合的輸入矩陣表示為x=fusion(x1,...,xn)。它將與預(yù)訓(xùn)練權(quán)重和所有l(wèi)ora模型權(quán)重相乘,然后將個結(jié)果加在一起以產(chǎn)生最終輸出h,完整的計算公式如下所示:
20、h=concat(h1,...,hn)=w0x+[δw1x1,...,δwnxn]
21、=w0x+[b1a1x1,...,bnanxn]
22、其中,w0∈rd×k表示共享的預(yù)訓(xùn)練權(quán)重,d、k表示(矩陣的行、列大小);δwi=biai表示第i個任務(wù)訓(xùn)練的lora模型的權(quán)重,和分別為低秩分解矩陣,秩ri<<min(d,k)。
23、上述步驟s5中,依據(jù)損失函數(shù)值,分析器對各任務(wù)每一批次訓(xùn)練后得到的損失函數(shù)值進(jìn)行統(tǒng)計;還可以進(jìn)一步對損失函數(shù)值進(jìn)行擬合。另外,依據(jù)訓(xùn)練結(jié)果,分析器還可以對各任務(wù)每一批次訓(xùn)練后得到的準(zhǔn)確率進(jìn)行統(tǒng)計、擬合。所述精度分析結(jié)果包括損失函數(shù)值隨迭代次數(shù)的變化,還包括準(zhǔn)確率隨迭代次數(shù)的變化。
24、與現(xiàn)有技術(shù)相比,本發(fā)明提供的針對異構(gòu)gpu顯卡的大語言模型分布式流水并行微調(diào)方法具有以下有益效果:
25、(1)本發(fā)明通過多任務(wù)調(diào)度系統(tǒng),能夠?qū)崿F(xiàn)高效的gpu內(nèi)存管理和優(yōu)化策略,包括內(nèi)存分配、共享機(jī)制和動態(tài)調(diào)度,以實現(xiàn)更多微調(diào)任務(wù)的并發(fā)執(zhí)行,并提高gpu內(nèi)存的利用率,從而提高系統(tǒng)的整體性能;
26、(2)本發(fā)明采用精細(xì)的模型切分和分配策略、流水線優(yōu)化路徑和任務(wù)負(fù)載平衡策略,能夠更有效地利用多機(jī)多卡環(huán)境的計算資源,提高微調(diào)過程的整體效率,減少資源的浪費(fèi);
27、(3)本發(fā)明設(shè)計智能的任務(wù)調(diào)度機(jī)制和動態(tài)早停策略,能夠根據(jù)任務(wù)性能指標(biāo)和系統(tǒng)負(fù)載情況實時調(diào)整任務(wù)執(zhí)行順序和優(yōu)先級,減少不必要的計算開銷,以最大程度地提高系統(tǒng)的整體吞吐率和資源利用率;通過優(yōu)化算法和資源管理,本發(fā)明能夠在保證微調(diào)效率的同時,確保微調(diào)模型的性能和質(zhì)量,進(jìn)而提高模型在特定任務(wù)上的表現(xiàn)和應(yīng)用效果。
28、綜上所述,本發(fā)明技術(shù)方案將帶來更高效、更智能和更優(yōu)質(zhì)的大型模型微調(diào)過程。