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