算法模型部署方法、装置、可读介质及电子设备与流程

文档序号:30513578发布日期:2022-06-25 02:36阅读:287来源:国知局
算法模型部署方法、装置、可读介质及电子设备与流程

1.本公开涉及docker容器技术领域,具体地,涉及一种算法模型部署方 法、装置、可读介质及电子设备。


背景技术:

2.如图1所示,现有的算法模型部署方案为:每种算法模型有一套自己的 算法应用程序,每个算法应用程序和算法模型打包封装成一个docker镜像。
3.现有的这种算法模型部署方案,存在以下不足:
4.每种算法模型需要单独申请硬件资源,独占硬件资源,无法资源共享。 且随着算法模型的增加,会大幅增加硬件成本支出。每种算法模型对应一套 算法应用程序,对于多种算法模型,就需要多个算法应用程序,这多个算法 应用程序之间有很多重复内容,在写这多个算法应用程序时这些重复内容就 会多次重写,且算法应用程序太多也不利于算法应用程序的维护。


技术实现要素:

5.本公开的目的是提供一种将应用程序和算法模型分离的算法模型部署 方法、装置、可读介质及电子设备,以解决资源无法共享、硬件成本支出大 及应用程序维护困难的问题。
6.为了实现上述目的,本公开提供一种算法模型部署方法,所述方法包括:
7.将应用程序打包封装,构建一个docker镜像,其中,所述应用程序内 设置有至少两个算法中间件,每个所述算法中间件与的一种算法模型相对应, 每个所述算法模型部署于所述docker镜像外,每个所述算法中间件用于实 现将对应的算法模型加载到所述应用程序。
8.可选地,所述应用程序内还设置有算法模型表,所述算法模型表用于存 储加载到所述应用程序的算法模型,及显示所述应用程序中每个所述算法模 型的加载状态,所述方法还包括:
9.所述应用程序在加载每个所述算法模型后,在所述算法模型表中记录该 算法模型的状态为已加载。
10.可选地,所述方法还包括:
11.所述应用程序在启动时,根据各个所述算法模型的使用情况,将最近预 设天数内使用过的算法模型加载至所述算法模型表。
12.可选地,所述方法还包括:
13.在调用每个所述算法中间件时,所述应用程序查询所述算法模型表,并 在确定与调用的算法中间件对应的算法模型不在所述算法模型表内,且该对 应的算法模型在所述docker镜像所在的物理机时,从所述物理机将该算法 模型加载至所述算法模型表。
14.可选地,所述方法还包括:
15.在调用每个所述算法中间件时,所述应用程序查询所述算法模型表,并 在确定与调用的算法中间件对应的算法模型不在所述算法模型表内,且该对 应的算法模不在所述docker镜像所在的物理机时,从云端存储库将该算法 模型下载至该物理机再加载至所述算法模型表。
16.可选地,所述方法还包括:
17.当所述应用程序所在物理机的内存占用率大于预设阈值时,卸载所述算 法模型表中未被使用的算法模型。
18.本公开还提供一种算法模型部署装置,所述装置包括:
19.镜像构建模块,用于将应用程序打包封装,构建一个docker镜像,其 中,所述应用程序内设置有至少两个算法中间件,每个所述算法中间件与的 一种算法模型相对应,每个所述算法模型部署于所述docker镜像外,每个 所述算法中间件用于实现将对应的算法模型加载到所述应用程序。
20.可选地,所述应用程序内还设置有算法模型表,所述算法模型表用于存 储加载到所述应用程序的算法模型,及显示所述应用程序中每个所述算法模 型的加载状态,所述装置还包括:
21.记录模块,用于所述应用程序在加载每个所述算法模型后,在所述算法 模型表中记录该算法模型的状态为已加载。
22.本公开还提供一种非临时性计算机可读存储介质,其上存储有计算机程 序,该程序被处理器执行时实现上述方法的步骤。
23.本公开还提供一种电子设备,包括:
24.存储器,其上存储有计算机程序;
25.处理器,用于执行所述存储器中的所述计算机程序,以实现上述方法的 步骤。
26.通过上述技术方案,将应用程序和算法模型分离,每个应用程序可以集 成多种算法模型,可以实现多种算法模型和一个应用程序打包封装到一个 docker镜像中。因此,本公开实施例提供的方案,每种算法模型不需要单独 申请硬件资源,可以资源共享。且,算法模型数量增加,可以不用增加应用 程序,节约硬件成本支出,也利于应用程序的维护。
27.本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
28.附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与 下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在 附图中:
29.图1是现有的算法模型部署方案的示意图。
30.图2是本公开实施例提供的一种算法模型部署方法的流程图。
31.图3是本公开实施例提供的一种算法模型部署方法的应用示意图。
32.图4是本公开实施例提供的一种算法模型部署装置的方框示意图。
33.图5是本公开实施例提供的一种电子设备的方框示意图。
具体实施方式
34.以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是, 此处所描
述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
35.关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有 关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
36.本公开实施例提供一种算法模型部署方法。图2是根据本公开一实施例 示出的一种算法模型部署方法的流程图。如图2所示,该方法包括以下步骤:
37.步骤s10,将应用程序打包封装,构建一个docker镜像。其中,所述应 用程序内设置有至少两个算法中间件。每个所述算法中间件与的一种算法模 型相对应。每个所述算法模型部署于所述docker镜像外。每个所述算法中 间件用于实现将对应的算法模型加载到所述应用程序。
38.其中,算法中间件可以为每种算法模型的推理程序,通过调用算法中间 件,即可实现将与调用的算法中间件对应的算法模型加载到所述应用程序。
39.通过上述设置,将应用程序和算法模型分离,每个应用程序可以集成多 种算法模型,可以实现多种算法模型和一个应用程序打包封装到一个docker 镜像中的效果。因此,本公开实施例提供的方案,每种算法模型不需要单独 申请硬件资源,可以资源共享。且,算法模型数量增加,可以不用增加应用 程序,节约硬件成本支出,也利于应用程序的维护。
40.可选地,所述应用程序内还设置有算法模型表,所述算法模型表用于存 储加载到所述应用程序的算法模型,及显示所述应用程序中每个所述算法模 型的加载状态。其中,加载状态包括已加载和未加载。所述方法还包括:
41.所述应用程序在加载每个所述算法模型后,在所述算法模型表中记录该 算法模型的状态为已加载。
42.同理,所述方法还可以包括:所述应用程序在卸载每个所述算法模型后, 在所述算法模型表中记录该算法模型的状态为未加载。
43.上述技术方案中,通过算法模型表统一管理、记录应用程序中算法模型 的加载,更直观、便利。
44.可选地,所述方法还包括:所述应用程序在启动时,根据各个所述算 法模型的使用情况,将最近预设天数内使用过的算法模型加载至所述算法模 型表。
45.其中,最近预设天数即距当前预设天数,其可以灵活设置,可以是最近 一天、最近两天、最近三天、最近四天等。例如,最近预设天数为最近一天, 则上述方案即为,所述应用程序在启动时,根据各个所述算法模型的使用情 况,将最近一天内使用过的算法模型加载至所述算法模型表。通过上述设置, 可以在算法模型未被调用时,提前将最近常用的算法模型加载入应用程序 (内存)中,方便用户使用。同理,对于应用程序中算法模型的加载和卸载, 可以根据lru(least recently used,最近最少使用)算法进行管理。通过 上述技术方案,对于一个应用程序,其在启动时,可以不全加载算法中间件 对应的算法模型,可以根据需要提前加载一些或者不提前加载算法模型(在 调用算法模型时,才加载算法模型),减少了内存占用率。
46.可选地,所述方法还包括:
47.在调用每个所述算法中间件时,所述应用程序查询所述算法模型表,并 在确定与调用的算法中间件对应的算法模型不在所述算法模型表内,且该对 应的算法模型在所述docker镜像所在的物理机时,从所述物理机将该算法 模型加载至所述算法模型表。
48.算法模型可以存储在本地物理机中,例如在本地物理机中构建模型池用 来存储多个算法模型。当然,算法模型还可以存储在云端存储库,在需要使 用时,从云端存储库下载算法模型至本地物理机。在调用每个所述算法中间 件时,所述应用程序查询所述算法模型表,确定与调用的算法中间件对应的 算法模型是否在算法模型表中。如果该算法模型在算法模型表中,即可直接 使用该算法模型。如果该算法模型不在算法模型表中,则确定该算法模型是 否在本地物理机中。如果该算法模型在本地物理机中,则从该物理机将该算 法模型加载至所述算法模型表。如果该算法模型不在本地物理机中,则从云 端存储库将该算法模型下载至本地物理机,再从本地物理机加载至所述算法 模型表。
49.因此,可选地,所述方法还包括:
50.在调用每个所述算法中间件时,所述应用程序查询所述算法模型表,并 在判断与调用的算法中间件对应的算法模型不在所述算法模型表内,且该对 应的算法模不在所述docker镜像所在的物理机时,从云端存储库将该算法 模型下载至该物理机再加载至所述算法模型表。
51.可选地,所述方法还包括:
52.当所述应用程序所在物理机的内存占用率大于预设阈值时,卸载所述算 法模型表中未被使用的算法模型。
53.通过上述技术方案,在物理机内存不能满足使用的情况时,应用程序依 据算法模型注册表将非必须的算法模型从内存中下线,释放资源。
54.显而易见,本公开实施例提供的方案,如图3所示,每个应用程序可以 基于负载均衡技术进行加载算法模型。且每个docker镜像在物理机的部署 也可以基于负载均衡技术进行部署。
55.基于上述发明构思,本公开实施例还提供一种算法模型部署装置。图4 是根据本公开一实施例示出的一种算法模型部署装置的框图。如图4所示, 算法模型部署装置包括:
56.镜像构建模块,用于将应用程序打包封装,构建一个docker镜像,其 中,所述应用程序内设置有至少两个算法中间件,每个所述算法中间件与的 一种算法模型相对应,每个所述算法模型部署于所述docker镜像外,每个 所述算法中间件用于实现将对应的算法模型加载到所述应用程序。
57.通过上述设置,将应用程序和算法模型分离,每个应用程序可以集成多 种算法模型,可以实现多种算法模型和一个应用程序打包封装到一个docker 镜像中的效果。因此,本公开实施例提供的方案,每种算法模型不需要单独 申请硬件资源,可以资源共享。且,算法模型数量增加,可以不用增加应用 程序,节约硬件成本支出,也利于应用程序的维护。
58.可选地,所述应用程序内还设置有算法模型表,所述算法模型表用于存 储加载到所述应用程序的算法模型,及显示所述应用程序中每个所述算法模 型的加载状态,所述装置还包括:
59.记录模块,用于使所述应用程序在加载每个所述算法模型后,在所述算 法模型表中记录该算法模型的状态为已加载。
60.上述技术方案中,通过记录模块实现,算法模型表统一管理、记录应用 程序中算法模型的加载,更直观、便利。
61.可选地,所述装置还包括:
62.加载模块,用于所述应用程序在启动时,根据各个所述算法模型的使用 情况,将最近预设天数内使用过的算法模型加载至所述算法模型表。
63.通过上述技术方案,对于一个应用程序,其在启动时,可以不全加载算 法中间件对应的算法模型,可以根据需要提前加载一些或者不提前加载算法 模型(在调用算法模型时,才加载算法模型),减少了内存占用率。
64.所述装置还包括:
65.查询模块,用于在调用每个所述算法中间件时,使所述应用程序查询所 述算法模型表,并在确定与调用的算法中间件对应的算法模型不在所述算法 模型表内,且该对应的算法模型在所述docker镜像所在的物理机时,从所 述物理机将该算法模型加载至所述算法模型表。
66.所述查询模块还用于:
67.在调用每个所述算法中间件时,所述应用程序查询所述算法模型表,并 在确定与调用的算法中间件对应的算法模型不在所述算法模型表内,且该对 应的算法模不在所述docker镜像所在的物理机时,从云端存储库将该算法 模型下载至该物理机再加载至所述算法模型表。
68.所述装置还包括:
69.卸载模块,用于当所述应用程序所在物理机的内存占用率大于预设阈值 时,卸载所述算法模型表中未被使用的算法模型。
70.通过上述技术方案,在物理机内存不能满足使用的情况时,应用程序依 据算法模型注册表将非必须的算法模型从内存中下线,释放资源。
71.关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有 关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
72.图5是根据一示例性实施例示出的一种电子设备1900的框图。例如, 电子设备1900可以被提供为一服务器。参照图5,电子设备1900包括处理 器1922,其数量可以为一个或多个,以及存储器1932,用于存储可由处理 器1922执行的计算机程序。存储器1932中存储的计算机程序可以包括一个 或一个以上的每一个对应于一组指令的模块。此外,处理器1922可以被配 置为执行该计算机程序,以执行上述的算法模型部署方法。
73.另外,电子设备1900还可以包括电源组件1926和通信组件1950,该电 源组件1926可以被配置为执行电子设备1900的电源管理,该通信组件1950 可以被配置为实现电子设备1900的通信,例如,有线或无线通信。此外, 该电子设备1900还可以包括输入/输出(i/o)接口1958。电子设备1900 可以操作基于存储在存储器1932的操作系统,例如windows server
tm
,mac osx
tm
,unix
tm
,linux
tm
等等。
74.在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储 介质,该程序指令被处理器执行时实现上述的算法模型部署方法的步骤。例 如,该非临时性计算机可读存储介质可以为上述包括程序指令的存储器1932, 上述程序指令可由电子设备1900的处理器1922执行以完成上述的算法模型 部署方法。
75.在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产 品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可 编程的装置执行时用于执行上述的算法模型部署方法的代码部分。
76.以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限 于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开 的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
77.另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征, 在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的 重复,本公开对各种可能的组合方式不再另行说明。
78.此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其 不违背本公开的思想,其同样应当视为本公开所公开的内容。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1