云计算缓存人工智能模型迁移方法、系统、终端以及介质

文档序号:30220947发布日期:2022-05-31 21:55阅读:75来源:国知局
云计算缓存人工智能模型迁移方法、系统、终端以及介质
demand sequence.ieee transactions on knowledge and data engineering 15,1487

1497.]探索了在全连接网络环境下的离线单个请求的缓存优化方法。wang等人在[wang,y.,he,s.,fan,x.,xu,c.,culberson,j.,horton,j.,2017.data caching in next generation mobile cloud services,online vs.off-line,in:parallel processing(icpp),2017 46th international conference on,pp.412

421.]中将数据缓存问题延展至云服务器环境,并提出了对应的最优离线算法。然而这些方法都只能在离线的状态下工作,其次,这些算法仅仅探索了包含一个模型的人工智能请求的缓存与迁移问题,所提协同迁移的请求满足模式也就无从谈起。最后,对于单个模型的迁移方式的研究具有较大的局限性。
[0007]
huang等人在[huang,d.,fan,x.,wang,y.,he,s.,xu,c.,2019.dp_greedy:a two-phase caching algorithm for mobile cloud services,in:2019ieee international conference on cluster computing(cluster),ieee.pp.1

10.]中利用了动态规划与贪心策略对多数据请求进行了离线优化,并在满足请求时根据请求的特征采用了打包传输机制。该方法也只能应对离线请求,具有较大的局限性。此外,该方法仅可以在同构的服务器环境下运行,无法应对具有很强异构性的异构边云环境。


技术实现要素:

