System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本申請涉及fpga領域,特別涉及一種大模型kv?cache快速存儲與導入加速架構。
技術介紹
1、隨著人工智能技術的飛速發展,大型語言模型(llm)已成為自然語言處理領域的明星。然而這些模型在帶來強大能力的同時,也伴隨著巨大的計算量和推理延遲。
2、在llm的推理過程中,模型會逐個生成文本的每個詞元(token),這個過程可能比較慢,因為模型一次只能生成一個token,而且每次新的預測都依賴于之前的上下文。這意味著要預測第1000個token,你需要用到前999個token的信息,這通常涉及到對這些token的表示進行一系列矩陣乘法運算。而要預測第1001個token,不僅需要前999個token的信息,還要加上第1000個token的信息。每次生成新的token時,通常需要重新計算之前所有token的注意力權重,這造成了大量的冗余計算。由前面的推理過程一步步生成并保存在內存中的,這就產生了兩個問題:1.內存中的數據不是長久保存的,當一個會話結束后或者設備掉電后,內存中的數據會被沖刷掉;2.會話不能被打斷,一旦被打斷后會話會只能從第一個token開始重新推理,不能延續上次的會話。
技術實現思路
1、本申請提供一種大模型kv?cache快速存儲與導入加速架構,解決傳統大模型的模型數據推理重復計算、數據沖刷和會話中斷影響影響推理速度的問題。
2、一方面,本申請公開一種大模型kv?cache快速存儲與導入加速架構:
3、所述架構包括數據處理和任務調度的
4、查詢階段,cpu根據當前會話產生的輸入詞元確定數據查詢任務,并控制fpga啟動數據查詢任務;fpga根據輸入詞元從外部存儲器中查詢和導入模型緩存數據至存儲器中,以及將當前會話的輸入詞元至內存中;
5、推理階段,運行大模型的加速器通過提取存儲器中的模型緩存數據進行模型推理,輸出推理結果和導出新模型緩存數據;所述fpga根據cpu的控制指令從存儲器中讀取更新后模型緩存數據,并導出至外部存儲器。
6、具體的,所述cpu基于當前輸入詞元所屬的會話編號確定會話狀態;
7、當會話編號指示輸入詞元為當前會話的首個詞元,或是當前會話中前一歷史詞元的級聯輸入時,cpu控制加速器執行模型推理任務,以及控制fpga存儲當前輸入詞元;
8、當會話編號指示輸入詞元不是當前會話的首個詞元,或不是當前會話中前一歷史詞元的級聯輸入時,cpu分配和控制fpga執行數據查詢任務。
9、具體的,所述fpga啟動數據查詢任務時,基于當前會話的第n個詞元從內存中讀取當前會話產生的前n-1個已計算詞元,并對前n-1個已計算詞元和進行hash計算,根據hash值查詢鏈表和匹配模型緩存數據。
10、具體的,在內存中還存儲有地址映射表,所述地址映射表中存儲有hash值和一一對應hash地址;所述鏈表中存儲著hash地址和存儲模型緩存數據的物理地址之間的映射關系;
11、在查找鏈表時,根據映射和確定的目標hash地址匹配目標鏈表和確定位于外部存儲器中目標模型緩存數據的物理地址。
12、具體的,所述鏈表與hash值一一對應,且每個鏈表中包含若干組鏈環,每組鏈環中存儲有當前會話的已計算詞元數、已計算詞元的hash值、模型緩存數據的物理地址,前級鏈環指針和后級鏈環指針;
13、在查找鏈表時,根據當前會話的已計算詞元數和已計算詞元的hash值從目標鏈表中確定目標鏈環,以及提取目標模型緩存數據的物理地址。
14、具體的,確定目標模型緩存數據的物理地址后,從外部存儲器中定位和匹配目標模型緩存數據;當從外部存儲器中成功匹配到目標模型緩存數據時,將其導入至大模型進行推理;當從外部存儲器中未匹配到目標模型緩存數據時,從內存中提取當前會話所有詞元,并送入至加速器進行模型推理。
15、具體的,所述fpga根據cpu的控制指令導出更新后的模型緩存數據時,基于當前會話所有已計算詞元進行hash計算,并根據hash值更新舊鏈表,將更新后模型緩存數據的物理地址存入到新插入鏈環。
16、具體的,所述前級指針和后級指針分別是鏈表中相鄰鏈環的地址,在更新鏈表時基于前級指針和后級指針刪除,遍歷和增加鏈環。
17、具體的,所述模型緩存數據在外部存儲器中以會話任務為單位進行存儲,每個會話任務對應存儲當前會話的已計算詞元token值、當前會話的k值和v值,其中的k值根據token值順序依次分層存儲;v值根據token值順序分層且按列存儲。
18、具體的,還設置有第一地址fifo和第二地址fifo;所述第一地址fifo中保存有外部存儲器在預設時間內未存儲數據的空閑區域的地址,第二地址fifo中保存有在預設時間內刪除歷史模型緩存數據后的空白地址;
19、在導出模型緩存數據時,根據所述第一地址fifo和第二地址fifo中存儲的地址余量確定目標導出地址。
20、本申請實施例提供的技術方案帶來的有益效果至少包括:
21、1.減少了運算量,提升推理速度:
22、通過kv?cache技術執行大模型推理減少了重復計算的次數,提升了推理的速度。存儲+推理的加速方式,每次使用時只進行最后一組token的推理,而前面token的結果從外部存儲中直接讀取出來。相對于傳統的每個token都進行推理,速度上有很大的提升。另外本方案通過fpga加速了hash計算、查表和存儲器訪問的過程,使數據在導入和導出上做到更快,進一步加速了結果輸出的速度。
23、2.擴寬了應用場景
24、通過kv?cache的存儲和導入,使得大模型不僅能夠直接連續對話,而且還能交替進行多個對話,且相互不受干擾。另外還能夠隨時打斷對話,將對話保存,并在適當的時間繼續對話。而且,當我們希望將對話轉移到其他設備上時,也不需要從頭推理,可直接繼續之前的對話。
25、3.方便數據備份和轉移
26、kv?cache的存儲和導入架構,在進行設計時就已經考慮到數據的存儲結構,因此在數據備份方面不需要額外的操作。同時,當數據轉移到其他設備上進行使用時,只要配置參數和當前參數相同,即可直接使用。
本文檔來自技高網...【技術保護點】
1.一種大模型KV?cache快速存儲與導入架構,其特征在于,所述架構包括數據處理和任務調度的CPU、運行大模型的加速器、執行KV?Cache和數據查詢的FPGA、在FPGA和加速器之間提供數據交換的存儲器、存儲模型緩存數據的外部存儲器,以及存儲會話詞元和鏈表的內存;所述鏈表中記錄有儲模型緩存數據的映射地址;
2.根據權利要求1所述的大模型KV?cache快速存儲與導入加速架構,其特征在于,所述CPU基于當前輸入詞元所屬的會話編號確定會話狀態;
3.根據權利要求1所述的大模型KV?cache快速存儲與導入加速架構,其特征在于,所述FPGA啟動數據查詢任務時,基于當前會話的第n個詞元從內存中讀取當前會話產生的前n-1個已計算詞元,并對前n-1個已計算詞元和進行hash計算,根據hash值查詢鏈表和匹配模型緩存數據。
4.根據權利要求3所述的大模型KV?cache快速存儲與導入加速架構,其特征在于,在內存中還存儲有地址映射表,所述地址映射表中存儲有hash值和一一對應hash地址;所述鏈表中存儲著hash地址和存儲模型緩存數據的物理地址之間的映射關
5.根據權利要求4所述的大模型KV?cache快速存儲與導入加速架構,其特征在于,所述鏈表與hash值一一對應,且每個鏈表中包含若干組鏈環,每組鏈環中存儲有當前會話的已計算詞元數、已計算詞元的hash值、模型緩存數據的物理地址,前級鏈環指針和后級鏈環指針;
6.根據權利要求5所述的大模型KV?cache快速存儲與導入加速架構,其特征在于,確定目標模型緩存數據的物理地址后,從外部存儲器中定位和匹配目標模型緩存數據;當從外部存儲器中成功匹配到目標模型緩存數據時,將其導入至大模型進行推理;當從外部存儲器中未匹配到目標模型緩存數據時,從內存中提取當前會話所有詞元,并送入至加速器進行模型推理。
7.根據權利要求5所述的大模型KV?cache快速存儲與導入加速架構,其特征在于,所述FPGA根據CPU的控制指令導出更新后的模型緩存數據時,基于當前會話所有已計算詞元進行hash計算,并根據hash值更新舊鏈表,將更新后模型緩存數據的物理地址存入到新插入鏈環。
8.根據權利要求7所述的大模型KV?cache快速存儲與導入加速架構,其特征在于,所述前級指針和后級指針分別是鏈表中相鄰鏈環的地址,在更新鏈表時基于前級指針和后級指針刪除,遍歷和增加鏈環。
9.根據權利要求1-8任一所述的大模型KV?cache快速存儲與導入加速架構,其特征在于,所述模型緩存數據在外部存儲器中以會話任務為單位進行存儲,每個會話任務對應存儲當前會話的已計算詞元token值、當前會話的K值和V值,其中的K值根據token值順序依次分層存儲;V值根據token值順序分層且按列存儲。
10.根據權利要求9所述的大模型KV?cache快速存儲與導入加速架構,其特征在于,還設置有第一地址FIFO和第二地址FIFO;所述第一地址FIFO中保存有外部存儲器在預設時間內未存儲數據的空閑區域的地址,第二地址FIFO中保存有在預設時間內刪除歷史模型緩存數據后的空白地址;
...【技術特征摘要】
1.一種大模型kv?cache快速存儲與導入架構,其特征在于,所述架構包括數據處理和任務調度的cpu、運行大模型的加速器、執行kv?cache和數據查詢的fpga、在fpga和加速器之間提供數據交換的存儲器、存儲模型緩存數據的外部存儲器,以及存儲會話詞元和鏈表的內存;所述鏈表中記錄有儲模型緩存數據的映射地址;
2.根據權利要求1所述的大模型kv?cache快速存儲與導入加速架構,其特征在于,所述cpu基于當前輸入詞元所屬的會話編號確定會話狀態;
3.根據權利要求1所述的大模型kv?cache快速存儲與導入加速架構,其特征在于,所述fpga啟動數據查詢任務時,基于當前會話的第n個詞元從內存中讀取當前會話產生的前n-1個已計算詞元,并對前n-1個已計算詞元和進行hash計算,根據hash值查詢鏈表和匹配模型緩存數據。
4.根據權利要求3所述的大模型kv?cache快速存儲與導入加速架構,其特征在于,在內存中還存儲有地址映射表,所述地址映射表中存儲有hash值和一一對應hash地址;所述鏈表中存儲著hash地址和存儲模型緩存數據的物理地址之間的映射關系;
5.根據權利要求4所述的大模型kv?cache快速存儲與導入加速架構,其特征在于,所述鏈表與hash值一一對應,且每個鏈表中包含若干組鏈環,每組鏈環中存儲有當前會話的已計算詞元數、已計算詞元的hash值、模型緩存數據的物理地址,前級鏈環指針和后級鏈環指針;
6.根據權利要求5所述的大模型kv?cache快速存儲與導入加速架構,...
【專利技術屬性】
技術研發人員:請求不公布姓名,請求不公布姓名,
申請(專利權)人:深存科技無錫有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。