本發(fā)明涉及大模型推理?,尤其涉及一種模型推理方法及裝置。
背景技術(shù):
1、目前,在transformer類大模型結(jié)構(gòu)中,主要包括注意力(attention)和前饋神經(jīng)網(wǎng)絡(luò)(feed?forward?neural?network,ffn)兩部分計算,而且transformer類大模型一般為多層實現(xiàn),每一層主要包括attention和ffn單元。通常在推理時,對于每個輸入的推理對象(token)都要經(jīng)過attention計算和ffn計算,這樣在上下文比較長時,對于每一層的attention,都需要存儲之前的歷史token的鍵值信息(kv信息),導(dǎo)致鍵值緩存(kvcache)所需的存儲空間增加,attention的計算速度變慢,即大模型的推理速度變慢。為了提升推理速度,一種解決方案是對于每個token選擇性的跳過某些層的attention和ffn單元,被跳過的層對應(yīng)的kvcache中缺少本次推理的kv信息,導(dǎo)致下一次推理時,推理精度低。
技術(shù)實現(xiàn)思路
1、本發(fā)明提供一種模型推理方法及裝置,用以解決現(xiàn)有技術(shù)的大模型推理過程中無法在提高推理速度的同時提高推理精度的問題。
2、本發(fā)明提供一種模型推理方法,包括以下步驟。
3、基于當(dāng)前輸入推理對象,從模型的候選目標(biāo)層中選擇與所述當(dāng)前輸入推理對象對應(yīng)的模型推理時需要跳過的目標(biāo)層。
4、在推理到所述目標(biāo)層時,確定所述目標(biāo)層對應(yīng)的所述當(dāng)前輸入推理對象的鍵值信息,并將所述鍵值信息存儲在所述目標(biāo)層對應(yīng)的鍵值緩存中。
5、跳過所述目標(biāo)層的注意力計算,并基于所述目標(biāo)層對應(yīng)上一層的推理結(jié)果,執(zhí)行所述目標(biāo)層的前向傳播計算,直到經(jīng)過模型的所有層,以得到所述當(dāng)前輸入推理對象的推理結(jié)果。
6、根據(jù)本發(fā)明提供的一種模型推理方法,所述基于當(dāng)前輸入推理對象,從模型的候選目標(biāo)層中選擇與所述當(dāng)前輸入推理對象對應(yīng)的模型推理時需要跳過的目標(biāo)層,包括:基于所述當(dāng)前輸入推理對象和模型訓(xùn)練過程中得到的層選擇權(quán)重矩陣,在所述候選目標(biāo)層中選擇與所述當(dāng)前輸入推理對象對應(yīng)的模型推理時需要跳過的目標(biāo)層。
7、根據(jù)本發(fā)明提供的一種模型推理方法,所述基于所述當(dāng)前輸入推理對象和模型訓(xùn)練過程中得到的層選擇權(quán)重矩陣,在所述候選目標(biāo)層中選擇與所述當(dāng)前輸入推理對象對應(yīng)的模型推理時需要跳過的目標(biāo)層,包括以下步驟。
8、將所述當(dāng)前輸入推理對象和所述層選擇權(quán)重矩陣相乘,得到1×n的權(quán)重向量,其中,n為模型中候選目標(biāo)層的數(shù)量,n小于等于模型的總層數(shù),且所述權(quán)重向量中每個選擇權(quán)重值分別對應(yīng)一個候選目標(biāo)層。
9、確定所述權(quán)重向量中小于預(yù)設(shè)權(quán)重閾值的選擇權(quán)重值對應(yīng)的候選目標(biāo)層作為所述目標(biāo)層。
10、根據(jù)本發(fā)明提供的一種模型推理方法,所述模型中的所有候選目標(biāo)層被分為多個組,每個組中包括多個候選目標(biāo)層,每個組中所有候選目標(biāo)層共享鍵值緩存。
11、根據(jù)本發(fā)明提供的一種模型推理方法,所述基于當(dāng)前輸入推理對象,從模型的候選目標(biāo)層中選擇與所述當(dāng)前輸入推理對象對應(yīng)的模型推理時需要跳過的目標(biāo)層,包括以下步驟。
12、基于所述當(dāng)前輸入推理對象和模型訓(xùn)練中得到的組選擇權(quán)重矩陣,確定要跳過的目標(biāo)組。
13、基于所述當(dāng)前輸入推理對象和所述目標(biāo)組內(nèi)的層選擇權(quán)重矩陣,從所述目標(biāo)組中確定要跳過的目標(biāo)層,所述目標(biāo)組內(nèi)的層選擇權(quán)重矩陣在模型訓(xùn)練時得到,且保證目標(biāo)組中目標(biāo)層的數(shù)量小于目標(biāo)組中候選目標(biāo)層的數(shù)量。
14、根據(jù)本發(fā)明提供的一種模型推理方法,所述在推理到所述目標(biāo)層時,確定所述目標(biāo)層對應(yīng)的所述當(dāng)前輸入推理對象的鍵值信息,包括:在推理到每組中的第一層時,確定所述第一層對應(yīng)的所述當(dāng)前輸入推理對象的參考鍵值信息,將所述參考鍵值信息存儲在組內(nèi)的鍵值緩存中,將所述參考鍵值信息確定為組內(nèi)的目標(biāo)層和候選目標(biāo)層各自對應(yīng)的所述當(dāng)前輸入推理對象的鍵值信息。
15、根據(jù)本發(fā)明提供的一種模型推理方法,在基于當(dāng)前輸入推理對象,從模型的候選目標(biāo)層中選擇與所述當(dāng)前輸入推理對象對應(yīng)的模型推理時需要跳過的目標(biāo)層之前,還包括:確定模型中前n層為非候選目標(biāo)層,后n層為所述候選目標(biāo)層,所述n大于等于1,n+n為模型的總層數(shù)。
16、本發(fā)明還提供一種模型推理裝置,包括以下模塊。
17、目標(biāo)層選擇模塊,用于基于當(dāng)前輸入推理對象,從模型的候選目標(biāo)層中選擇與所述當(dāng)前輸入推理對象對應(yīng)的模型推理時需要跳過的目標(biāo)層。
18、鍵值信息確定模塊,用于在推理到所述目標(biāo)層時,確定所述目標(biāo)層對應(yīng)的所述當(dāng)前輸入推理對象的鍵值信息,并將所述鍵值信息存儲在所述目標(biāo)層對應(yīng)的鍵值緩存中。
19、前向推理模塊,用于跳過所述目標(biāo)層的注意力計算,并基于所述目標(biāo)層對應(yīng)上一層的推理結(jié)果,執(zhí)行所述目標(biāo)層的前向傳播計算,直到經(jīng)過模型的所有層,以得到所述當(dāng)前輸入推理對象的推理結(jié)果。
20、本發(fā)明還提供一種電子設(shè)備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程序,所述處理器執(zhí)行所述計算機程序時實現(xiàn)如上述任一種所述的模型推理方法。
21、本發(fā)明還提供一種非暫態(tài)計算機可讀存儲介質(zhì),其上存儲有計算機程序,該計算機程序被處理器執(zhí)行時實現(xiàn)如上述任一種所述的模型推理方法。
22、本發(fā)明提供的模型推理方法及裝置,通過基于當(dāng)前輸入推理對象,從模型的候選目標(biāo)層中選擇與所述當(dāng)前輸入推理對象對應(yīng)的模型推理時需要跳過的目標(biāo)層;在推理到所述目標(biāo)層時,確定所述目標(biāo)層對應(yīng)的所述當(dāng)前輸入推理對象的鍵值信息,并將所述鍵值信息存儲在所述目標(biāo)層對應(yīng)的鍵值緩存中;跳過所述目標(biāo)層的注意力計算,并基于所述目標(biāo)層對應(yīng)上一層的推理結(jié)果,執(zhí)行所述目標(biāo)層的前向傳播計算,直到經(jīng)過模型的所有層,以得到所述當(dāng)前輸入推理對象的推理結(jié)果。由于在推理到目標(biāo)層時,對于當(dāng)前輸入推理對象,不跳過目標(biāo)層中attention單元的kv信息計算,保留了模型推理的精度,只跳過attention單元的attention計算,從而提升了推理速度,在提升推理速度的基礎(chǔ)上相對于現(xiàn)有的層跳過方式的推理精度更高。
1.一種模型推理方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的模型推理方法,其特征在于,所述基于當(dāng)前輸入推理對象,從模型的候選目標(biāo)層中選擇與所述當(dāng)前輸入推理對象對應(yīng)的模型推理時需要跳過的目標(biāo)層,包括:
3.根據(jù)權(quán)利要求2所述的模型推理方法,其特征在于,所述基于所述當(dāng)前輸入推理對象和模型訓(xùn)練過程中得到的層選擇權(quán)重矩陣,在所述候選目標(biāo)層中選擇與所述當(dāng)前輸入推理對象對應(yīng)的模型推理時需要跳過的目標(biāo)層,包括:
4.根據(jù)權(quán)利要求1所述的模型推理方法,其特征在于,所述模型中的所有候選目標(biāo)層被分為多個組,每個組中包括多個候選目標(biāo)層,每個組中所有候選目標(biāo)層共享鍵值緩存。
5.根據(jù)權(quán)利要求4所述的模型推理方法,其特征在于,所述基于當(dāng)前輸入推理對象,從模型的候選目標(biāo)層中選擇與所述當(dāng)前輸入推理對象對應(yīng)的模型推理時需要跳過的目標(biāo)層,包括:
6.根據(jù)權(quán)利要求4所述的模型推理方法,其特征在于,所述在推理到所述目標(biāo)層時,確定所述目標(biāo)層對應(yīng)的所述當(dāng)前輸入推理對象的鍵值信息,包括:
7.根據(jù)權(quán)利要求1至6中任一項所述的模型推理方法,其特征在于,在基于當(dāng)前輸入推理對象,從模型的候選目標(biāo)層中選擇與所述當(dāng)前輸入推理對象對應(yīng)的模型推理時需要跳過的目標(biāo)層之前,還包括:
8.一種模型推理裝置,其特征在于,包括:
9.一種電子設(shè)備,包括存儲器、處理器及存儲在所述存儲器上并可在所述處理器上運行的計算機程序,其特征在于,所述處理器執(zhí)行所述計算機程序時實現(xiàn)如權(quán)利要求1至7中任一項所述的模型推理方法。
10.一種非暫態(tài)計算機可讀存儲介質(zhì),其上存儲有計算機程序,其特征在于,所述計算機程序被處理器執(zhí)行時實現(xiàn)如權(quán)利要求1至7中任一項所述的模型推理方法。