本申請涉及大模型推理優化,具體而言,涉及一種大模型的數據處理方法、裝置、設備及存儲介質。
背景技術:
1、在大模型推理中,每個請求均會經歷預填充階段(簡稱prefill)和解碼(簡稱decode)兩個處理階段。其中,prefill?計算注意力并生成?kv?緩存,decode?自回歸生成輸出。其中,prefill?計算密集,decode?內存密集,如何高效調度兩者以提升圖形處理器(graphics?processing?unit,簡稱gpu)利用率是關鍵挑戰。
2、當前通用的大模型推理架構使用基于高帶寬內存的chunked?prefill?技術,將長短不一的提示詞(簡稱prompts)?拆分為長短一致的塊(簡稱chunks)進行?prefill,然后插入其他完成了prefill的prompts的decode?需求。
3、但是,這種類似chunked?prefill等技術使用的注意力模塊只能用于單獨的prefill或者decode計算,gpu在執行時,仍需按照順序依次處理,仍需等待當前chunk完全prefill后才能開始decode,無法實現真正的并行,從而實現性能的提升。
技術實現思路
1、本申請的目的在于,針對上述現有技術中的不足,提供一種大模型的數據處理方法、裝置、設備及存儲介質,以解決現有技術中性能存在局限性的問題。
2、為實現上述目的,本申請實施例采用的技術方案如下:
3、第一方面,本申請一實施例提供了一種大模型的數據處理方法,所述方法包括:
4、根據用戶輸入的提示詞,生成大模型的至少一個輸入特征矩陣,各所述輸入特征矩陣中包括至少一個輸入特征序列;
5、根據所述輸入特征矩陣中各輸入特征序列的處理類型,確定所述輸入特征矩陣對應的至少一個線程塊、各線程塊的運算類型以及各線程塊所屬的目標基本計算單元,其中,所述處理類型包括:預填充處理類型或解碼處理類型,所述運算類型包括:預填充運算類型或解碼運算類型;
6、根據各線程塊的運算類型以及各輸入特征序列的處理類型,將各輸入特征序列分配至各線程塊;
7、并行運行各線程塊,得到所述輸入特征矩陣對應的運算結果;
8、基于各所述輸入特征矩陣對應的運算結果,得到所述大模型的輸出結果。
9、第二方面,本申請另一實施例提供了一種大模型的數據處理裝置,所述裝置包括:
10、生成模塊,用于根據用戶輸入的提示詞,生成大模型的至少一個輸入特征矩陣,各所述輸入特征矩陣中包括至少一個輸入特征序列;
11、確定模塊,用于根據所述輸入特征矩陣中各輸入特征序列的處理類型,確定所述輸入特征矩陣對應的至少一個線程塊、各線程塊的運算類型以及各線程塊所屬的目標基本計算單元,其中,所述處理類型包括:預填充處理類型或解碼處理類型,所述運算類型包括:預填充運算類型或解碼運算類型;
12、分配模塊,用于根據各線程塊的運算類型以及各輸入特征序列的處理類型,將各輸入特征序列分配至各線程塊;
13、運行模塊,用于并行運行各線程塊,得到所述輸入特征矩陣對應的運算結果;
14、輸出模塊,用于基于各所述輸入特征矩陣對應的運算結果,得到所述大模型的輸出結果。
15、第三方面,本申請另一實施例提供了一種電子設備,包括:處理器、存儲介質和總線,所述存儲介質存儲有所述處理器可執行的機器可讀指令,當電子設備運行時,所述處理器與所述存儲介質之間通過總線通信,所述處理器執行所述機器可讀指令,以執行如上述第一方面任一所述方法的步驟。
16、第四方面,本申請另一實施例提供了一種存儲介質,所述存儲介質上存儲有計算機程序,所述計算機程序被處理器運行時執行如上述第一方面任一所述方法的步驟。
17、本申請的有益效果是:通過用戶輸入的提示詞,生成大模型的至少一個輸入特征矩陣;并根據輸入特征矩陣中各輸入特征序列的處理類型,確定輸入特征矩陣對應的至少一個線程塊、各線程塊的運算類型以及各線程塊所屬的目標基本計算單元;根據各線程塊的運算類型以及各輸入特征序列的處理類型,將各輸入特征序列分配至各線程塊;并行運行各線程塊,得到輸入特征矩陣對應的運算結果;基于各輸入特征矩陣對應的運算結果,得到大模型的輸出結果,能夠在gpu的核函數級別實現資源分配的動態調度,讓同一個sm單元可以同時處理預填充和解碼任務,使得輸入特征矩陣中處理類型不同的輸入特征序列能夠并行執行,減少了等待時間,提升了整體吞吐量,確保了圖形處理器資源被充分利用,避免了閑置或重復計算,從而顯著提升大模型的推理性能。此外,還能更好地適應不同長度的輸入,避免因序列長度不整除而產生的額外填充操作,充分發揮圖形處理器硬件的能力,增強了對不同應用場景的適應性。同時,還能減少全局內存訪問次數,實現高效內存訪問。
1.一種大模型的數據處理方法,其特征在于,所述方法包括:
2.根據權利要求1所述的大模型的數據處理方法,其特征在于,所述根據所述輸入特征矩陣中各輸入特征序列的處理類型,確定所述輸入特征矩陣對應的至少一個線程塊、各線程塊的運算類型以及各線程塊所屬的目標基本計算單元,包括:
3.根據權利要求2所述的大模型的數據處理方法,其特征在于,所述根據所述輸入特征矩陣中各輸入特征序列的處理類型,確定運算類型為預填充運算類型的第一線程塊數量以及運算類型為解碼類型的第二線程塊數量,包括:
4.根據權利要求2所述的大模型的數據處理方法,其特征在于,所述根據第一線程塊數量以及第二線程塊數量,確定所述輸入特征矩陣對應的至少一個線程塊、各線程塊的運算類型以及各線程塊所屬的目標基本計算單元,包括:
5.根據權利要求4所述的大模型的數據處理方法,其特征在于,所述根據所述輸入特征矩陣對應的指示數值,確定各線程塊所屬的目標基本計算單元以及各線程塊的運算類型,包括:
6.根據權利要求1所述的大模型的數據處理方法,其特征在于,所述根據各線程塊的運算類型以及各輸入特征序列的處理類型,將各輸入特征序列分配至各線程塊,包括:
7.根據權利要求1所述的大模型的數據處理方法,其特征在于,所述并行運行各線程塊,得到所述輸入特征矩陣對應的運算結果,包括:
8.一種大模型的數據處理裝置,其特征在于,所述裝置包括:
9.一種電子設備,其特征在于,包括:處理器和存儲器,所述存儲器存儲有所述處理器可執行的機器可讀指令,當電子設備運行時,所述處理器執行所述機器可讀指令,以執行如權利要求1至7任一所述的大模型的數據處理方法的步驟。
10.一種計算機可讀存儲介質,其特征在于,該計算機可讀存儲介質上存儲有計算機程序,該計算機程序被處理器運行時執行如權利要求1至7任一所述的大模型的數據處理方法的步驟。