[0008]
本技术提供了一种云计算缓存人工智能模型迁移方法、系统、终端以及存储介质,旨在至少在一定程度上解决现有技术中的上述技术问题之一。
[0009]
为了解决上述问题,本技术提供了如下技术方案:
[0010]
一种云计算缓存人工智能模型迁移方法,包括:
[0011]
接收模型迁移请求,将所述模型迁移请求添加到历史请求记录中;所述历史请求记录用于存储所有历史模型迁移请求;
[0012]
基于所述历史请求记录中的历史模型迁移请求,利用jaccard相似性算法判断所述模型迁移请求所请求的目标模型是否可以进行协同迁移,并根据判断结果生成对应的迁移策略;
[0013]
根据所述迁移策略对所述模型迁移请求所请求的目标模型进行迁移。
[0014]
本技术实施例采取的技术方案还包括:所述基于所述历史请求记录中的历史多模型迁移请求,利用jaccard相似性算法判断所述模型迁移请求所请求的目标模型是否可以进行协同迁移之前还包括:
[0015]
从所述历史请求记录中筛选出所有多模型迁移请求,所述多模型迁移请求是指请求迁移的目标模型包括至少两个的模型迁移请求;
[0016]
判断添加当前模型迁移请求后所述历史请求记录中的多模型迁移请求是否发生改变,如果没有发生改变,则无需重新生成迁移策略;如果发生改变,利用jaccard相似性算法判断所述模型迁移请求所请求的目标模型是否可以进行协同迁移。
[0017]
本技术实施例采取的技术方案还包括:所述基于所述历史请求记录中的历史多模型迁移请求,利用jaccard相似性算法判断所述模型迁移请求所请求的目标模型是否可以进行协同迁移,并根据判断结果生成对应的迁移策略具体为:
[0018]
对所述当前模型迁移请求进行分析,判断当前模型迁移请求是单模型迁移请求还
是多模型迁移请求,所述单模型迁移请求是指请求迁移的目标模型仅包括一个的模型迁移请求;如果当前模型迁移请求为单模型迁移请求,则不执行协同迁移策略;
[0019]
如果当前模型迁移请求为多模型迁移请求,基于历史请求记录判断当前模型迁移请求的至少两个目标模型的jaccard相似度是否大于jaccard相似性算法的频繁性阈值,如果至少两个目标模型的jaccard相似度大于jaccard相似性算法的频繁性阈值,则认为至少两个目标模型可以进行协同迁移;反之,则认为至少两个目标模型不可以进行协同迁移。
[0020]
本技术实施例采取的技术方案还包括:所述根据所述迁移策略对所述模型迁移请求所请求的目标模型进行迁移具体为:
[0021]
判断所述当前模型迁移请求的目标模型在服务器本地是否存在可用的模型缓存副本,如果服务器本地存在模型缓存副本,则利用服务器本地的模型缓存副本响应当前模型迁移请求;如果服务器本地至少不存在任意一个目标模型的模型缓存副本,
[0022]
判断当前模型迁移请求属于单模型迁移请求还是多模型迁移请求,如果属于单模型迁移请求,针对不存在模型缓存副本的目标模型,从拥有该目标模型的任一服务器上对该目标模型进行迁移;如果属于多模型迁移请求,
[0023]
判断当前模型迁移请求所请求的至少两个目标模型中是否只有部分模型不存在模型缓存副本,如果是,针对不存在模型缓存副本的目标模型,从拥有该目标模型的任一服务器上对该目标模型进行迁移;否则,
[0024]
判断当前模型迁移请求所请求的至少两个目标模型是否可以协同迁移,如果不可以协同迁移,针对每个目标模型,分别从拥有该目标模型的任一服务器上对该目标模型进行迁移;如果可以协同迁移,
[0025]
判断是否存在同时拥有所有目标模型的另一个服务器,如果存在,通过所述另一个服务器对所有目标模型进行协同迁移;否则,针对每一个目标模型,分别从拥有该目标模型的任一服务器上对该目标模型进行迁移。
[0026]
本技术实施例采取的技术方案还包括:所述根据所述迁移策略对所述模型迁移请求所请求的目标模型进行迁移之后还包括:
[0027]
对于每一个新迁移的人工智能模型,更新所述模型的全局缓存计数器,并在服务器本地延长该模型的缓存副本过期时间;所述全局缓存计数器用于记录每个模型在分布服务器本地拥有的缓存副本数量。
[0028]
本技术实施例采取的技术方案还包括:所述根据所述迁移策略对所述模型迁移请求所请求的目标模型进行迁移之后还包括:
[0029]
判断服务器本地是否存在过期的模型缓存副本,判断服务器本地是否存在过期的模型缓存副本,并对过期的模型缓存副本进行异构环境下的删除或维护;所述判断服务器本地是否存在过期的模型缓存副本具体为:
[0030]
如果一个人工智能模型在第i个边云服务器上缓存的时间长于δti,表示该模型在本地的缓存代价大于将本地的模型缓存副本删除之后进行迁移的代价,则判定该模型在服务器本地的缓存副本过期;其中δti表示一个人工智能模型在第i个边云服务器上的缓存副本过期时间,δti=λ/μi,其中λ表示人工智能模型同构的单位迁移代价,μ表示异构的人工智能模型缓存代价。
[0031]
本技术实施例采取的技术方案还包括:所述对过期的模型缓存副本进行异构环境
下的删除或维护具体为:
[0032]
判断所述模型缓存副本过期事件发生在master服务器还是第i个边云服务器,所述master服务器为存储代价最小的边云设备;
[0033]
如果所述模型缓存副本过期事件发生在master服务器,
[0034]
判断过期的模型缓存副本是否为全局唯一缓存副本,如果是全局唯一缓存副本,延长所述过期的模型缓存副本的过期时间,延长时间为δti;
[0035]
如果不是全局唯一缓存副本,删除所述过期的模型缓存副本,更新该模型的全局缓存计数器,并将该模型的副本过期信息设置为0;
[0036]
如果所述模型缓存副本过期事件发生在第i个边云服务器,
[0037]
判断所述过期的模型缓存副本是否为全局唯一缓存副本,如果不是全局唯一缓存副本,则删除该过期模型的缓存副本,更新模型全局缓存计数器,并将模型缓存副本过期信息设置为0;
[0038]
如果是全局唯一缓存副本,判断该模型距离上次调用的时间间隔是否达到δti,如果达到δti,将所述模型缓存副本的过期时间延长一个单位时长δti,并在对所述过期时间延长后继续判断该模型距离上次调用的时间间隔是否达到2δti,如果达到,将所述过期模型缓存副本从第i个边云服务器迁移至master服务器,并删除第i个边云服务器上该模型的缓存副本,将第i个边云服务器上该模型的缓存副本过期信息设置为0,将master服务器上该模型的缓存副本过期信息设置为当前时间加δtj,j表示master服务器。
[0039]
本技术实施例采取的另一技术方案为:一种云计算缓存人工智能模型迁移系统,包括:
[0040]
请求接收模块:用于接收模型迁移请求,将所述模型迁移请求添加到历史请求记录中;所述历史请求记录用于存储所有历史模型迁移请求;
[0041]
迁移计算模块:用于基于所述历史请求记录中的历史模型迁移请求,利用jaccard相似性算法判断所述模型迁移请求所请求的目标模型是否可以进行协同迁移,并根据判断结果生成对应的迁移策略;
[0042]
迁移执行模块:用于根据所述迁移策略对所述模型迁移请求所请求的目标模型进行迁移。
[0043]
本技术实施例采取的又一技术方案为:一种终端,所述终端包括处理器、与所述处理器耦接的存储器,其中,
[0044]
所述存储器存储有用于实现所述云计算缓存人工智能模型迁移方法的程序指令;
[0045]
所述处理器用于执行所述存储器存储的所述程序指令以控制云计算缓存人工智能模型迁移。
[0046]
本技术实施例采取的又一技术方案为:一种存储介质,存储有处理器可运行的程序指令,所述程序指令用于执行所述云计算缓存人工智能模型迁移方法。
[0047]
相对于现有技术,本技术实施例产生的有益效果在于:本技术实施例的云计算缓存人工智能模型迁移方法、系统、终端以及存储介质通过动态的积累历史模型迁移请求做出迁移决策,基于迁移决策,对经常频繁被同时请求的多个模型进行协同迁移,可以充分利用协同迁移所带来的空间压缩,在满足模型迁移请求时尽可能的减少迁移代价,从而有效地降低代价成本。本技术实施例可以工作在在线场景及异构边云环境之中,克服了由于硬
件的异构所导致的代价异构性,且不需要对模型迁移请求做任何先前假设,更具有一般性与实用性。
附图说明
[0048]
图1是本技术实施例的云计算缓存人工智能模型迁移方法的流程图;
[0049]
图2为本技术实施例的模型协同迁移过程示意图;
[0050]
图3为本技术实施例的模型缓存副本维护算法流程图;
[0051]
图4为本技术实施例的云计算缓存人工智能模型迁移系统结构示意图;
[0052]
图5为本技术实施例的终端结构示意图;
[0053]
图6为本技术实施例的存储介质的结构示意图。
具体实施方式
[0054]
为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本技术,并不用于限定本技术。
[0055]
请参阅图1,是本技术实施例的云计算缓存人工智能模型迁移方法的流程图。本技术实施例的云计算缓存人工智能模型迁移方法包括以下步骤:
[0056]
s10:接收模型迁移请求;
[0057]
本步骤中,模型迁移请求均以在线形式到来,模型迁移请求包括单模型迁移请求和多模型迁移请求,单模型迁移请求是指请求迁移的目标模型仅包括一个的模型迁移请求,例如对于一个文本分词任务只需要请求一个文本分词模型。多模型迁移请求是指请求迁移的目标模型包括至少两个的模型迁移请求,例如对于一个文本预处理任务需要同时请求文本分词模型以及词性还原模型。
[0058]
s20:将当前模型迁移请求添加到历史请求记录中,并删除历史请求记录中超过设定时间的历史模型迁移请求;
[0059]
本步骤中,历史请求记录用于存储所有历史模型迁移请求。由于对于人工智能模型的请求特征会随时间而改变,而过于久远的历史记录对于打包策略的指导意义会随时间的进行变得越来越弱,尤其是在模型请求模式随时间进行而有所改变的情况下。因此,需要根据设定时间对过于久远的历史记录进行删除。
[0060]
s30:从历史请求记录中筛选出所有多模型迁移请求,并判断添加当前模型迁移请求后历史请求记录中的多模型迁移请求是否发生改变,如果发生改变,执行s40;否则,执行s50;
[0061]
本步骤中,由于只能针对多模型迁移请求进行协同迁移,因此,需要从历史请求记录中筛选出所有的多模型迁移请求。如果在加入当前模型迁移请求后,历史请求记录中的历史多模型迁移请求没有发生改变,则无需重新生成迁移策略;否则,利用jaccard similarity(jaccard相似性)算法判断当前模型迁移请求所请求的目标模型是否可以协同迁移,并生成对应的迁移策略。
[0062]
s40:基于历史请求记录中的历史多模型迁移请求,利用jaccard similarity算法判断当前模型迁移请求所请求的目标模型是否可以进行协同迁移,并根据判断结果生成对
应的迁移策略;
[0063]
本步骤中,利用jaccard similarity算法判断当前模型迁移请求所请求的目标模型是否可以进行协同迁移具体为:对当前模型迁移请求进行分析,判断当前模型迁移请求是单模型迁移请求还是多模型迁移请求;如果当前模型迁移请求为单模型迁移请求,则不执行协同迁移策略;如果当前模型迁移请求为多模型迁移请求,基于历史请求记录判断当前模型迁移请求的至少两个目标模型的jaccard相似度是否大于jaccard similarity算法的频繁性阈值,如果至少两个目标模型的jaccard相似度大于jaccard相似性算法的频繁性阈值,则认为至少两个目标模型可以进行协同迁移,生成所有目标模型的可协同迁移模型组信息;反之,则认为至少两个目标模型不可以进行协同迁移。
[0064]
s50:基于生成的迁移策略对当前模型迁移请求所请求的目标模型进行迁移;
[0065]
本步骤中,如图2所示,为本技术实施例的模型协同迁移过程示意图,其具体包括以下步骤:
[0066]
s51:判断当前模型迁移请求的目标模型在服务器本地是否存在可用的模型缓存副本,如果服务器本地存在模型缓存副本,则执行s52;如果服务器本地至少不存在任意一个目标模型的模型缓存副本,执行s53;
[0067]
s52:利用服务器本地的模型缓存副本响应当前模型迁移请求;
[0068]
s53:判断当前模型迁移请求属于单模型迁移请求还是多模型迁移请求,如果属于单模型迁移请求,执行s54;否则,执行s55;
[0069]
s54:针对不存在模型缓存副本的目标模型,从拥有该目标模型的任一服务器上对该目标模型进行迁移,并执行s59;
[0070]
s55:判断当前模型迁移请求所请求的至少两个目标模型中是否只有部分模型不存在模型缓存副本,如果是,执行s54;否则,执行s56;
[0071]
s56:判断当前模型迁移请求所请求的至少两个目标模型是否可以协同迁移,如果可以协同迁移,执行s57;否则,针对每个目标模型分别执行一次s54;
[0072]
s57:判断是否存在同时拥有所有目标模型的另一个服务器,如果存在,执行s58;否则,针对每一个目标模型分别执行一次s54;
[0073]
s58:通过另一个服务器对所有目标模型进行协同迁移;
[0074]
s59:对于每一个新迁移的人工智能模型,更新该模型的全局缓存计数器,并在服务器本地延长该模型的缓存副本过期时间;
[0075]
本步骤中,全局缓存计数器是为每一个人工智能模型维护的一个副本数量计数器,用于记录每个模型在服务器本地拥有的缓存副本数量。本发明在每一个服务器本地对每一个人工智能模型的缓存副本过期信息进行记录,副本过期信息用于记录每个模型的缓存副本过期时间。如果模型的副本过期信息为0,表示在服务器本地不存在该模型的缓存副本。
[0076]
基于上述,本技术实施例通过动态的积累历史模型迁移请求做出迁移决策,基于迁移决策,对经常频繁被同时请求的多个模型进行协同迁移,可以充分利用协同迁移所带来的空间压缩,在满足模型迁移请求时尽可能的减少迁移代价,此外,由于多个模型经常被频繁同时调用,往往会存在更加优化的解压分离方式,从而对二者进行协同迁移不会产生额外的开销。
[0077]
s60:判断服务器本地是否存在过期的模型缓存副本,并对过期的模型缓存副本进行异构环境下的删除或维护;
[0078]
本步骤中,模型缓存副本是否过期的判定方式具体为:假设一个人工智能模型在第i个边云服务器上的缓存副本过期时间为δti,δti=λ/μi,其中λ表示人工智能模型同构的单位迁移代价,μ表示异构的人工智能模型缓存代价。如果一个人工智能模型在第i个边云服务器上的缓存时间短于δti,表示该模型在本地的缓存代价小于将本地的模型缓存副本删除之后进行迁移的代价;如果一个人工智能模型在第i个边云服务器上缓存的时间等于δti,表示该模型在本地的缓存代价等于将本地的模型缓存副本删除之后进行迁移的代价;如果一个人工智能模型在第i个边云服务器上缓存的时间长于δti,表示该模型在本地的缓存代价大于将本地的模型缓存副本删除之后进行迁移的代价,此时将判定该模型在服务器本地的缓存副本过期。
[0079]
进一步地,如图3所示,为本技术实施例的模型缓存副本维护算法流程图,其具体包括以下步骤:
[0080]
s61:判断模型缓存副本过期事件是否发生在master服务器,如果发生在master服务器,执行s62;如果发生在第i个边云服务器(i≠1),执行s66;
[0081]
其中,master服务器为存储代价最小的边云设备。
[0082]
s62:判断过期模型缓存副本是否为全局唯一缓存副本,如果是,执行s63;否则,执行s64;
[0083]
s63:延长该过期模型缓存副本的过期时间,延长时间为δti;
[0084]
其中,如果过期模型缓存副本为全局唯一缓存副本,则自动延长该副本的过期时间,以防止模型丢失;否则,将删除该过期模型缓存副本,以优化代价。
[0085]
s64:删除该过期模型缓存副本,避免存储多余信息;
[0086]
s65:更新该模型的全局缓存计数器,并将该模型的副本过期信息设置为0;
[0087]
s66:判断过期模型缓存副本是否为全局唯一缓存副本,如果不是全局唯一缓存副本,执行s67;如果是全局唯一缓存副本,执行s68;
[0088]
s67:判断该模型距离上次调用的时间间隔是否达到δti,如果是,执行s64;
[0089]
s68:判断该模型距离上次调用的时间间隔是否达到δti,如果是,执行s69;
[0090]
s69:将该模型缓存副本的过期时间延长一个单位时长δti,并在对过期时间延长后继续判断该模型距离上次调用的时间间隔是否达到2δti,如果达到,执行s70;
[0091]
本步骤中,如果过期时间延长后该模型距离上次调用的时间间隔已达到2δti,表示此时该模型的缓存代价已经等同于将该模型迁移至存储代价最低廉的master服务器并迁移回来的代价,则将该模型缓存副本迁移至存储代价最小的master服务器,并删除服务器本地的模型缓存副本。
[0092]
s70:将该过期模型缓存副本从第i个边云服务器迁移至存储代价最小的master服务器,删除第i个边云服务器上该模型的缓存副本,将第i个边云服务器的模型缓存副本过期信息设置为0,并将master服务器上该模型的缓存副本过期信息设置为当前时间加δtj,j表示迁移终点服务器(master服务器)。
[0093]
基于上述,本技术实施例通过采用存储代价较小的master服务器,以及对应的模型缓存过期延长、删除及迁移机制,在不造成模型丢失的情况下合理的对迁移过来的模型
缓存副本进行维护,以此优化模型缓存副本带来的开销。
[0094]
本技术实施例的云计算缓存人工智能模型迁移方法通过动态的积累历史模型迁移请求做出迁移决策,基于迁移决策,对经常频繁被同时请求的多个模型进行协同迁移,可以充分利用协同迁移所带来的空间压缩,在满足模型迁移请求时尽可能的减少迁移代价,从而有效地降低代价成本。本技术实施例可以有效的工作在在线场景及异构边云环境之中,可以有效的克服由于硬件的异构所导致的代价异构性,且不需要对模型迁移请求做任何先前假设,更具有一般性与实用性。
[0095]
请参阅图4,为本技术实施例的云计算缓存人工智能模型迁移系统结构示意图。本技术实施例的云计算缓存人工智能模型迁移系统40包括:
[0096]
请求接收模块41:用于接收模型迁移请求,将模型迁移请求添加到历史请求记录中;历史请求记录用于存储所有历史模型迁移请求;
[0097]
迁移计算模块42:用于基于历史请求记录中的历史模型迁移请求,利用jaccard similarity算法判断模型迁移请求所请求的目标模型是否可以进行协同迁移,并根据判断结果生成对应的迁移策略;
[0098]
迁移执行模块43:用于根据迁移策略对模型迁移请求所请求的目标模型进行迁移。
[0099]
请参阅图5,为本技术实施例的终端结构示意图。该终端50包括处理器51、与处理器51耦接的存储器52。
[0100]
存储器52存储有用于实现上述云计算缓存人工智能模型迁移方法的程序指令。
[0101]
处理器51用于执行存储器52存储的程序指令以控制云计算缓存人工智能模型迁移。
[0102]
其中,处理器51还可以称为cpu(central processing unit,中央处理单元)。处理器51可能是一种集成电路芯片,具有信号的处理能力。处理器51还可以是通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0103]
请参阅图6,为本技术实施例的存储介质的结构示意图。本技术实施例的存储介质存储有能够实现上述所有方法的程序文件61,其中,该程序文件61可以以软件产品的形式存储在上述存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施方式方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质,或者是计算机、服务器、手机、平板等终端设备。
[0104]
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本技术中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本技术所示的这些实施例,而是要符合与本技术所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1