基于K8s集群的离线预测方法、系统、存储介质及终端与流程

文档序号:29793664发布日期:2022-04-23 18:17阅读:122来源:国知局
基于K8s集群的离线预测方法、系统、存储介质及终端与流程
基于k8s集群的离线预测方法、系统、存储介质及终端
技术领域
1.本发明属于机器学习技术领域,尤其涉及一种基于k8s集群的离线预测方法、系统、存储介质、终端及应用。


背景技术:

2.目前,机器学习的生命周期,包括数据准备、模型训练、模型部署和应用等阶段。其中,模型部署有两种形式,第一种是在线预测,即启动一个在线服务并加载模型,通过网络请求和反馈来接受用户想要进行预测的用例,并提供预测结果;第二种是离线预测,即用户指定在某一个具体的时间,或周期性定时执行对某一大批量数据的预测任务,并通过文件等方式向用户一次性返回一批预测结果。
3.当前的离线预测解决方案通常有以下几种思路:
4.现有技术一:直接在单机(裸机或虚拟机环境)进行离线预测,该思路下,用户需要提供离线预测所需的全部代码、模型文件、数据文件,并需要通过编写shell脚本来执行单次或周期性定时任务。这种思路的优点是灵活,缺点是用户有大量编码和运维工作量,且一台机器上同时跑多个不同场景的离线预测任务可能会面临环境(python包、cuda版本等)的冲突。
5.现有技术二:在容器环境中进行离线预测,该种解决思路相比于现有技术一的优点在于,容器实现了环境隔离,用户减少了处理环境冲突方面的运维工作量,但实际编码和容器方面的运维成本仍然较高。
6.现有技术三:在公有云平台上进行离线预测,该种思路通常呈现两种方案,一是用户只需要提供模型文件和数据文件,有公有云平台提供加载模型和进行预测的程序,以及依赖的运行环境,这种方案更为简单,但提供功能有限,在运行环境、算法框架、模型格式、数据格式等方面均必须符合平台的规定;现有技术二方案更为灵活,用户可以自定义离线预测的业务逻辑代码和模型,平台提供运行软硬件环境。公有云平台进行离线预测的方案并不能适用于用户的模型、业务逻辑、数据等必须保密的场景。
7.通过上述分析,现有技术存在的问题及缺陷为:
8.(1)现有技术用户有大量编码和运维工作量,且一台机器上同时跑多个不同场景的离线预测任务可能会面临环境(python包、cuda版本等)的冲突,导致冲突的原因和影响:不同版本的机器学习(如sklearn)和深度学习包
9.(tensorflow、pytorch等)所依赖的底层环境不同,包括操作系统的底层c类库(如glibc)、显卡驱动、cuda、cudnn版本、基础python包版本等,因此当我们部署的多个离线预测多依赖的机器学习。深度学习包版本不同,就会导致底层依赖的冲突,导致这些离线预测无法顺利地在一台裸机上共存。
10.(2)现有技术实际编码和容器方面的运维成本较高。
11.(3)现有技术提供功能有限,在运行环境、算法框架、模型格式、数据格式等方面均必须符合平台的规定。
12.(4)目前现有技术急需解决的环境隔离问题,减少用户运维工作量,既要满足用户在简单场景下的需求(即只提供单一模型文件和数据文件)和复杂场景下的需求(即需要高度自定义的业务逻辑)。
13.解决以上问题及缺陷的难度为:
14.需要解决环境隔离、资源分配和调度问题,使每一个离线预测都有一套自己单独的环境来运行,多个不同的离线预测之间互不影响;
15.需要提供完整的部署和运维实现方案,是用户可以通过前端界面部署离线预测并查看其状态,替代通过编写复杂命令和代码来部署资源,要提供自动运维功能,包括资源分配、节点调度、故障重启等,减少用户的人工运维成本;
16.须提供多种预置的运行环境,支持多种算法框架和模型格式,支持多种数据格式,提供用户自定义镜像的运行方式;
17.解决以上问题及缺陷的意义为:
18.(1)解决环境冲突问题,能够灵活运行有各种不同底层依赖的离线预测任务
19.(2)极大降低用户编码和运维成本,实现高可用及硬件资源的高效利用
20.(3)提供用户自定义镜像的离线预测方式,理论上可以支持任何业务逻辑


