本技術(shù)涉及終端,尤其涉及一種模型加載方法及終端設(shè)備。
背景技術(shù):
1、為了向用戶提供更好的使用體驗(yàn),終端設(shè)備提供的功能越來越多樣化。例如,語音助手功能作為終端設(shè)備的一種新型功能,可提供語音交互、語音控制等多方面的服務(wù)。終端設(shè)備在提供語音助手功能時(shí),需要加載相應(yīng)功能模型的模型文件,以通過相應(yīng)功能模型提供對應(yīng)的功能。
2、但是,對于大型模型而言,大型模型的模型文件比較龐大,數(shù)據(jù)量可達(dá)上千兆級別。在使用終端設(shè)備的大型模型功能時(shí),大型模型的模型文件加載緩慢,大型模型啟動(dòng)的時(shí)間較長,影響用戶體驗(yàn)。
技術(shù)實(shí)現(xiàn)思路
1、本技術(shù)提供一種模型加載方法及終端設(shè)備,用于提升大型模型的加載速率,縮短大型模型啟動(dòng)的時(shí)間,提升用戶的使用體驗(yàn)。
2、為達(dá)到上述目的,本技術(shù)的實(shí)施例采用如下技術(shù)方案:
3、第一方面,本技術(shù)提供一種模型加載方法,應(yīng)用于終端設(shè)備,終端設(shè)備中安裝有第一應(yīng)用,第一應(yīng)用用于通過預(yù)設(shè)語言模型提供語音助手功能。終端設(shè)備中創(chuàng)建有第一內(nèi)存池,第一內(nèi)存池用于加載預(yù)設(shè)語言模型的模型文件,預(yù)設(shè)語言模型的模型文件的總數(shù)據(jù)量大于第一預(yù)設(shè)數(shù)據(jù)量。在未運(yùn)行預(yù)設(shè)語言模型的情況下,在第一內(nèi)存池中加載預(yù)設(shè)語言模型的至少部分模型文件,接收第一用戶指令,第一用戶指令用于觸發(fā)第一應(yīng)用的語音助手功能。響應(yīng)于第一用戶指令,在第一內(nèi)存池中加載有預(yù)設(shè)語言模型的全部模型文件的情況下,運(yùn)行預(yù)設(shè)語言模型,通過預(yù)設(shè)語言模型生成第一用戶指令的語義推理結(jié)果。
4、通過這種方式,通過為預(yù)設(shè)語言模型設(shè)置第一內(nèi)存池,可以降低終端設(shè)備為大型語言模型申請以及釋放內(nèi)存空間的頻率,降低內(nèi)存空間的碎片化,提升內(nèi)存空間的利用率。終端設(shè)備在大型語言模型空閑時(shí),預(yù)先在第一內(nèi)存池中載入大型語言模型的至少部分模型文件,可以降低大型語言模型啟動(dòng)時(shí)的內(nèi)存壓力,加快大型語言模型的啟動(dòng)速度。
5、在第一方面的一種可能的實(shí)現(xiàn)方式中,在未運(yùn)行預(yù)設(shè)語言模型的情況下,獲取終端設(shè)備的可用內(nèi)存信息,該可用內(nèi)存信息用于指示可用內(nèi)存空間的大小。若可用內(nèi)存空間大于第一預(yù)設(shè)內(nèi)存閾值,則在第一內(nèi)存池中加載預(yù)設(shè)語言模型的至少部分模型文件,可用內(nèi)存空間的大小與第一內(nèi)存池的大小呈反比。
6、該實(shí)現(xiàn)方式中,終端設(shè)備的可用內(nèi)存空間大于第一預(yù)設(shè)內(nèi)存閾值,表示終端設(shè)備的可用內(nèi)存空間充足、內(nèi)存狀態(tài)良好。這種情況下,在第一內(nèi)存池中預(yù)先加載大型語言模型的模型文件,對終端設(shè)備的內(nèi)存壓力影響較小,還可以降低大型語言模型啟動(dòng)時(shí)模型文件加載的數(shù)據(jù)量,加快大型語言模型的啟動(dòng)速度。
7、在第一方面的另一種可能的實(shí)現(xiàn)方式中,若可用內(nèi)存空間小于第一預(yù)設(shè)內(nèi)存閾值、且大于第二預(yù)設(shè)內(nèi)存閾值,則在第一內(nèi)存池中卸載部分已加載的模型文件,該第二預(yù)設(shè)內(nèi)存閾值大于第一預(yù)設(shè)內(nèi)存閾值。
8、該實(shí)現(xiàn)方式中,終端設(shè)備的可用內(nèi)存空間小于第一預(yù)設(shè)內(nèi)存閾值、且大于第二預(yù)設(shè)內(nèi)存閾值,表示終端設(shè)備的內(nèi)存壓力增大,可用內(nèi)存空間變小。這種情況下,在第一內(nèi)存池中卸載大型語言模型的模型文件,可以降低終端設(shè)備的內(nèi)存壓力。同時(shí),預(yù)設(shè)緩存池中還可以保留部分模型文件,使大型語言模型在啟動(dòng)時(shí)預(yù)設(shè)緩存池中加載有模型文件的部分模型文件。
9、在第一方面的另一種可能的實(shí)現(xiàn)方式中,若預(yù)設(shè)語言模型服務(wù)占用的內(nèi)存空間大于預(yù)設(shè)占用閾值,且可用內(nèi)存空間小于或等于第三預(yù)設(shè)內(nèi)存閾值,則將預(yù)設(shè)語言模型服務(wù)設(shè)置為可查殺狀態(tài),該預(yù)設(shè)語言模型服務(wù)用于運(yùn)行預(yù)設(shè)語言模型,第三預(yù)設(shè)內(nèi)存閾值大于第二預(yù)設(shè)內(nèi)存閾值,且小于第一預(yù)設(shè)內(nèi)存閾值。
10、該實(shí)現(xiàn)方式中,終端設(shè)備的可用內(nèi)存空間在第三預(yù)設(shè)內(nèi)存閾值和第二預(yù)設(shè)內(nèi)存閾值之間,表示終端設(shè)備的內(nèi)存壓力較大,可用內(nèi)存空間不足。為了緩解終端設(shè)備的內(nèi)存壓力,還可以在預(yù)設(shè)語言模型服務(wù)占用的內(nèi)存空間較大時(shí),將預(yù)設(shè)語言模型服務(wù)設(shè)置為可查殺狀態(tài)。通過這種方式,可以通過查殺大型語言模型服務(wù)的方式進(jìn)一步釋放內(nèi)存空間,緩解內(nèi)存壓力。
11、在第一方面的另一種可能的實(shí)現(xiàn)方式中,若可用內(nèi)存空間小于或等于第二預(yù)設(shè)內(nèi)存閾值,則在第一內(nèi)存池中卸載全部已加載的模型文件。在該實(shí)現(xiàn)方式中,在可用內(nèi)存空間小于或等于第二預(yù)設(shè)內(nèi)存閾值的情況下,表示終端設(shè)備的內(nèi)存壓力大,可用內(nèi)存空間嚴(yán)重不足。這種情況下,在第一內(nèi)存池中卸載已加載的全部模型文件,可以緩解終端設(shè)備的內(nèi)存壓力。
12、在第一方面的另一種可能的實(shí)現(xiàn)方式中,還可以將預(yù)設(shè)語言模型服務(wù)設(shè)置為可查殺狀態(tài)。在該實(shí)現(xiàn)方式中,在終端設(shè)備的可用內(nèi)存空間嚴(yán)重不足的情況下,無論大語言模型服務(wù)占用的內(nèi)存空間是否大于預(yù)設(shè)占用閾值,終端設(shè)備均將大型語言模型服務(wù)設(shè)置為可查殺狀態(tài),從而通過查殺大型語言模型服務(wù)的方式進(jìn)一步釋放內(nèi)存空間,緩解內(nèi)存壓力。
13、在第一方面的另一種可能的實(shí)現(xiàn)方式中,響應(yīng)于第一用戶指令,若存在未加載的模型文件,則根據(jù)第一數(shù)據(jù)量預(yù)先填充第一內(nèi)存池,第一數(shù)據(jù)量是未加載的模型文件的數(shù)據(jù)量。響應(yīng)于預(yù)設(shè)語言模型服務(wù)的內(nèi)存申請請求,在預(yù)先填充的第一內(nèi)存池中加載未加載的模型文件。在完成在第一內(nèi)存池中加載預(yù)設(shè)語言模型的全部模型文件后,運(yùn)行預(yù)設(shè)語言模型,通過預(yù)設(shè)語言模型生成第一用戶指令的語義推理結(jié)果。
14、在該實(shí)現(xiàn)方式中,終端設(shè)備在未收到大型語言模型服務(wù)的內(nèi)存申請請求的情況下即填充第一內(nèi)存池。這樣可以提前為大型語言模型的模型文件加載準(zhǔn)備內(nèi)存空間,進(jìn)一步提升大型語言模型的啟動(dòng)速度。
15、在第一方面的另一種可能的實(shí)現(xiàn)方式中,若終端設(shè)備的可用內(nèi)存空間小于第一數(shù)據(jù)量,則對終端設(shè)備已分配的內(nèi)存空間進(jìn)行回收。在該實(shí)現(xiàn)方式中,若可用內(nèi)內(nèi)存空間小于第一數(shù)據(jù)量,則表示可用內(nèi)存空間不足以向第一內(nèi)存池提供加載第一數(shù)據(jù)量的內(nèi)存空間,這種情況下,終端設(shè)備則通過對內(nèi)存回收的方式,擴(kuò)充可用內(nèi)存空間,以使可用內(nèi)存空間存在足有的空間向第一內(nèi)存池提供供給。
16、在第一方面的另一種可能的實(shí)現(xiàn)方式中,在所述終端設(shè)備啟動(dòng)之后,創(chuàng)建所述預(yù)設(shè)語言模型的第一內(nèi)存池。在該實(shí)現(xiàn)方式中,終端設(shè)備在啟動(dòng)時(shí)即為大型語言模型創(chuàng)建專用內(nèi)存池,從而在加載大型語言模型的過程中無需與其它進(jìn)程的競爭內(nèi)存資源,還可以降低終端設(shè)備為大型語言模型申請以及釋放內(nèi)存空間的頻率,降低內(nèi)存空間的碎片化,提升內(nèi)存空間的利用率。
17、第二方面,本技術(shù)提供一種電子設(shè)備,包括:存儲器、處理器及存儲在存儲器上的計(jì)算機(jī)程序。當(dāng)處理器運(yùn)行所述計(jì)算機(jī)程序時(shí),使得電子設(shè)備執(zhí)行上述第一方面及其任一種可能的實(shí)現(xiàn)方式所述的方法。
18、第三方面,本技術(shù)提供一種計(jì)算機(jī)可讀存儲介質(zhì),存儲有計(jì)算機(jī)程序,當(dāng)計(jì)算機(jī)程序被電子設(shè)備運(yùn)行時(shí),使得電子設(shè)備執(zhí)行上述第一方面及其任一種可能的實(shí)現(xiàn)方式所述的方法。
19、第四方面,本技術(shù)提供一種包含程序指令的計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)程序,當(dāng)計(jì)算機(jī)程序被電子設(shè)備運(yùn)行時(shí),使得計(jì)算機(jī)可以執(zhí)行上述第一方面及其任一種可能的實(shí)現(xiàn)方式所述的方法。例如,該計(jì)算機(jī)可以是上述電子設(shè)備。
20、第五方面,本技術(shù)提供一種芯片系統(tǒng),該芯片系統(tǒng)應(yīng)用于電子設(shè)備。該芯片系統(tǒng)包括接口電路和處理器。接口電路和處理器通過線路互聯(lián)。接口電路用于從存儲器接收信號,并向處理器發(fā)送信號,信號包括存儲器中存儲的計(jì)算機(jī)指令。當(dāng)處理器執(zhí)行計(jì)算機(jī)指令時(shí),電子設(shè)備執(zhí)行上述第一方面及其任一種可能的實(shí)現(xiàn)方式所述的方法。