所屬的技術(shù)人員能夠理解,本技術(shù)的各個方面可以實現(xiàn)為系統(tǒng)、方法或程序產(chǎn)品。因此,本技術(shù)的各個方面可以具體實現(xiàn)為以下形式,即:完全的硬件實施方式、完全的軟件實施方式(包括固件、微代碼等),或硬件和軟件方面結(jié)合的實施方式,這里可以統(tǒng)稱為“電路”、“模塊”或“系統(tǒng)”。下面參照圖9來描述根據(jù)本技術(shù)的這種實施方式的電子設(shè)備900。圖9顯示的電子設(shè)備900僅僅是一個示例,不應(yīng)對本技術(shù)實施例的功能和使用范圍帶來任何限制。如圖9所示,電子設(shè)備900以通用計算設(shè)備的形式表現(xiàn)。電子設(shè)備900的組件可以包括但不限于:上述至少一個處理單元910、上述至少一個存儲單元920、連接不同系統(tǒng)組件(包括存儲單元920和處理單元910)的總線930。其中,所述存儲單元存儲有程序代碼,所述程序代碼可以被所述處理單元910執(zhí)行,使得所述處理單元910執(zhí)行本說明書上述“示例性方法”部分中描述的根據(jù)本技術(shù)各種示例性實施方式的步驟。例如,所述處理單元910可以執(zhí)行上述方法實施例的如下步驟:s201~s204、s601~s604。存儲單元920可以包括易失性存儲單元形式的可讀介質(zhì),例如隨機存取存儲單元(ram)9201和/或高速緩存存儲單元9202,還可以進一步包括只讀存儲單元(rom)9203。存儲單元920還可以包括具有一組(至少一個)程序模塊9205的程序/實用工具9204,這樣的程序模塊9205包括但不限于:操作系統(tǒng)、一個或者多個應(yīng)用程序、其它程序模塊以及程序數(shù)據(jù),這些示例中的每一個或某種組合中可能包括網(wǎng)絡(luò)環(huán)境的實現(xiàn)。總線930可以為表示幾類總線結(jié)構(gòu)中的一種或多種,包括存儲單元總線或者存儲單元控制器、外圍總線、圖形加速端口、處理單元或者使用多種總線結(jié)構(gòu)中的任意總線結(jié)構(gòu)的局域總線。電子設(shè)備900也可以與一個或多個外部設(shè)備940(例如鍵盤、指向設(shè)備、藍牙設(shè)備等)通信,還可與一個或者多個使得用戶能與該電子設(shè)備900交互的設(shè)備通信,和/或與使得該電子設(shè)備900能與一個或多個其它計算設(shè)備進行通信的任何設(shè)備(例如路由器、調(diào)制解調(diào)器等等)通信。這種通信可以通過輸入/輸出(i/o)接口950進行。并且,電子設(shè)備900還可以通過網(wǎng)絡(luò)適配器960與一個或者多個網(wǎng)絡(luò)(例如局域網(wǎng)(lan),廣域網(wǎng)(wan)和/或公共網(wǎng)絡(luò),例如因特網(wǎng))通信。如圖所示,網(wǎng)絡(luò)適配器960通過總線930與電子設(shè)備900的其它模塊通信。應(yīng)當(dāng)明白,盡管圖中未示出,可以結(jié)合電子設(shè)備900使用其它硬件和/或軟件模塊,包括但不限于:微代碼、設(shè)備驅(qū)動器、冗余處理單元、外部磁盤驅(qū)動陣列、raid系統(tǒng)、磁帶驅(qū)動器以及數(shù)據(jù)備份存儲系統(tǒng)等。通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員易于理解,這里描述的示例實施方式可以通過軟件實現(xiàn),也可以通過軟件結(jié)合必要的硬件的方式來實現(xiàn)。因此,根據(jù)本技術(shù)實施方式的技術(shù)方案可以以軟件產(chǎn)品的形式體現(xiàn)出來,該軟件產(chǎn)品可以存儲在一個非易失性存儲介質(zhì)(可以是cd-rom,u盤,移動硬盤等)中或網(wǎng)絡(luò)上,包括若干指令以使得一臺計算設(shè)備(可以是個人計算機、服務(wù)器、終端裝置、或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行根據(jù)本技術(shù)實施方式的方法。特別地,根據(jù)本技術(shù)的實施例,上文參考流程圖描述的過程可以被實現(xiàn)為計算機程序產(chǎn)品,該計算機程序產(chǎn)品包括:計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)上述推理方法。在本技術(shù)的示例性實施例中,還提供了一種計算機可讀存儲介質(zhì),該計算機可讀存儲介質(zhì)可以是可讀信號介質(zhì)或者可讀存儲介質(zhì)。該算機可讀存儲介質(zhì)上存儲有能夠?qū)崿F(xiàn)本技術(shù)上述方法的程序產(chǎn)品。在一些可能的實施方式中,本技術(shù)的各個方面還可以實現(xiàn)為一種程序產(chǎn)品的形式,其包括程序代碼,當(dāng)所述程序產(chǎn)品在終端設(shè)備上運行時,所述程序代碼用于使所述終端設(shè)備執(zhí)行本說明書上述“示例性方法”部分中描述的根據(jù)本技術(shù)各種示例性實施方式的步驟。本技術(shù)中的計算機可讀存儲介質(zhì)的更具體的例子可以包括但不限于:具有一個或多個導(dǎo)線的電連接、便攜式計算機磁盤、硬盤、隨機訪問存儲器(ram)、只讀存儲器(rom)、可擦式可編程只讀存儲器(eprom或閃存)、光纖、便攜式緊湊磁盤只讀存儲器(cd-rom)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本技術(shù)中,計算機可讀存儲介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號,其中承載了可讀程序代碼。這種傳播的數(shù)據(jù)信號可以采用多種形式,包括但不限于電磁信號、光信號或上述的任意合適的組合??勺x信號介質(zhì)還可以是可讀存儲介質(zhì)以外的任何可讀介質(zhì),該可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序??蛇x地,計算機可讀存儲介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括但不限于無線、有線、光纜、rf等等,或者上述的任意合適的組合。在具體實施時,可以以一種或多種程序設(shè)計語言的任意組合來編寫用于執(zhí)行本技術(shù)操作的程序代碼,所述程序設(shè)計語言包括面向?qū)ο蟮某绦蛟O(shè)計語言—諸如java、c++等,還包括常規(guī)的過程式程序設(shè)計語言—諸如“c”語言或類似的程序設(shè)計語言。程序代碼可以完全地在用戶計算設(shè)備上執(zhí)行、部分地在用戶設(shè)備上執(zhí)行、作為一個獨立的軟件包執(zhí)行、部分在用戶計算設(shè)備上部分在遠程計算設(shè)備上執(zhí)行、或者完全在遠程計算設(shè)備或服務(wù)器上執(zhí)行。在涉及遠程計算設(shè)備的情形中,遠程計算設(shè)備可以通過任意種類的網(wǎng)絡(luò),包括局域網(wǎng)(lan)或廣域網(wǎng)(wan),連接到用戶計算設(shè)備,或者,可以連接到外部計算設(shè)備(例如利用因特網(wǎng)服務(wù)提供商來通過因特網(wǎng)連接)。應(yīng)當(dāng)注意,盡管在上文詳細(xì)描述中提及了用于動作執(zhí)行的設(shè)備的若干模塊或者單元,但是這種劃分并非強制性的。實際上,根據(jù)本技術(shù)的實施方式,上文描述的兩個或更多模塊或者單元的特征和功能可以在一個模塊或者單元中具體化。反之,上文描述的一個模塊或者單元的特征和功能可以進一步劃分為由多個模塊或者單元來具體化。此外,盡管在附圖中以特定順序描述了本技術(shù)中方法的各個步驟,但是,這并非要求或者暗示必須按照該特定順序來執(zhí)行這些步驟,或是必須執(zhí)行全部所示的步驟才能實現(xiàn)期望的結(jié)果。附加的或備選的,可以省略某些步驟,將多個步驟合并為一個步驟執(zhí)行,以及/或者將一個步驟分解為多個步驟執(zhí)行等。通過以上實施方式的描述,本領(lǐng)域的技術(shù)人員易于理解,這里描述的示例實施方式可以通過軟件實現(xiàn),也可以通過軟件結(jié)合必要的硬件的方式來實現(xiàn)。因此,根據(jù)本技術(shù)實施方式的技術(shù)方案可以以軟件產(chǎn)品的形式體現(xiàn)出來,該軟件產(chǎn)品可以存儲在一個非易失性存儲介質(zhì)(可以是cd-rom,u盤,移動硬盤等)中或網(wǎng)絡(luò)上,包括若干指令以使得一臺計算設(shè)備(可以是個人計算機、服務(wù)器、移動終端、或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行根據(jù)本技術(shù)實施方式的方法。本領(lǐng)域技術(shù)人員在考慮說明書及實踐這里公開的發(fā)明后,將容易想到本技術(shù)的其它實施方案。本技術(shù)旨在涵蓋本技術(shù)的任何變型、用途或者適應(yīng)性變化,這些變型、用途或者適應(yīng)性變化遵循本技術(shù)的一般性原理并包括本技術(shù)未公開的本中的公知常識或慣用技術(shù)手段。說明書和實施例僅被視為示例性的,本技術(shù)的真正范圍和精神由所附的權(quán)利要求指出。
背景技術(shù):
1、在自然語言處理技術(shù)領(lǐng)域中,生成式大語言模型(llm),如gpt-4,在問答、程序合成和任務(wù)自動化等眾多應(yīng)用領(lǐng)域表現(xiàn)出色,但llm的參數(shù)眾多、架構(gòu)復(fù)雜,處理單個推理請求也需要幾秒鐘,速度較慢。
2、相關(guān)技術(shù)中,利用小型推測模型(ssm)處理prompt(提示),輸出token(用于表示文本數(shù)的最小單元)序列,并使用llm檢查token序列的正確性,檢查通過后,將該token序列作為推理結(jié)果。
3、然而,由于ssm在模型容量上遠小于llm,通常需要逐個檢查多個token序列后才能得到可以檢查通過的token序列,進而導(dǎo)致得到推理結(jié)果的速度也較慢。
技術(shù)實現(xiàn)思路
1、本技術(shù)提供一種推理方法、裝置、電子設(shè)備及計算機可讀存儲介質(zhì),至少在一定程度上克服了相關(guān)技術(shù)中推理速度慢的問題。
2、本技術(shù)的其他特性和優(yōu)點將通過下面的詳細(xì)描述變得顯然,或部分地通過本技術(shù)的實踐而習(xí)得。
3、根據(jù)本技術(shù)的一個方面,提供了一種推理方法,用于推理設(shè)備,包括:獲取prompt、至少一個ss和llm;將所述prompt輸入所述至少一個ssm中的每一ssm,通過每一ssm對所述prompt進行如下處理:根據(jù)所述prompt派生出多個第一token;在任一第一token的置信度大于第一置信度閾值時,繼續(xù)在所述任一第一token的基礎(chǔ)上繼續(xù)派生出多個第二token;在任一第二token的置信度大于所述第一置信度閾值時,繼續(xù)在所述任一第二token的基礎(chǔ)上繼續(xù)派生后續(xù)的token,直至派生的token的置信度均不大于所述第一置信度閾值,得到ssm對應(yīng)token樹;在所述至少一個ssm為一個ssm時,將ssm對應(yīng)的token樹作為目標(biāo)token樹,在所述至少一個ssm為多個ssm時,將所述多個ssm對應(yīng)的token樹進行合并,得到目標(biāo)token樹;從所述目標(biāo)token樹中的根節(jié)點開始,檢查每一token序列的節(jié)點上的token與所述llm根據(jù)所述prompt生成的原始輸出的匹配情況,并根據(jù)匹配結(jié)果生成推理結(jié)果。
4、利用至少一個ssm一次性生成多個第一token,并在此基礎(chǔ)上繼續(xù)生成多個第二token及后續(xù)的token,并組織成目標(biāo)token樹的方式,使得利用llm驗證目標(biāo)token樹中所有的token序列時,可以一次遍歷llm的參數(shù),實現(xiàn)驗證目標(biāo)token樹中所有的token序列與llm輸出的一致性,減少了對llm參數(shù)的內(nèi)存訪問次數(shù),加快了推理結(jié)果的生成。
5、進一步地,利用token樹中每一節(jié)點上token的置信度來判斷是否繼續(xù)在該節(jié)點上生成后續(xù)的子節(jié)點的方式,可以實現(xiàn)動態(tài)調(diào)整token樹的深度,并且抑制了目標(biāo)token樹上驗證時通過概率較低的token序列的長度,從而有利于減少生成目標(biāo)token樹、驗證目標(biāo)token樹來生成推理結(jié)果的過程中,使用的計算資源、能耗、以及時間,進一步加快了推理結(jié)果的生成。
6、在一些實施例中,在檢查每一token序列的節(jié)點上的token與所述llm根據(jù)所述prompt生成的原始輸出的匹配情況的過程中,優(yōu)先選擇token的置信度更高的子節(jié)點。
7、通過在檢查節(jié)點上的token與原始輸出的匹配情況中,優(yōu)先選擇token的置信度更高的子節(jié)點的方式,更大概率可以更快地檢查出與原始輸出的匹配的token序列,大大減少驗證token樹所需使用的時間,進一步加快了生成推理結(jié)果的速度。
8、根據(jù)本技術(shù)的另一個方面,還提供了另一種推理方法,應(yīng)用于推理設(shè)備,包括:獲取prompt、至少一個ssm和llm;將所述prompt輸入所述至少一個ssm中的每一ssm,通過每一ssm對所述prompt進行處理,得到每一ssm對應(yīng)的token樹;在所述至少一個ssm為一個ssm時,將ssm對應(yīng)的token樹作為目標(biāo)token樹,在所述至少一個ssm為多個ssm時,將所述多個ssm對應(yīng)的token樹進行合并,得到目標(biāo)token樹;從所述目標(biāo)token樹中的根節(jié)點開始,檢查每一token序列的節(jié)點上的token與所述llm根據(jù)所述prompt生成的原始輸出的匹配情況,并根據(jù)匹配結(jié)果生成推理結(jié)果,其中,在檢查匹配情況的過程中選擇子節(jié)點時,優(yōu)先選擇token的置信度更高的子節(jié)點。
9、利用至少一個ssm一次性生成多個第一token,并在此基礎(chǔ)上繼續(xù)生成多個第二token及后續(xù)的token,并組織成目標(biāo)token樹的方式,使得利用llm驗證目標(biāo)token樹中所有的token序列時,可以一次遍歷llm的參數(shù),來實現(xiàn)驗證目標(biāo)token樹中所有的token序列與llm輸出的一致性,減少了對llm參數(shù)的內(nèi)存訪問次數(shù),加快了推理結(jié)果的生成。
10、進一步地,通過在檢查節(jié)點上的token與原始輸出的匹配情況中,優(yōu)先選擇token的置信度更高的子節(jié)點的方式,更大概率可以更快地檢查出與原始輸出的匹配的token序列,大大減少驗證token樹所需使用的時間,進一步加快了生成推理結(jié)果的速度。
11、在一些實施例中,在檢查每一token序列的節(jié)點上的token與所述llm根據(jù)所述prompt生成的原始輸出的匹配情況的過程中,任一節(jié)點上的token的置信度不大于第二置信度閾值時,停止對所述任一節(jié)點所在的token序列的檢查。
12、通過采取token樹中每一節(jié)點上token的置信度不大于第二置信度閾值時,停止對該節(jié)點所在的token序列的檢查的方式,可減少驗證目標(biāo)token樹來生成推理結(jié)果的過程中使用的計算資源、能耗、以及時間,進一步加快了推理結(jié)果的生成。
13、根據(jù)本技術(shù)的再一個方面,還提供了一種推理裝置,應(yīng)用于推理設(shè)備,包括:
14、第一獲取模塊,用于獲取prompt、至少一個ssm和llm;第一處理模塊,用于將所述prompt輸入所述至少一個ssm中的每一ssm,通過每一ssm對所述prompt進行如下處理:根據(jù)所述prompt派生出多個第一token;在任一第一token的置信度大于第一置信度閾值時,繼續(xù)在所述任一第一token的基礎(chǔ)上繼續(xù)派生出多個第二token;在任一第二token的置信度大于所述第一置信度閾值時,繼續(xù)在所述任一第二token的基礎(chǔ)上繼續(xù)派生后續(xù)的token,直至派生的token的置信度均不大于所述第一置信度閾值,得到ssm對應(yīng)token樹;第一定義與合并模塊,用于在所述至少一個ssm為一個ssm時,將ssm對應(yīng)的token樹作為目標(biāo)token樹,在所述至少一個ssm為多個ssm時,將所述多個ssm對應(yīng)的token樹進行合并,得到目標(biāo)token樹;第一檢查與生成模塊,用于從所述目標(biāo)token樹中的根節(jié)點開始,檢查每一token序列的節(jié)點上的token與所述llm根據(jù)所述prompt生成的原始輸出的匹配情況,并根據(jù)匹配結(jié)果生成推理結(jié)果。
15、在一些實施例中,所述第一檢查與生成模塊,還用于在檢查每一token序列的節(jié)點上的token與所述llm根據(jù)所述prompt生成的原始輸出的匹配情況的過程中,優(yōu)先選擇token的置信度更高的子節(jié)點。
16、根據(jù)本技術(shù)的又一個方面,還提供了一種推理裝置,用于推理設(shè)備,包括:第二獲取模塊,用于獲取prompt、至少一個ssm和llm;第二處理模塊,用于將所述prompt輸入所述至少一個ssm中的每一ssm,通過每一ssm對所述prompt進行處理,得到每一ssm對應(yīng)的token樹;第二定義與合并模塊,用于在所述至少一個ssm為一個ssm時,將ssm對應(yīng)的token樹作為目標(biāo)token樹,在所述至少一個ssm為多個ssm時,將所述多個ssm對應(yīng)的token樹進行合并,得到目標(biāo)token樹;第二檢查與生成模塊,用于從所述目標(biāo)token樹中的根節(jié)點開始,檢查每一token序列的節(jié)點上的token與所述llm根據(jù)所述prompt生成的原始輸出的匹配情況,并根據(jù)匹配結(jié)果生成推理結(jié)果,其中,在檢查匹配情況的過程中選擇子節(jié)點時,優(yōu)先選擇token的置信度更高的子節(jié)點。
17、在一些實施例中,所述第二檢查與生成模塊,還用于在檢查每一token序列的節(jié)點上的token與所述llm根據(jù)所述prompt生成的原始輸出的匹配情況的過程中,任一節(jié)點上的token的置信度不大于第二置信度閾值時,停止對所述任一節(jié)點所在的token序列的檢查。
18、根據(jù)本技術(shù)的又一個方面,還提供了一種電子設(shè)備,該電子設(shè)備包括:處理器;以及存儲器,用于存儲所述處理器的可執(zhí)行指令;其中,所述處理器配置為經(jīng)由執(zhí)行所述可執(zhí)行指令來執(zhí)行上述任意一項所述的推理方法。
19、根據(jù)本技術(shù)的又一個方面,還提供了一種計算機可讀存儲介質(zhì),其上存儲有計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)上述任意一項所述的推理方法。
20、根據(jù)本技術(shù)的又一個方面,還提供了一種計算機程序產(chǎn)品,包括計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)上述任意一項的推理方法。