本技术涉及计算机,尤其涉及一种模型的迁移方法及相关设备。
背景技术:
1、在深度学习模型的训练和推理过程中,图形处理单元(graphics processingunit,gpu)因其强大的并行计算能力,成为了支持大规模计算的核心硬件设备。
2、目前,随着深度学习模型的参数规模的不断扩展,单个深度学习模型占用的gpu计算资源和内存资源急剧增加;同时,由于人工智能的应用场景越来越广泛,涉及自然语言处理、图像识别、语音处理、智能推荐等多个领域,而这些应用场景中的深度学习模型各自具有独特的功能需求,使得gpu中需要并行部署和管理多种不同的模型,这些原因最终导致有限的gpu无法承载超出负荷的推理任务。
3、现有技术中,针对上述gpu无法承载超出负荷的推理任务的问题,提出对部署在gpu中的深度学习模型进行量化处理,例如通过降低模型参数精度、减少模型隐藏层、简化神经网络结构等,从而实现对深度学习模型“瘦身”,以便gpu能够有剩余资源进行推理任务。
4、然而,现有技术中通过对深度学习模型进行量化处理的方式,会导致深度学习模型的预测能力下降,对于准确率、精准率要求较高的应用场景不适用。
5、基于此,如何对gpu中部署的深度学习模型进行管理,以保证gpu能够有剩余资源进行推理任务,是本领域技术人员亟需解决的技术问题。
技术实现思路
1、本技术实施例提供一种模型的迁移方法,以解决现有技术中通过对深度学习模型进行量化处理以使gpu能有资源执行推理任务时,降低了模型的预测能力和准确性,导致在高准确率和精准率要求的应用场景中不适用的问题。
2、本技术实施例还提供一种模型的迁移装置,一种电子设备,一种计算机可读存储介质,以及一种计算机程序产品。
3、本技术实施例采用下述技术方案:
4、第一方面,本技术提供一种模型的迁移方法,包括:
5、确定图形处理单元中的算法模型被调用执行推理任务的调用频次;
6、若所述调用频次小于预设调用频次阈值,则将所述调用频次小于所述预设调用频次阈值的空闲算法模型的层次结构信息和与推理任务相关的模型参数信息迁移至cpu和内存,以及使所述空闲算法模型的线程进入休眠状态;
7、当接收到所述空闲算法模型的调用请求时,唤醒处于休眠状态的所述线程,并将所述空闲算法模型的所述层次结构信息和所述模型参数信息从所述cpu和所述内存中迁移至所述图形处理单元。
8、可选的,将调用频次小于预设调用频次阈值的空闲算法模型的层次结构信息和与推理任务相关的模型参数信息迁移至cpu和内存,以及使空闲算法模型的线程进入休眠状态,包括:
9、将空闲算法模型的当前运行状态设置为待转移状态,以及使空闲算法模型的线程进入休眠状态;
10、将调用频次小于预设调用频次阈值的空闲算法模型迁移至cpu和内存。
11、可选的,该方法还包括:
12、当空闲算法模型迁移至cpu和内存时,将空闲算法模型的当前运行状态重置为已转移状态。
13、可选的,当接收到空闲算法模型的调用请求时,唤醒处于休眠状态的线程,并将空闲算法模型的层次结构信息和模型参数信息从cpu和内存中迁移至图形处理单元,包括:
14、当接收到空闲算法模型的调用请求时,唤醒处于休眠状态的线程,并将空闲算法模型的当前运行状态重置为执行中;
15、再将空闲算法模型从cpu和内存中迁移至图形处理单元。
16、可选的,在唤醒处于休眠状态的线程,并将空闲算法模型的层次结构信息和模型参数信息从cpu和内存中迁移至图形处理单元之前,该方法还包括:
17、判断空闲算法模型的上一个运行状态是否为已转移状态,其中,上一个运行状态是指空闲算法模型在与当前时刻最接近的历史时刻下的运行状态;
18、若为已转移状态,则判断图形处理单元的当前资源是否满足空闲算法模型执行推理任务的资源需求条件;
19、若当前资源不满足资源需求条件,则发送用于提示图形处理单元资源不足的异常提示信息。
20、可选的,该方法还包括:
21、当监测到主线程将算法模型注册至模型注册机时,向主线程发送算法模型的算法模型标识;
22、将算法模型的运行状态初始化为执行中。
23、第二方面,本技术提供一种模型的迁移装置,包括确定模块、第一迁移模块和第二迁移模块,其中:
24、确定模块,用于确定图形处理单元中的算法模型被调用执行推理任务的调用频次;
25、第一迁移模块,用于若调用频次小于预设调用频次阈值,则将调用频次小于预设调用频次阈值的空闲算法模型的层次结构信息和与推理任务相关的模型参数信息迁移至cpu和内存,以及使空闲算法模型的线程进入休眠状态;
26、第二迁移模块,当接收到空闲算法模型的调用请求时,唤醒处于休眠状态的线程,并将空闲算法模型的层次结构信息和模型参数信息从cpu和内存中迁移至图形处理单元。
27、可选的,第一迁移模块,用于:
28、将空闲算法模型的当前运行状态设置为待转移状态,以及使空闲算法模型的线程进入休眠状态;
29、将调用频次小于预设调用频次阈值的空闲算法模型迁移至cpu和内存。
30、可选的,该装置还用于:
31、当空闲算法模型迁移至cpu和内存时,将空闲算法模型的当前运行状态重置为已转移状态。
32、可选的,第二迁移模块,用于:
33、当接收到空闲算法模型的调用请求时,唤醒处于休眠状态的线程,并将空闲算法模型的当前运行状态重置为执行中;
34、再将空闲算法模型从cpu和内存中迁移至图形处理单元。
35、可选的,该装置还用于:
36、判断空闲算法模型的上一个运行状态是否为已转移状态,其中,上一个运行状态是指空闲算法模型在与当前时刻最接近的历史时刻下的运行状态;
37、若为已转移状态,则判断图形处理单元的当前资源是否满足空闲算法模型执行推理任务的资源需求条件;
38、若当前资源不满足资源需求条件,则发送用于提示图形处理单元资源不足的异常提示信息。
39、可选的,该装置还用于:
40、当监测到主线程将算法模型注册至模型注册机时,向主线程发送算法模型的算法模型标识;
41、将算法模型的运行状态初始化为执行中。
42、第三方面,本技术提供一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的模型的迁移方法的步骤。
43、第四方面,本技术提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的模型的迁移方法的步骤。
44、第五方面,本技术提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上所述的模型的迁移方法。
45、本技术实施例采用的上述至少一个技术方案能够达到以下有益效果:
46、采用本技术实施例提供的方法,可以将调用频次小于预设调用频次阈值的空闲算法模型的层次结构信息和与推理任务相关的模型参数信息迁移至cpu和内存,以及使该空闲算法模型的线程进入休眠状态,直至该空闲算法模型再次被请求调用执行推理任务时,再唤醒处于休眠状态的所述线程,并将该空闲算法模型的层次结构信息和模型参数信息重新迁移至图形处理单元。这样,可以及时释放空闲算法模型占用的图形处理单元的资源,以便图形处理单元能够有剩余资源执行推理任务。并且,采用本技术实施例提供的方法,由于并不需要对深度学习模型“瘦身”,因此,在保证图形处理单元能够有剩余资源执行推理任务的同时,还可以保证深度学习模型的预测能力,能够适用于对于准确率、精准率要求较高的应用场景。
47、此外,本技术中迁移该空闲算法模型的层次结构信息和模型参数信息时,该空闲算法模型的线程可以进入休眠状态,这样,当后续该空闲算法模型再次被请求调用执行推理任务时,可以立即响应调用请求,从而可以保证推理任务的处理效率。
1.一种模型的迁移方法,其特征在于,包括:
2.如权利要求1所述的方法,其特征在于,将所述调用频次小于所述预设调用频次阈值的空闲算法模型的层次结构信息和与推理任务相关的模型参数信息迁移至cpu和内存,以及使所述空闲算法模型的线程进入休眠状态,包括:
3.如权利要求2所述的方法,其特征在于,所述方法还包括:
4.如权利要求1所述的方法,其特征在于,当接收到所述空闲算法模型的调用请求时,唤醒处于休眠状态的所述线程,并将所述空闲算法模型的所述层次结构信息和所述模型参数信息从所述cpu和所述内存中迁移至所述图形处理单元,包括:
5.如权利要求1或4所述的方法,其特征在于,在唤醒处于休眠状态的所述线程,并将所述空闲算法模型的所述层次结构信息和所述模型参数信息从所述cpu和所述内存中迁移至所述图形处理单元之前,所述方法还包括:
6.如权利要求1所述的方法,其特征在于,所述方法还包括:
7.一种模型的迁移装置,其特征在于,包括确定模块、第一迁移模块和第二迁移模块,其中:
8.一种电子设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至6中任一项所述的模型的迁移方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的模型的迁移方法的步骤。
10.一种计算机程序产品,其特征在于,包括计算机程序,该计算机程序被处理器执行时实现权利要求1至6任一项所述的模型的迁移方法。