技术实现要素:

21.针对现有技术存在的问题,本发明提供了一种基于k8s集群的离线预测方法、系统、存储介质、终端及应用。
22.本发明是这样实现的,一种基于k8s集群的离线预测方法,所述基于k8s集群的离线预测方法将离线预测部署为k8s上的job/cronjob资源,job/cronjob中的业务容器中包含离线预测的业务逻辑代码;所述基于k8s集群的离线预测方法默认的业务容器包括加载sklearn框架、tensorflow框架、和pytorch框架的模型,同时用户也可以选择自定义镜像;所述基于k8s集群的离线预测方法通过kubernetes原生或自定义资源crd实现离线预测任务。
23.进一步,所述离线预测方法具体包括:
24.用户在前端配置离线预测的相关参数,所述参数主要包括模型、数据、定时任务周期、资源分配;
25.系统根据用户的参数配置,创建对应的k8s资源,并依次执行下列操作:下载数据和模型,加载模型、加载数据、调用模型对数据进行预测,将结果存储成文件;
26.将结果上传到用户指定的存储服务上,并在前端返回离线预测的状态和结果文件地址,还有相关的执行状态跟踪、资源消耗统计和必要的异常处理。
27.进一步,所述基于k8s集群的离线预测方法进一步包括:
28.用户也可通过编写k8s资源配置文件,并使用k8s命令行工具或调用api;接口的方式,绕过前端直接,直接在后台执行离线预测。
29.默认的业务容器包括加载sklearn框架、tensorflow框架、和pytorch框架的模型,同时用户也可以选择自定义镜像;所述基于k8s集群的离线预测方法通过kubernetes原生或自定义资源crd实现离线预测任务。
30.进一步,所述基于k8s集群的离线预测方法将离线任务以执行模块的方式进行拆
分,各模块基于第三方对象存储、k8s原生资源、crd资源进行交互。
31.进一步,所述基于k8s集群的离线预测方法离线任务以workflow的方式进行组织调度。
32.进一步,所述基于k8s集群的离线预测方法以容器镜像作为离线预测模块的实现形式;预测执行、数据交互等模块的实现逻辑;与用户的交互方式。
33.本发明的另一目的在于提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行所述基于k8s集群的离线预测方法的步骤。
34.本发明的另一目的在于提供一种信息数据处理终端,所述信息数据处理终端用于实现所述基于k8s集群的离线预测方法。
35.本发明的另一目的在于提供一种实施所述基于k8s集群的离线预测方法的机器学习离线预测系统,所述机器学习离线预测系统包括:
36.离线预测部署模块,用于将离线预测部署为k8s上的job/cronjob资源;
37.业务容器设置模块,用于job/cronjob中的业务容器中包含离线预测的业务逻辑代码。
38.本发明的另一目的在于提供一种所述基于k8s集群的离线预测方法在人工智能中的应用。
39.结合上述的所有技术方案,本发明所具备的优点及积极效果为:
40.本发明提供了一种基于k8s集群的离线预测装置。该装置将离线预测部署为k8s上的job/cronjob资源,job/cronjob中的业务容器中包含了离线预测的业务逻辑代码。基于k8s的离线预测部署方案,可以有效利用硬件资源,减少运维成本,通过容器进行环境隔离,可以避免不同应用在的python和依赖包版本的冲突问题。
41.本发明提供了几种默认的业务容器,可以加载sklearn框架、tensorflow框架、和pytorch框架的模型,同时用户也可以选择自定义镜像。该装置提供的方便使用的前端页面,可以让用户配置模型/自定义镜像、单次或周期性定时执行逻辑、资源限额等。用户使用我们提供的默认容器,可以对多种机器学习/深度学习算法框架(包括但不限于sklearn、tensorflow、pytorch、paddle paddle、xgboost等)进行开箱即用的离线预测,仅需提供对应模型文件和数据文件;使用自定义方式,用户可以使用自己封装的镜像来实现任意复杂的离线预测逻辑,高度灵活。
附图说明
42.图1是本发明实施例提供的基于k8s集群的离线预测方法流程图。
43.图2是本发明实施例提供的机器学习离线预测系统的结构示意图;
44.图3是本发明实施例提供的具体应用实施过程如图3所示。
45.图中:1、离线预测部署模块;2、业务容器设置模块。
具体实施方式
46.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于
限定本发明。
47.现有的ai平台,基本都要求用户使用其固定的算法框架、包版本、模型保存格式,即所要预测的数据的格式,如果不符合则不能进行离线预测,这并不符合实际应用场景的诉求。
48.实际场景中,很多用户需要完成含有业务逻辑的离线预测,可能包括数据处理逻辑、算法逻辑、及后处理逻辑,可能涉及多种不同的算法框架,和用户自己编写的处理代码,这些不能通过单一的算法框架和简单模型来实现,必须提供用户自定义离线预测业务逻辑的功能。
49.针对现有技术存在的问题,本发明提供了一种基于k8s集群的离线预测方法、系统、存储介质、终端及应用,下面结合附图对本发明作详细的描述。
50.如图1所示,本发明提供的基于k8s集群的离线预测方法包括以下步骤:
51.s101:将离线预测部署为k8s上的job/cronjob资源;
52.s102:job/cronjob中的业务容器中包含离线预测的业务逻辑代码;默认的业务容器包括加载sklearn框架、tensorflow框架、和pytorch框架的模型,同时用户也可以选择自定义镜像。
53.本发明提供的基于k8s集群的离线预测方法业内的普通技术人员还可以采用其他的步骤实施,图1的本发明提供的基于k8s集群的离线预测方法仅仅是一个具体实施例而已。
54.如图2所示,本发明提供的机器学习离线预测系统包括:
55.离线预测部署模块1,用于将离线预测部署为k8s上的job/cronjob资源;
56.业务容器设置模块2,用于job/cronjob中的业务容器中包含离线预测的业务逻辑代码;默认的业务容器包括加载sklearn框架、tensorflow框架、和pytorch框架的模型,同时用户也可以选择自定义镜像。
57.本发明提供的基于k8s集群的离线预测方法通过kubernetes原生或自定义资源(crd)实现离线预测任务;将离线任务以执行模块的方式进行拆分,各模块基于第三方对象存储、k8s原生资源、crd资源进行交互;离线任务以workflow的方式进行组织调度;以容器镜像作为离线预测模块的实现形式;预测执行、数据交互等模块的实现逻辑;与用户的交互方式。
58.本发明实施例进行具体的应用,效果很好。以鸢尾花分类任务为例,本发明实施例提供的离线预测方法的实施过程:
59.首先用户训练好一个用于鸢尾花分类的模型,并准备好要预测的鸢尾花数据集,将其存储在某种存储介质上。
60.用户在平台前端界面配置相应参数:模型存储地址、数据集存储地址、资源配额等,请求创建离线预测。
61.系统接受用户的请求,创建对应的资源,拉取模型和数据,加载模型并对数据集进行批量预测,将结果存储成文件,上传到对应的文件存储介质中,并向用户返回任务完成状态和结果存储位置。
62.具体应用实施过程如图3所示。
63.第一,创建离线预测,如(a)所示。
64.第二.预测状态,如(b)所示。
65.第三,预测详情,如(c)所示。
66.应当注意,本发明的实施方式可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、cd或dvd-rom的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明的设备及其模块可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。
67.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1