本技术涉及终端,尤其涉及一种模型加载方法及终端设备。
背景技术:
1、为了向用户提供更好的使用体验,终端设备提供的功能越来越多样化。例如,语音助手功能作为终端设备的一种新型功能,可提供语音交互、语音控制等多方面的服务。终端设备在提供语音助手功能时,需要加载相应功能模型的模型文件,以通过相应功能模型提供对应的功能。
2、但是,对于大型模型而言,大型模型的模型文件比较庞大,数据量可达上千兆级别。在使用终端设备的大型模型功能时,大型模型的模型文件加载缓慢,大型模型启动的时间较长,影响用户体验。
技术实现思路
1、本技术提供一种模型加载方法及终端设备,用于提升大型模型的加载速率,缩短大型模型启动的时间,提升用户的使用体验。
2、为达到上述目的,本技术的实施例采用如下技术方案:
3、第一方面,本技术提供一种模型加载方法,应用于终端设备,终端设备中安装有第一应用,第一应用用于通过预设语言模型提供语音助手功能。终端设备中创建有第一内存池,第一内存池用于加载预设语言模型的模型文件,预设语言模型的模型文件的总数据量大于第一预设数据量。在未运行预设语言模型的情况下,在第一内存池中加载预设语言模型的至少部分模型文件,接收第一用户指令,第一用户指令用于触发第一应用的语音助手功能。响应于第一用户指令,在第一内存池中加载有预设语言模型的全部模型文件的情况下,运行预设语言模型,通过预设语言模型生成第一用户指令的语义推理结果。
4、通过这种方式,通过为预设语言模型设置第一内存池,可以降低终端设备为大型语言模型申请以及释放内存空间的频率,降低内存空间的碎片化,提升内存空间的利用率。终端设备在大型语言模型空闲时,预先在第一内存池中载入大型语言模型的至少部分模型文件,可以降低大型语言模型启动时的内存压力,加快大型语言模型的启动速度。
5、在第一方面的一种可能的实现方式中,在未运行预设语言模型的情况下,获取终端设备的可用内存信息,该可用内存信息用于指示可用内存空间的大小。若可用内存空间大于第一预设内存阈值,则在第一内存池中加载预设语言模型的至少部分模型文件,可用内存空间的大小与第一内存池的大小呈反比。
6、该实现方式中,终端设备的可用内存空间大于第一预设内存阈值,表示终端设备的可用内存空间充足、内存状态良好。这种情况下,在第一内存池中预先加载大型语言模型的模型文件,对终端设备的内存压力影响较小,还可以降低大型语言模型启动时模型文件加载的数据量,加快大型语言模型的启动速度。
7、在第一方面的另一种可能的实现方式中,若可用内存空间小于第一预设内存阈值、且大于第二预设内存阈值,则在第一内存池中卸载部分已加载的模型文件,该第二预设内存阈值大于第一预设内存阈值。
8、该实现方式中,终端设备的可用内存空间小于第一预设内存阈值、且大于第二预设内存阈值,表示终端设备的内存压力增大,可用内存空间变小。这种情况下,在第一内存池中卸载大型语言模型的模型文件,可以降低终端设备的内存压力。同时,预设缓存池中还可以保留部分模型文件,使大型语言模型在启动时预设缓存池中加载有模型文件的部分模型文件。
9、在第一方面的另一种可能的实现方式中,若预设语言模型服务占用的内存空间大于预设占用阈值,且可用内存空间小于或等于第三预设内存阈值,则将预设语言模型服务设置为可查杀状态,该预设语言模型服务用于运行预设语言模型,第三预设内存阈值大于第二预设内存阈值,且小于第一预设内存阈值。
10、该实现方式中,终端设备的可用内存空间在第三预设内存阈值和第二预设内存阈值之间,表示终端设备的内存压力较大,可用内存空间不足。为了缓解终端设备的内存压力,还可以在预设语言模型服务占用的内存空间较大时,将预设语言模型服务设置为可查杀状态。通过这种方式,可以通过查杀大型语言模型服务的方式进一步释放内存空间,缓解内存压力。
11、在第一方面的另一种可能的实现方式中,若可用内存空间小于或等于第二预设内存阈值,则在第一内存池中卸载全部已加载的模型文件。在该实现方式中,在可用内存空间小于或等于第二预设内存阈值的情况下,表示终端设备的内存压力大,可用内存空间严重不足。这种情况下,在第一内存池中卸载已加载的全部模型文件,可以缓解终端设备的内存压力。
12、在第一方面的另一种可能的实现方式中,还可以将预设语言模型服务设置为可查杀状态。在该实现方式中,在终端设备的可用内存空间严重不足的情况下,无论大语言模型服务占用的内存空间是否大于预设占用阈值,终端设备均将大型语言模型服务设置为可查杀状态,从而通过查杀大型语言模型服务的方式进一步释放内存空间,缓解内存压力。
13、在第一方面的另一种可能的实现方式中,响应于第一用户指令,若存在未加载的模型文件,则根据第一数据量预先填充第一内存池,第一数据量是未加载的模型文件的数据量。响应于预设语言模型服务的内存申请请求,在预先填充的第一内存池中加载未加载的模型文件。在完成在第一内存池中加载预设语言模型的全部模型文件后,运行预设语言模型,通过预设语言模型生成第一用户指令的语义推理结果。
14、在该实现方式中,终端设备在未收到大型语言模型服务的内存申请请求的情况下即填充第一内存池。这样可以提前为大型语言模型的模型文件加载准备内存空间,进一步提升大型语言模型的启动速度。
15、在第一方面的另一种可能的实现方式中,若终端设备的可用内存空间小于第一数据量,则对终端设备已分配的内存空间进行回收。在该实现方式中,若可用内内存空间小于第一数据量,则表示可用内存空间不足以向第一内存池提供加载第一数据量的内存空间,这种情况下,终端设备则通过对内存回收的方式,扩充可用内存空间,以使可用内存空间存在足有的空间向第一内存池提供供给。
16、在第一方面的另一种可能的实现方式中,在所述终端设备启动之后,创建所述预设语言模型的第一内存池。在该实现方式中,终端设备在启动时即为大型语言模型创建专用内存池,从而在加载大型语言模型的过程中无需与其它进程的竞争内存资源,还可以降低终端设备为大型语言模型申请以及释放内存空间的频率,降低内存空间的碎片化,提升内存空间的利用率。
17、第二方面,本技术提供一种电子设备,包括:存储器、处理器及存储在存储器上的计算机程序。当处理器运行所述计算机程序时,使得电子设备执行上述第一方面及其任一种可能的实现方式所述的方法。
18、第三方面,本技术提供一种计算机可读存储介质,存储有计算机程序,当计算机程序被电子设备运行时,使得电子设备执行上述第一方面及其任一种可能的实现方式所述的方法。
19、第四方面,本技术提供一种包含程序指令的计算机程序产品,包括计算机程序,当计算机程序被电子设备运行时,使得计算机可以执行上述第一方面及其任一种可能的实现方式所述的方法。例如,该计算机可以是上述电子设备。
20、第五方面,本技术提供一种芯片系统,该芯片系统应用于电子设备。该芯片系统包括接口电路和处理器。接口电路和处理器通过线路互联。接口电路用于从存储器接收信号,并向处理器发送信号,信号包括存储器中存储的计算机指令。当处理器执行计算机指令时,电子设备执行上述第一方面及其任一种可能的实现方式所述的方法。