本發(fā)明涉及自然語(yǔ)言處理,尤其涉及一種transformer模型的非線性層加速方法、裝置、加速器及存儲(chǔ)介質(zhì)。
背景技術(shù):
1、transformer模型在自然語(yǔ)言處理(natural?language?processing,nlp)、傳統(tǒng)計(jì)算機(jī)視覺(jué)(computer?vision,cv)等領(lǐng)域展現(xiàn)出強(qiáng)大的能力,然而,其高性能的代價(jià)為遠(yuǎn)高于傳統(tǒng)ai算法的計(jì)算復(fù)雜度與存儲(chǔ)復(fù)雜度。例如,相較于resnet-152模型,vit(visiontransformer)在計(jì)算量上提升了152倍,但在gpu推理時(shí),在序列長(zhǎng)度大于8192的情況下可能消耗10gb以上的存儲(chǔ)量。
2、其中,softmax和layernorm是transformer算法中的核心非線性算子。transformer模型在輸入為特別長(zhǎng)的序列時(shí),處理這兩類非線性算子面臨著處理效率低和內(nèi)存開(kāi)銷大的問(wèn)題。這是因?yàn)闃?biāo)準(zhǔn)的transformer模型的注意力機(jī)制具有平方級(jí)的復(fù)雜度,進(jìn)而導(dǎo)致對(duì)長(zhǎng)序列的處理不僅緩慢而且內(nèi)存消耗巨大。
3、在此情況下,現(xiàn)有技術(shù)提出了一些軟硬件協(xié)同設(shè)計(jì)方法,用于提高softmax和layernorm的能效,但softmax和layernorm的潛在稀疏性尚未被充分探討。
4、因此,如何解決傳統(tǒng)transformer模型在處理長(zhǎng)序列數(shù)據(jù)時(shí)計(jì)算效率低下,且存儲(chǔ)開(kāi)銷高昂的問(wèn)題,是自然語(yǔ)言處理領(lǐng)域亟待解決的重要課題。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明提供一種transformer模型的非線性層加速方法、裝置、加速器及存儲(chǔ)介質(zhì),用以解決現(xiàn)有技術(shù)中傳統(tǒng)transformer模型在處理長(zhǎng)序列數(shù)據(jù)時(shí)計(jì)算效率低下,且存儲(chǔ)開(kāi)銷高昂的缺陷,顯著提升transformer模型處理長(zhǎng)序列數(shù)據(jù)的計(jì)算效率,并減少內(nèi)存開(kāi)銷。
2、一方面,本發(fā)明提供一種transformer模型的非線性層加速方法,所述transformer模型包括編碼器和解碼器,所述編碼器和解碼器均包括softmax網(wǎng)絡(luò)層和layernorm網(wǎng)絡(luò)層,所述方法包括:獲取softmax網(wǎng)絡(luò)層的輸入向量;對(duì)所述輸入向量進(jìn)行分組稀疏處理,得到softmax網(wǎng)絡(luò)層的輸出向量;所述softmax網(wǎng)絡(luò)層的輸出向量為layernorm網(wǎng)絡(luò)層的輸入向量;對(duì)所述layernorm網(wǎng)絡(luò)層的輸入向量進(jìn)行雙路徑稀疏處理,得到layernorm網(wǎng)絡(luò)層的輸出向量。
3、進(jìn)一步地,所述對(duì)所述輸入向量進(jìn)行分組稀疏處理,得到softmax網(wǎng)絡(luò)層的輸出向量,包括:對(duì)所述輸入向量進(jìn)行向量分組,得到多個(gè)組向量;將softmax操作中的原始指數(shù)轉(zhuǎn)換為設(shè)定指數(shù),并對(duì)多個(gè)組向量分別進(jìn)行獨(dú)立計(jì)算,以得到softmax網(wǎng)絡(luò)層的輸出向量;其中,所述設(shè)定指數(shù)小于所述原始指數(shù)。
4、進(jìn)一步地,所述對(duì)多個(gè)組向量分別進(jìn)行獨(dú)立計(jì)算,具體包括:對(duì)組向量中的每一數(shù)據(jù)取設(shè)定指數(shù),得到分組計(jì)算結(jié)果;基于預(yù)先存儲(chǔ)的全局最大值,對(duì)所述分組計(jì)算結(jié)果進(jìn)行移位補(bǔ)償,得到目標(biāo)分組計(jì)算結(jié)果;對(duì)所述目標(biāo)分組計(jì)算結(jié)果進(jìn)行歸一化處理,得到所述softmax網(wǎng)絡(luò)層的輸出向量。
5、進(jìn)一步地,所述全局最大值的獲取步驟包括:確定分組計(jì)算結(jié)果中的組最大值;在所述組最大值大于預(yù)存全局最大值的情況下,將所述組最大值確定為全局最大值;在所述組最大值小于預(yù)存全局最大值的情況下,將所述預(yù)存全局最大值確定為全局最大值。
6、進(jìn)一步地,所述得到分組計(jì)算結(jié)果,之后包括:確定所述分組計(jì)算結(jié)果與設(shè)定閾值之間的差值;在所述差值低于設(shè)定差值的情況下,所述分組計(jì)算結(jié)果不再參與后續(xù)計(jì)算過(guò)程。
7、進(jìn)一步地,所述對(duì)所述layernorm網(wǎng)絡(luò)層的輸入向量進(jìn)行雙路徑稀疏處理,得到layernorm網(wǎng)絡(luò)層的輸出向量,包括:識(shí)別所述layernorm網(wǎng)絡(luò)層的輸入向量中的重要維度,對(duì)所述重要維度采用全精度計(jì)算,對(duì)所述重要維度以外的其他維度采用半精度計(jì)算,以得到layernorm網(wǎng)絡(luò)層的輸出向量。
8、進(jìn)一步地,所述識(shí)別所述layernorm網(wǎng)絡(luò)層的輸入向量中的重要維度,包括:計(jì)算所述layernorm網(wǎng)絡(luò)層的輸入向量中不同維度對(duì)應(yīng)的方差值;在所述方差值高于設(shè)定方差值的情況下,將所述方差值對(duì)應(yīng)的維度確定為重要維度;在所述方差值低于設(shè)定方差值的情況下,將所述方差值對(duì)應(yīng)的維度確定為非重要維度,所述非重要維度為重要維度以外的其他維度。
9、第二方面,本發(fā)明還提供一種transformer模型的非線性層加速裝置,所述transformer模型包括編碼器和解碼器,所述編碼器和解碼器均包括softmax網(wǎng)絡(luò)層和layernorm網(wǎng)絡(luò)層,所述裝置包括:輸入向量獲取模塊,用于獲取softmax網(wǎng)絡(luò)層的輸入向量;softmax網(wǎng)絡(luò)層加速處理模塊,用于對(duì)所述輸入向量進(jìn)行分組稀疏處理,得到softmax網(wǎng)絡(luò)層的輸出向量;所述softmax網(wǎng)絡(luò)層的輸出向量為layernorm網(wǎng)絡(luò)層的輸入向量;layernorm網(wǎng)絡(luò)層加速處理模塊,用于對(duì)所述layernorm網(wǎng)絡(luò)層的輸入向量進(jìn)行雙路徑稀疏處理,得到layernorm網(wǎng)絡(luò)層的輸出向量。
10、第三方面,本發(fā)明還提供一種transformer模型的非線性層加速器,包括存儲(chǔ)器、處理器及存儲(chǔ)在存儲(chǔ)器上并可在處理器上運(yùn)行的計(jì)算機(jī)程序,所述處理器執(zhí)行所述程序時(shí)實(shí)現(xiàn)如上述任一種所述的transformer模型的非線性層加速方法。
11、第四方面,本發(fā)明還提供一種非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,該計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如上述任一種所述的transformer模型的非線性層加速方法。
12、本發(fā)明提供的transformer模型的非線性層加速方法,通過(guò)獲取softmax網(wǎng)絡(luò)層的輸入向量,并對(duì)輸入向量進(jìn)行分組稀疏處理,得到softmax網(wǎng)絡(luò)層的輸出向量;softmax網(wǎng)絡(luò)層的輸出向量為layernorm網(wǎng)絡(luò)層的輸入向量,進(jìn)而對(duì)layernorm網(wǎng)絡(luò)層的輸入向量進(jìn)行雙路徑稀疏處理,得到layernorm網(wǎng)絡(luò)層的輸出向量。該方法通過(guò)對(duì)softmax網(wǎng)絡(luò)層的輸入向量進(jìn)行稀疏處理,并對(duì)layernorm網(wǎng)絡(luò)層的輸入向量進(jìn)行雙路徑稀疏處理,此過(guò)程不僅顯著提升了transformer模型處理長(zhǎng)序列數(shù)據(jù)的計(jì)算效率,還減少了對(duì)應(yīng)的內(nèi)存開(kāi)銷。
1.一種transformer模型的非線性層加速方法,其特征在于,所述transformer模型包括編碼器和解碼器,所述編碼器和解碼器均包括softmax網(wǎng)絡(luò)層和layernorm網(wǎng)絡(luò)層,所述方法包括:
2.根據(jù)權(quán)利要求1所述的transformer模型的非線性層加速方法,其特征在于,所述對(duì)所述輸入向量進(jìn)行分組稀疏處理,得到softmax網(wǎng)絡(luò)層的輸出向量,包括:
3.根據(jù)權(quán)利要求2所述的transformer模型的非線性層加速方法,其特征在于,所述對(duì)多個(gè)組向量分別進(jìn)行獨(dú)立計(jì)算,具體包括:
4.根據(jù)權(quán)利要求3所述的transformer模型的非線性層加速方法,其特征在于,所述全局最大值的獲取步驟包括:
5.根據(jù)權(quán)利要求3所述的transformer模型的非線性層加速方法,其特征在于,所述得到分組計(jì)算結(jié)果,之后包括:
6.根據(jù)權(quán)利要求1所述的transformer模型的非線性層加速方法,其特征在于,所述對(duì)所述layernorm網(wǎng)絡(luò)層的輸入向量進(jìn)行雙路徑稀疏處理,得到layernorm網(wǎng)絡(luò)層的輸出向量,包括:
7.根據(jù)權(quán)利要求6所述的transformer模型的非線性層加速方法,其特征在于,所述識(shí)別所述layernorm網(wǎng)絡(luò)層的輸入向量中的重要維度,包括:
8.一種transformer模型的非線性層加速裝置,其特征在于,所述transformer模型包括編碼器和解碼器,所述編碼器和解碼器均包括softmax網(wǎng)絡(luò)層和layernorm網(wǎng)絡(luò)層,所述裝置包括:
9.一種transformer模型的非線性層加速器,包括存儲(chǔ)器、處理器及存儲(chǔ)在所述存儲(chǔ)器上并可在所述處理器上運(yùn)行的計(jì)算機(jī)程序,其特征在于,所述處理器執(zhí)行所述程序時(shí)實(shí)現(xiàn)如權(quán)利要求1至7中任一項(xiàng)所述的transformer模型的非線性層加速方法。
10.一種非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,其特征在于,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如權(quán)利要求1至7中任一項(xiàng)所述的transformer模型的非線性層加速方法。