CN111352637A - 部署机器学习系统的方法、装置及设备 - Google Patents
部署机器学习系统的方法、装置及设备 Download PDFInfo
- Publication number
- CN111352637A CN111352637A CN202010125496.0A CN202010125496A CN111352637A CN 111352637 A CN111352637 A CN 111352637A CN 202010125496 A CN202010125496 A CN 202010125496A CN 111352637 A CN111352637 A CN 111352637A
- Authority
- CN
- China
- Prior art keywords
- deployment
- information
- machine learning
- learning system
- file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000010801 machine learning Methods 0.000 title claims abstract description 224
- 238000000034 method Methods 0.000 title claims abstract description 117
- 238000002360 preparation method Methods 0.000 claims description 57
- 238000003860 storage Methods 0.000 claims description 23
- 238000012795 verification Methods 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 9
- 230000008569 process Effects 0.000 description 61
- 238000010586 diagram Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 13
- 238000012423 maintenance Methods 0.000 description 11
- 238000007726 management method Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 238000000605 extraction Methods 0.000 description 6
- 230000004927 fusion Effects 0.000 description 6
- 238000012544 monitoring process Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000008571 general function Effects 0.000 description 4
- 230000008439 repair process Effects 0.000 description 4
- 230000001419 dependent effect Effects 0.000 description 3
- 238000004886 process control Methods 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003238 somatosensory effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Abstract
本发明提供了一种部署机器学习系统的方法、装置及设备,该方法包括:获取输入的部署信息;以及,根据所述部署信息,按照预设的部署流程部署所述机器学习系统。根据该方法可以实现根据统一输入的部署信息的一键式部署。
Description
技术领域
本发明涉及人工智能技术领域,更具体地,涉及一种部署机器学习系统的方法、一种部署机器学习系统的装置、一种包括至少一个计算装置和至少一个存储装置的设备、及一种计算机可读存储介质。
背景技术
对于一个大规模的机器学习系统而言,其通常需要多个模块(涉及实现机器学习功能的业务模块和实现通用功能的组件模块等)的支持,在目前的部署方案中,这些模块均是分别独立部署的,不同的模块由不同的团队负责,无法实现统一的部署,因此,现有的部署方案存在部署效率低和灵活性差的问题。
发明内容
本发明实施例提供了一种部署机器学习系统的新的技术方案,以提高部署效率。
根据本发明的第一方面,提供了一种部署机器学习系统的方法,其包括:
获取输入的部署信息;
根据所述部署信息,按照预设的部署流程部署所述机器学习系统。
可选地,所述方法还包括:
提供进行信息收集的输入模板文件;
所述获取输入的部署信息包括:
获取在所述输入模板文件中填写的部署信息。
可选地,所述部署信息包括基础设施信息、部署参数信息、场景选择信息和资源选择信息。
可选地,所述部署流程包括顺次进入的基础设施准备节点、部署准备节点和镜像化部署节点;
其中,所述基础设施准备节点用于提供所述机器学习系统使用的基础设施,所述基础设施包括基础平台和核心依赖;所述部署准备节点用于提供基于所述基础设施部署机器学习系统所需的各部署文件;所述镜像化部署节点用于基于所述各部署文件完成所述机器学习系统的部署。
可选地,所述部署流程还包括先于所述基础设施准备节点进入的信息校验节点;
所述按照预设的部署流程部署所述机器学习系统包括:
在所述信息校验节点,校验所述部署信息的正确性;
在校验通过的情况下,进入所述基础设施准备节点执行对应的部署操作。
可选地,所述校验所述部署信息的正确性包括以下至少一项:
第一项:对所述部署信息进行拼写校验;
第二项,对所述部署信息进行上下文关联校验;
第三项,对所述部署信息描述的集群进行连通性校验。
可选地,所述提供所述机器学习系统使用的基础设施包括:
根据所述部署信息中的基础设施信息,提供所述机器学习系统使用的基础平台及所述基础平台的核心依赖;
其中,所述核心依赖包括用于存放业务运行所需文件的镜像仓库,所述业务为所述机器学习系统支持的业务。
可选地,所述提供基于所述基础设施部署机器学习系统所需的各部署文件包括:
根据所述部署信息,获得配置相关文件,其中,所述配置相关文件反映所述机器学习系统所需使用的业务模块及所述业务模块所需配置项的配置信息;
将所述配置相关文作为一种部署文件,提交至镜像化部署节点;
所述基于所述各部署文件完成所述机器学习系统的部署包括:
根据所述配置相关文件,生成所述机器学习系统所需使用的业务模块的服务描述文件;
将所述服务描述文件提交至所述基础平台,完成机器学习系统的部署。
可选地,所述根据所述部署信息,获得配置相关文件包括:
分别抽取机器学习系统所需使用的各业务模块的配置文件,形成配置集合文件作为一部分配置相关文件,其中,所述配置集合文件包含提取出的所有配置文件;
根据所述部署信息更新业务模块集合中业务模块的配置文件,获得更新后的配置文件作为另一部分配置相关文件。
可选地,所述根据所述部署信息更新业务模块集合中业务模块的配置文件包括:
根据所述部署信息更新预置的配置模板文件中的配置项的配置信息;
将更新后的配置模板文件中的配置项的配置信息,扩展至业务模块集合中业务模块的配置文件的相同配置项中。
可选地,所述提供基于所述基础设施部署机器学习系统所需的各部署文件还包括获得所述所需使用的业务模块的步骤,包括:
根据所述部署信息中的场景选择信息,在预置的业务模块集合中选出所述所需使用的业务模块。
可选地,所述基于所述各部署文件完成所述机器学习系统的部署还包括:
还根据存储在所述核心依赖的镜像仓库中的meta文件,生成所述机器学习系统所需使用的业务模块的服务描述文件。
可选地,所述提供基于所述基础设施部署机器学习系统所需的各部署文件包括:
分别抽取所述机器学习系统需要使用的各业务模块的建库建表语句,形成作为一种部署文件的语句集合文件,其中,所述语句集合文件包含提取出的所有建库建表语句;
所述基于所述各部署文件完成所述机器学习系统的部署包括:
执行所述语句集合文件中的每一建库建表语句,建立对应的数据库和数据表。
可选地,所述提供基于所述基础设施部署机器学习系统所需的各部署文件包括:
分别抽取所述机器学习系统需要使用的各业务模块的代码文件,形成作为一种部署文件的代码集合文件,所述代码集合文件包含抽取出的所有代码文件;
所述基于所述各部署文件完成所述机器学习系统的部署包括:
将所述代码集合文件以镜像的方式保存在所述核心依赖的镜像仓库中。
可选地,所述提供基于所述基础设施部署机器学习系统所需的各部署文件包括:
将保存在本地的算子文件作为一种部署文件存放至所述基础平台。
可选地,所述提供基于所述基础设施部署机器学习系统所需的各部署文件包括:
根据所述部署信息的资源选择信息生成资源选择文件;
将所述资源选择文件作为一种部署文件提交至所述基础平台,其中,所述资源选择文件包括参与组建所述机器学习系统的各机器及每一机器的类别标签,所述类别标签反映所标记的机器需要承担的角色。
可选地,所述提供基于所述基础设施部署机器学习系统所需的各部署文件包括:
根据所述部署信息的基础设施信息,判断所述机器学习系统是否使用已有基础设施;
在使用已有基础设施的情况下,获取输入的连接配置文件,其中,所述连接配置文件包括基础设施的配置文件和鉴权文件;
将所述连接配置文件作为一种部署文件提交至所述基础平台。
可选地,所述基于所述各部署文件完成所述机器学习系统的部署包括:
在所述基础平台上部署平行于业务模块的通用组件模块;
其中,所述业务模块为用于提供机器学习相关功能的模块,所述通用组件模块为用于提供不局限于所述机器学习系统的通用功能的模块。
可选地,所述业务模块包括调度模块、前端展示模块和运行管理模块中的至少一项;和/或,所述通用组件模块包括监控模块、日志收集模块和链路追踪模块中的至少一项。
可选地,所述部署流程还包括在所述镜像化部署节点之后进入的服务检验节点;
所述按照预设的部署流程完成所述机器学习系统的部署包括:
在所述服务校验节点,检验在所述镜像化部署节点得到的机器学习系统是否能够成功启动;
在能够成功启动的情况下,发出部署成功通知。
可选地,所述方法还包括:
在所述部署流程的各个流程节点,分别记录对应节点的运行日志以供查询。
可选的,所述方法还包括:
响应于查询运行日志的操作,提供查询页面;
获取通过所述查询页面输入的查询内容;
在所记录的运行日志中查找与所述查询内容相匹配的日志内容;
返回所述相匹配的日志内容。
可选地,所述运行日志包括详细日志和概要日志,其中,所述详细日志记录对应流程节点在每一时间点的运行内容,所述概要日志记录对应流程节点的各个运行阶段、及每一运行阶段对应的运行时间戳和每一运行阶段所在流程节点的名称。
可选地,所述方法还包括:
在按照所述部署流程部署所述机器学习系统出现错误的情况下,发出警告通知并提供可选的修复方式;
在接收到修复后的部署信息后,根据所述日志信息定位出现错误的流程节点的错误位置;
从定位到的所述错误位置开始,继续执行所述部署流程。
可选地,所述机器学习系统为集群系统。
根据本发明的第二方面,还提供了一种部署机器学习系统的装置,该装置包括:
信息收集模块,用于获取输入的部署信息;以及,
部署执行模块,根据所述部署信息,按照预设的部署流程部署所述机器学习系统。
可选地,所述信息收集模块还用于提供进行信息收集的输入模板文件;
所述信息收集模块在获取输入的部署信息时用于:获取在所述输入模板文件中填写的部署信息。
可选地,所述部署信息包括基础设施信息、部署参数信息、场景选择信息和资源选择信息。
可选地,所述部署流程包括顺次进入的基础设施准备节点、部署准备节点和镜像化部署节点;
其中,所述基础设施准备节点用于提供所述机器学习系统使用的基础设施,所述基础设施包括基础平台和核心依赖;所述部署准备节点用于提供基于所述基础设施部署机器学习系统所需的各部署文件;所述镜像化部署节点用于基于所述各部署文件完成所述机器学习系统的部署。
可选地,所述部署流程还包括先于所述基础设施准备节点进入的信息校验节点;
所述部署执行模块在按照预设的部署流程部署所述机器学习系统时,可以用于:在所述信息校验节点,校验所述部署信息的正确性;以及,在校验通过的情况下,进入基础设施准备节点执行对应的部署操作。
可选地,所述部署执行模块在校验所述部署信息的正确性时,用于执行以下至少一项:
第一项:对所述部署信息进行拼写校验;
第二项,对所述部署信息进行上下文关联校验;
第三项,对所述部署信息描述的集群进行连通性校验。
可选地,所述部署执行模块在提供所述机器学习系统使用的基础设施时,用于:
根据所述部署信息中的基础设施信息,提供所述机器学习系统使用的基础平台及所述基础平台的核心依赖;
其中,所述核心依赖包括用于存放业务运行所需文件的镜像仓库,所述业务为所述机器学习系统支持的业务。
可选地,所述部署执行模块在提供基于所述基础设施部署机器学习系统所需的各部署文件时,用于:
根据所述部署信息,获得配置相关文件,其中,所述配置相关文件反映所述机器学习系统所需使用的业务模块及所述业务模块所需配置项的配置信息;以及,
将所述配置相关文作为一种部署文件,提交至镜像化部署节点;
所述部署执行模块在基于所述各部署文件完成所述机器学习系统的部署时,用于:
根据所述配置相关文件,生成所述机器学习系统所需使用的业务模块的服务描述文件;以及,
将所述服务描述文件提交至所述基础平台,完成机器学习系统的部署。
可选地,所述部署执行模块在根据所述部署信息,获得配置相关文件时,用于:
分别抽取机器学习系统所需使用的各业务模块的配置文件,形成配置集合文件作为一部分配置相关文件,其中,所述配置集合文件包含提取出的所有配置文件;以及,
根据所述部署信息更新业务模块集合中业务模块的配置文件,获得更新后的配置文件作为另一部分配置相关文件。
可选地,所述部署执行模块在根据所述部署信息更新业务模块集合中业务模块的配置文件时,用于:
根据所述部署信息更新预置的配置模板文件中的配置项的配置信息;以及,
将更新后的配置模板文件中的配置项的配置信息,扩展至业务模块集合中业务模块的配置文件的相同配置项中。
可选地,所述部署执行模块在获得所述所需使用的业务模块时,用于:
根据部署信息中的场景选择信息,在预置的业务模块集合中选出所述所需使用的业务模块。
可选地,所述部署执行模块在基于所述各部署文件完成所述机器学习系统的部署时,还用于:
还根据存储在所述核心依赖的镜像仓库中的meta文件,生成所述机器学习系统所需使用的业务模块的服务描述文件。
可选地,所述部署执行模块在提供基于所述基础设施部署机器学习系统所需的各部署文件时,用于:
分别抽取所述机器学习系统需要使用的各业务模块的建库建表语句,形成作为一种部署文件的语句集合文件,所述语句集合文件包含提取出的所有建库建表语句;
所述部署执行模块在基于所述各部署文件完成所述机器学习系统的部署时,用于:
执行所述语句集合文件中的每一建库建表语句,建立对应的数据库和数据表。
可选地,所述部署执行模块在提供基于所述基础设施部署机器学习系统所需的各部署文件时,用于:
分别抽取所述机器学习系统需要使用的各业务模块的代码文件,形成作为一种部署文件的代码集合文件,所述代码集合文件包含抽取出的所有代码文件;
所述部署执行模块在基于所述各部署文件完成所述机器学习系统的部署时,用于:将所述代码集合文件以镜像的方式保存在所述核心依赖的镜像仓库中。
可选地,所述部署执行模块在提供基于所述基础设施部署机器学习系统所需的各部署文件时,用于:
将保存在本地的算子文件作为一种部署文件存放至所述基础平台。
可选地,所述部署执行模块在提供基于所述基础设施部署机器学习系统所需的各部署文件时,用于:
根据所述部署信息的资源选择信息生成资源选择文件;以及,
将所述资源选择文件作为一种部署文件提交至所述基础平台,其中,所述资源选择文件包括参与组建所述机器学习系统的各机器及每一机器的类别标签,所述类别标签反映所标记的机器需要承担的角色。
可选地,所述部署执行模块在提供基于所述基础设施部署机器学习系统所需的各部署文件时,用于:
根据所述部署信息的基础设施信息,判断所述机器学习系统是否使用已有基础设施;
在使用已有基础设施的情况下,获取输入的连接配置文件,其中,所述连接配置文件包括基础设施的配置文件和鉴权文件;以及,
将所述连接配置文件作为一种部署文件提交至所述基础平台。
可选地,所述部署执行模块在基于所述各部署文件完成所述机器学习系统的部署时,用于:在所述基础平台上部署平行于业务模块的通用组件模块;
其中,所述业务模块为用于提供机器学习相关功能的模块,所述通用组件模块为用于提供不局限于所述机器学习系统的通用功能的模块。
可选地,所述业务模块包括调度模块、前端展示模块和运行管理模块中的至少一项;和/或,所述通用组件模块包括监控模块、日志收集模块和链路追踪模块中的至少一项。
可选地,所述部署流程还包括在所述镜像化部署节点之后进入的服务检验节点;
所述部署执行模块在按照预设的部署流程完成所述机器学习系统的部署时,用于:在所述服务校验节点,检验在所述镜像化部署节点得到的机器学习系统是否能够成功启动;以及,在能够成功启动的情况下,发出部署成功通知。
可选地,所述装置还包括日志记录模块,该日志记录模块用于:
在所述部署流程的各个流程节点,分别记录对应节点的运行日志;以及,
将所述运行日志发送至定制所述运行日志的运维人员账号。
可选地,所述运行日志包括详细日志和概要日志,其中,所述详细日志记录对应流程节点在每一时间点的运行内容,所述概要日志记录对应流程节点的各个运行阶段、及每一运行阶段对应的运行时间戳和每一运行阶段所在流程节点的名称。
可选地,所述装置还包括流程管理模块,该流程管理模块用于:
在按照所述部署流程部署所述机器学习系统出现错误的情况下,发出警告通知并提供可选的修复方式;
在接收到修复后的部署信息后,根据所述日志信息定位出现错误的流程节点的错误位置;以及,
控制部署执行模块从定位到的所述错误位置开始,继续执行所述部署流程。
可选地,所述机器学习系统为集群系统。
根据本发明的第三方面,还提供了一种包括至少一个计算装置和至少一个存储装置的设备,其中,所述至少一个存储装置用于存储指令,所述指令用于控制所述至少一个计算装置执行根据执行根据本发明第一方面所述的方法。
根据本发明的第四方面,还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在被处理器执行时实现如本发明第一方面所述的方法。
本发明实施例的方法允许管理员统一输入部署所需的部署信息,并能够根据该部署信息,按照预设的一整套部署流程自动完成机器学习系统的部署,进而实现了统一的一键式部署,有效提高了部署机器学习系统的效率。另外,由于管理员可以在统一输入部署信息时,灵活地进行各种信息的关联配置,因此,相对由不同团队各自部署一部分的部署方式,能够有效提高部署的灵活性。
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
附图说明
被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。
图1是显示了本发明实施例方法的一个应用场景的场景示意图;
图2是可用于实现本发明实施例的方法的一个例子的电子设备的硬件配置框图;
图3是根据一个实施例的部署机器学习系统的方法的流程示意图;
图4是根据一个例子的部署机器学习系统的方法的部署流程的流程节点配置示意图;
图5是根据一个例子的部署机器学习系统的方法的部署流程示意图;
图6是根据一个实施例的部署机器学习系统的装置的原理框图。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
下面,参照附图描述根据本发明实施例的各个实施例和例子。
机器学习系统也即一种机器学习服务平台,一个机器学习系统通常集成有TensorFlow,hadoop,spark等计算框架子系统、及相关的任务调度管理、信息对象存储、基础运维子系统等。对于一个机器学习系统,目前这些子系统都是彼此独立提供服务的,因此,这些子系统都是由不同的负责团队分别进行部署,这就影响了部署一个机器学习系统的时效性和灵活性。而且,在不同的子系统分别进行部署的情况下,也无法进行整个部署过程的追溯。
为了提高部署机器学习系统的时效性和灵活性等,本实施例提供了一种针对机器学习系统进行统一的一键式部署的方案。图1示出了本实施例的部署机器学习系统的一个应用场景。如图1所示,在部署机器学习系统时,可以由管理员收集部署所需的部署信息,并由管理员通过终端设备100向部署机器学习系统的装置200提供该部署信息,这例如是,管理员通过该终端设备100将部署信息填写至输入模板文件中,并通过装置200提供的对外接口,将填写有部署信息的输入模板文件上传给该装置200,装置200在接收到该部署信息后,便可以根据该部署信息,按照预置的部署流程在指定的各台机器300上进行机器学习系统的部署,在完成部署后,这些机器300便能够作为一个机器学习系统提供相关的服务。任意机器300可以是服务器,也可以是其他设备,这些机器300可以作为一个集群提供服务,也就是说,该机器学习系统可以是一个集群系统。
由于以上各子系统由提供机器学习相关服务的业务模块等组成,这些业务模块例如包括任务调度模块、任务控制模块、前端展示模块、权限控制模块、收费计费模块、运行管理模块等,因此,在本实施例中,可以通过部署所需的业务模块等进行该机器学习系统的部署。
在一个实施例中,该装置200可以利用文件融合、统一抽象、文件镜像、参数扩展、部署校验、服务部署、流程控制、流程管理中的至少一种手段进行机器学习系统的部署。
关于文件融合,其指将各个业务模块的配置文件与运行所需的资源文件,权限控制描述文件,服务访问控制文件等融合在一起,形成具备可提交运行的服务描述文件,作为为一致化部署的输入,进而实现根据需求的可插拔式部署。
关于统一抽象,其可以分别抽取各个业务模块的建库建表语句,各个业务模块的配置文件,以及各个业务模块的代码文件等,并将抽取出的内容以镜像方式存储在仓储中心。
关于文件镜像,主要指存放两类镜像文件,一类是通过统一抽象抽取后的镜像文件,另一类是早已形成并存在于部署过程生命周期的meta文件。
关于参数扩展,可以包括管理员将部署现场收集的部署信息填入已经准备好的输入模板文件中,以及,将输入模板文件中各配置项的配置信息(参数值)扩展到各个业务模块的配置文件中。
关于部署校验,可以包括两部分校验,一部分是校验部署现场收集的部署信息等是否符合规范要求;另一部分是在完成部署后,校验机器学习平台服务是否能够正常启动,如果正常启动,则退出,否则给出提示等。
关于服务部署,指在部署准备完成后,根据输入的服务描述文件,进行机器学习系统部署,即服务部署的输出是按照服务描述文件的描述内容,启动机器学习平台服务,其中包括重试,等待等策略。
关于流程控制,指按照既定的部署流程对部署过程进行控制,确保每一步成功后再进行下一步骤,如果失败,可以有计划地进行重试。
关于流程管理,其可以在部署过程进行每一步的日志收集,以记录部署进度等,当部署失败时,能够根据记录的日志进行断点继续部署等。
如图1所示,以上装置200可以由在物理上与终端设备100相分离的其他设备提供,该其他设备例如可以是服务器,也可以是其他类型的设备,该其他设备也可以是作为部署对象的各机器300中的任意一个或者多个机器,在此不做限定。另外,该装置200也可以布置在终端设备100上等。
<硬件配置>
本发明实施例的方法可以由至少一台电子设备实施,即,用于实施该方法的装置200可以布置在该至少一台电子设备上。图2示出了任意电子设备的硬件结构。图2所示的电子设备可以是便携式电脑、台式计算机、工作站、服务器等,也可以是任意的具有处理器等计算装置和存储器等存储装置的其他设备,在此不做限定。
如图2所示,该电子设备1000可以包括处理器1100、存储器1200、接口装置1300、通信装置1400、显示装置1500、输入装置1600、扬声器1700、麦克风1800等等。其中,处理器1100用于执行计算机程序。该计算机程序可以采用比如x86、Arm、RISC、MIPS、SSE等架构的指令集编写。存储器1200例如包括ROM(只读存储器)、RAM(随机存取存储器)、诸如硬盘的非易失性存储器等。接口装置1300例如包括USB接口、耳机接口等。通信装置1400例如能够进行有线或无线通信,具体地可以包括Wifi通信、蓝牙通信、2G/3G/4G/5G通信等。显示装置1500例如是液晶显示屏、触摸显示屏等。输入装置1600例如可以包括触摸屏、键盘、体感输入等。电子设备1000可以通过扬声器1700输出语音信息,及可以通过麦克风1800采集语音信息等。
图2所示的电子设备仅仅是说明性的并且决不意味着对本发明、其应用或使用的任何限制。应用于本发明的实施例中,电子设备1000的所述存储器1200用于存储指令,所述指令用于控制所述处理器1100进行操作以执行本发明任意实施例的部署机器学习系统的方法。技术人员可以根据本发明所公开方案设计指令。指令如何控制处理器进行操作,这是本领域公知,故在此不再详细描述。
在一个实施例中,提供了一种包括至少一个计算装置和至少一个存储装置的设备,该至少一个存储装置用于存储指令,该指令用于控制该至少一个计算装置执行根据本发明任意实施例的方法。
该系统可以包括至少一台图2中的电子设备1000,以提供至少一个例如是处理器的计算装置和至少一个例如是存储器的存储装置,在此不做限定。
<方法实施例>
图3示出了根据一个实施例的部署机器学习系统的方法,该方法由部署机器学习系统的装置200实施。如图3所示,该方法可以包括如下步骤S3100~S3200:
步骤S3100,获取输入的部署信息。
该部署信息指进行机器学习系统的部署所需提供的信息。
该部署信息可以包括基础设施信息、部署参数信息、场景选择信息和资源选择信息等。
基础设施包括基础平台及其核心依赖等,因此,基础设施信息用于表示部署机器学习系统所需要使用的平台及环境,比如是否自建计算平台、容器平台、自建数据库、镜像仓库等。
部署参数信息涉及各业务模块的配置文件所需配置的配置信息,比如包括部署路径,开启端口,日志策略,以及是否开启https等。
场景选择信息涉及对机器学习系统的应用场景的选择,比如包括部署类型,应用场景,是否应用GPU等。
资源选择信息涉及部署机器学习系统所需使用的资源,比如包括参与该部署的机器(数量,IP等),以及每台机器需要承担的角色(即机器的角色定位)等。
在一个实施例中,可以提供用于输入部署信息的输入模板文件,这有利于引导管理员提供符合要求的部署信息。该实施例中,该方法还可以包括:提供进行信息收集的输入模板文件。该实施例中,该步骤S3100中获取输入的部署信息可以包括:获取在该输入模板文件中填写的部署信息。
该实施例中,管理员在通过输入模板文件填写完部署信息后,可以通过装置200提供的对外接口,将填写有部署信息的输入模板文件上传给装置200,以使得装置200可以在接收到该输入模板文件后,能够从中获取到输入的部署信息,以根据该部署信息在步骤S3200进行机器学习系统的部署。
该实施例中,管理员例如可以通过声明式的方式输入部署机器学习系统所需的部署信息。
步骤S3200,根据在步骤S3100中获取到的部署信息,按照预设的部署流程部署该机器学习系统。
该部署流程预置在装置200中,该装置200可以根据该部署流程进行机器学习系统部署的流程控制。
该部署流程可以由程序人员根据整个部署涉及的部署内容进行阶段性划分,该阶段性划分的粒度可以根据需要设置,在此不做限定。
在一个实施例中,该部署流程可以包括顺次进入的基础设施准备节点、部署准备节点和镜像化部署节点。
该基础设施准备节点用于提供机器学习系统使用的基础设施,该基础设施包括基础平台和核心依赖等。
该基础平台能够对上层业务屏蔽底层的资源,其能够向下将所有的机器组成一个集群,对外提供统一的资源抽象,向上能够响应业务的需求,为业务运行提供必要的资源支持。
该核心依赖包括该平台所依赖的镜像仓库等。该镜像仓库用于以镜像方式存储业务运行需要的各种文件,例如,以镜像方式保存各业务模块的配置文件和代码文件等。
该镜像仓库例如可以包括业务仓库和文件仓库,其中,业务仓库可以存放所有业务运行所需的业务模块的代码文件的镜像文件等;文件仓库可以存放所有业务运行所需的业务模块的配置文件的镜像文件等,这些配置文件的镜像文件即为文件仓库保存的meta文件。
根据部署信息中定义的基础设施信息,可以确定该机器学习系统是使用已有的基础设施,还是新建基础设施。
该部署准备节点用于提供基于该基础设施部署机器学习系统所需的各类部署文件。
该镜像化部署节点用于基于各部署文件完成机器学习系统的部署。
在另外的实施例中,该部署流程还可以包括先于基础设施准备节点进入的信息校验节点,通过设计该信息校验节点,能够对输入的部署信息进行是否符合部署要求的在先检查,并在检查通过之后,再进入基础设施准备节点。这样,可以尽可能地在进行实质性部署操作之前,解决部署信息存在的问题,提高后续部署的成功率,降低在实质性部署中进行反复重试的几率。
在另外的实施例中,该部署流程还可以包括在镜像化部署节点后进入的服务校验节点。通过设计该服务校验节点,能够在交付使用之前对部署后的机器学习系统进行试跑,进而能够及时发现机器学习系统在实际应用中可能出现的问题,降低该机器学习系统在实际应用中出现错误的概率。
在一个实施例中,如图4所示,一个完整的部署流程例如可以包括顺次进入的信息收集节点、信息校验节点、基础设施准备节点、部署准备节点、镜像化部署节点和服务校验节点,其中,该信息收集节点用于实施以上步骤S3100,通过该部署流程,便可以在接收到部署信息后,进行统一的一键式部署,使得作为部署对象的集群(可能包括多个机器)能够运行所部署的机器学习系统。
根据以上步骤S3100~S3200可知,本实施例的方法能够根据管理员统一输入的部署信息,即按照预置的部署流程一步步地进行机器学习系统的部署,实现根据部署信息的一键式部署,能够有效提高部署效率及部署灵活性。
在一个实施例中,该部署流程可以包括在获取到部署信息后进入的信息校验节点。该实施例中,以上步骤S3200中按照预设的部署流程部署该机器学习系统可以包括以下步骤S3211~S3212:
步骤S3211,在信息校验节点,校验通过步骤S3100获取到的部署信息的正确性。
在一个实施例中,该步骤S3211中校验部署信息的正确性,可以包括以下至少一项:
第一项:对部署信息进行拼写校验。
通过拼写校验,可以检查部署信息中可能存在的拼写错误,进而保证部署信息的拼写正确性。
第二项,对部署信息进行上下文关联校验。
在部署信息中,有些信息存在着相互影响的关联性,例如,任意的基础设施如果选择已有设施,例如,选择已有平台,已有仓库等,那么就需要提供该已有设施的鉴权信息及配置文件等。
第三项,对部署信息所描述的集群进行连通性校验。
该集群即为由作为部署对象的各机器组成的集群。
该连通性校验例如包括该集群是否可访问,集群间的信任关系是否已经建立等。
步骤S3212,在校验通过的情况下,进入基础设施准备节点执行对应的部署操作。
该实施例中,在校验未通过的情况下,向管理员发出未通过校验的通知,该通知可以包括校验未通过的原因,管理员可以根据该原因修改部署信息。
在一个实施例中,该基础设施准备节点在提供机器学习系统使用的基础设施时,可以包括如下步骤:根据部署信息中的基础设施信息,提供机器学习系统使用的基础平台,及部署该基础平台的核心依赖。
该核心依赖提供用于存放业务运行所需文件的镜像仓库,该业务为机器学习系统支持的业务,这些业务分别由相应的业务模块提供。
该实施例中,基础设施准备节点提供的基础设施中的至少部分设施可以是根据部署信息新部署的,也可以是根据部署信息要求使用的已有设施,在此不做限定。
在部署信息要求至少部分设施使用已有设施的情况下,管理员需要输入该已有设施的配置文件和鉴权信息等。
在一个实施例中,该部署准备节点在提供基于基础设施部署机器学习系统所需的各部署文件时,可以包括如下步骤:根据部署信息的资源选择信息生成资源选择文件;以及,将该资源选择文件作为一种部署文件提交至基础平台。
该资源选择文件包括参与组建该机器学习系统的各机器及每一机器的类别标签,该类别标签反映所标记的机器需要承担的角色。根据该资源选择文件,便可获知各机器在该机器学习系统中的角色,例如是基于某一计算框架提供计算功能的角色,提供存储服务的角色,或者提供运维服务的角色等等。
在一个实施例中,该部署准备节点在提供基于基础设施部署机器学习系统所需的各部署文件时,可以包括如下步骤:根据部署信息的基础设施信息,判断该机器学习系统是否使用已有基础设施;在使用已有基础设施的情况下,获取输入的连接配置文件;以及,将该连接配置文件作为一种部署文件提交至基础设施准备节点提供的基础平台。
该连接配置文件包括基础设施的配置文件和鉴权文件。
在一个实施例中,该部署准备节点在提供基于以上基础设施部署机器学习系统所需的各部署文件时,可以包括获取该机器学习系统所需使用的业务模块的步骤。
该实施例中,获取该机器学习系统所需的业务模块可以包括:根据部署信息中的场景选择信息,在预置的业务模块集合中选出该机器学习系统所需使用的各业务模块。
该业务模块集合包含任意机器学习系统所能支持业务的各类业务模块,该实施例中,允许根据所要部署的机器学习系统的应用场景等,对各类业务模块进行裁剪,以对该机器学习系统所需的业务模块进行经济化部署。
在一个实施例中,该部署准备节点在提供基于以上基础设施部署机器学习系统所需的各部署文件时,可以包括如下步骤:根据获取到的部署信息,获得配置相关文件;以及,将该配置相关文作为一种部署文件,提交至镜像化部署节点。
该配置相关文件反映该机器学习系统所需的各业务模块及各业务模块所需配置项的配置信息。
在一个实施例中,该配置相关文件可以包括该机器学习系统所需使用的各业务模块的更新后的配置文件,其中,该更新即为根据获取到的部署信息对各业务模块的配置文件进行的更新,即,根据获取到的部署信息为各业务模块的配置文件中的配置项进行相应的赋值等。
该实施例中,可以根据部署信息中的场景选择信息先确定该机器学习系统所需使用的功能,进而筛选出对应的各业务模块,再根据部署信息中的部署参数信息等更新确定的各业务模块的配置文件。
为了进一步提高部署效率,在一个实施例中,可以将获得配置相关文件的过程拆分为两个相互解耦的子步骤,使得两个子步骤可以并列运行,进而提高获得配置项文件的效率。
该实施例中,该部署准备节点在根据获取到的部署信息获得配置相关文件时,可以包括如下步骤S3221~S3222:
步骤S3221,分别抽取机器学习系统所需使用的各业务模块的配置文件,形成作为一部分配置相关文件的配置集合文件。
该配置集合文件包含提取出的所有配置文件。
该步骤S3221中抽取的配置文件为各业务模块的未进行更新的原始配置文件。
根据该步骤S3221获得的配置集合文件,能够明确该机器学习系统需要的各配置项。
步骤S3222,根据获取到的部署信息更新业务模块集合中业务模块的配置文件,获得更新后的配置文件作为另一部分配置相关文件。
该步骤S3222中根据部署信息更新业务模块的配置文件可以包括:根据部署信息更新预置的配置模板文件中的配置项的配置信息;以及,将更新后的配置模板文件中的配置项的配置信息,扩展至这些业务模块的配置文件的相同配置项中。这样,可以通过参数扩展进行业务模块的各配置项的统一配置。
由于该业务模块集合包含机器学习系统所需使用的各业务模块,因此,通过该步骤S3222可以确定机器学习系统需要的各配置项的配置信息,即各配置项的实际值。
该实施例中,由于配置集合文件提供了机器学习系统所需的各业务模块的配置项,而更新后的配置文件又提供了这些配置项的实际值,因此,配置集合文件和更新后的配置文件作为配置相关文件,能够反映该机器学习系统所需的各业务模块及各业务模块所需配置项的配置信息。
该实施例中,镜像化部署节点在基于各部署文件进行机器学习系统的部署时,可以包括:根据配置相关文件,生成业务模块的服务描述文件;以及,将该服务描述文件提交至基础设施准备节点提供的基础平台,完成机器学习系统的部署。
该实施例中,镜像化部署节点通过融合配置相关文件,生成该机器学习系统所需使用的各业务模块的服务描述文件。
该实施例中,可以是不同的业务模块具有各自的服务描述文件,即为各业务模块生成一一对应的服务描述文件。
该实施例中,也可以为各业务模块生成统一的服务描述文件,在此不做限定。
在一个实施例中,该镜像化部署节点在配置相关文件的基础上,还可以融合存储在核心依赖的镜像仓库中的meta文件,生成业务模块的服务描述文件。
根据该meta文件,可以获得每个业务模块的部署需求,例如所需资源、挂载点、高可用及调度等需求等。
该实施例中,镜像化部署节点在基于各部署文件进行该机器学习系统的部署还可以包括:除配置相关文件之外,还根据存储在核心依赖的镜像仓库中的meta文件,生成各业务模块的服务描述文件。
对于该机器学习系统所需的各业务模块中的任意业务模块,其除了具有配置文件之外,还具有代码文件,也有可能还具有建库建表语句等。在一个实施例中,可以对机器学习系统所需的各业务模块的至少部分文件进行统一抽取及统一处理,以提高部署效率。
在一个实施例中,该部署准备节点在提供基于以上基础设施部署机器学习系统所需的各部署文件时,可以包括如下步骤:分别抽取机器学习系统所需使用的各业务模块的建库建表语句,形成作为一种部署文件的语句集合文件。
该语句集合文件包含抽取到的各业务模块的建库建表语句,该语句集合文件作为一种部署文件被提供至镜像化部署节点。
该实施例中,该镜像化部署节点在基于各部署文件进行机器学习系统的部署时,可以包括如下步骤:执行该语句集合文件中的每一建库建表语句,建立对应的数据库和数据表。
该实施例中,所建立的数据库和数据表可以以镜像方式保存在基础设施准备节点提供的镜像仓库中。
在一个实施例中,该部署准备节点在提供基于以上基础设施部署机器学习系统所需的各部署文件时,可以包括如下步骤:分别抽取该机器学习系统所需使用的各业务模块的代码文件,形成作为一种部署文件的代码集合文件;以及,将该代码集合文件以镜像的方式保存在核心依赖的镜像仓库中。
该代码集合文件包含抽取出的所有代码文件。
在一个实施例中,该部署准备节点在提供基于以上基础设施部署机器学习系统所需的各部署文件时,可以包括如下步骤:将保存在本地的算子文件作为一种部署文件存放在基础设施准备节点提供的基础平台上。
这些算子文件为计算框架所需使用的算法的文件,即,算子文件封装了相关的算法。所部署的机器学习系统在运行任务时,需要到对应的基础平台上,例如到基础平台的提供存储功能的存储集群上获取所需的算子,而在机器学习系统的部署中,该算子可能并没有存放在该基础平台上,因此,在该实施例中,可以将保存在本地的算子文件存放在基础设施准备节点提供的基础平台上,以供完成部署的机器学习系统在运行任务时使用。
对于一个机器学习系统而言,除了提供基础平台和业务服务之外,可能还需要添加各种通用组件模块,比如提供监控,日志收集,链路追踪等服务的组件模块。
因此,在该实施例中,镜像化部署节点在基于各部署文件完成机器学习系统的部署时,还可以包括如下步骤:在基础平台上部署平行于业务模块的通用组件模块。
该通用组件模块为不局限于机器学习系统的通用的功能模块,即,其他集群系统也需要使用的功能模块。
该实施例中,通用组件模块的部署方式与业务模块部署方式类似,在此不做赘述。
这些通用组件模块例如包括监控模块、日志收集模块和链路追踪模块中的至少一项。
利用各种系统通用的通用组件模块进行机器学习系统的部署,可以减少需要针对机器学习系统开发的业务模块,减少开发成本。当然,也可以将任意的通用组件模块作为一种业务模块设置在业务模块集合中,在此不做限定。
在一个实施例中,该部署流程还可以包括在镜像化部署节点之后进入的服务检验节点。
该实施例中,以上步骤S3200中按照预设的部署流程进行该机器学习系统的部署可以包括如下步骤:在服务校验节点,检验在镜像化部署节点部署得到的机器学习系统是否能够成功启动;以及,在能够成功启动的情况下,发出部署成功通知。
该实施例中,在无法成功启动的情况下,将发出部署失败通知,以提示管理员重新进行部署。
在一个实施例中,为了使得整个部署流程具有可追溯性,该方法还包括如下步骤:在部署流程的各个流程节点,分别记录对应节点的运行日志以供查询。
为了提高运行日志的可读性,可以设置两类运行日志,一类为详细日志,一类为概要日志。该详细日志可以记录对应流程节点在每一时间点的运行内容。该概要日志可以记录对应流程节点的各个运行阶段、及每一运行阶段对应的运行时间戳和每一运行阶段所在流程节点的名称等。
在一个实施例中,可以将该运行日志发送至定制该运行日志的运维人员账号。
根据该实施例,运维人员通过本地应用或者web应用登录该账号,便可以获得该运行日志,进而根据该运行日志进行运维分析。
在一个实施例中,该方法还可以包括如下步骤:响应于查询运行日志的操作,提供查询页面;获取通过所述查询页面输入的查询内容;在所记录的运行日志中查找与所述查询内容相匹配的日志内容;以及,返回该相匹配的日志内容。
该实施例中,该查询页面可以提供用于供运维人员输入查询内容的查询接口,该查询接口例如是命令行等输入框,在此不做限定。
根据该实施例,运维人员可以查询在部署过程中记录的任何运行日志,方便运维人员了解部署中存在的问题。
通过记录运行日志,可以方便地在一个完整的部署流程中定位出现错误的流程节点或者流程步骤,这样便可以在修复错误问题后的重新部署中,从断点处开始继续进行部署。因此,在一个实施例中,该方法还可以包括如下步骤S3311~S3313:
步骤S3311,在按照部署流程部署该机器学习系统出现错误的情况下,发出警告通知并提供可选的修复方式。该警告通知可以包括出现错误的错误原因等,有利于管理员进行快速修复。
管理员在完成修复后,便可以提交修复后的部署信息,以触发重新部署操作。
步骤S3312,在接收到修复后的部署信息后,根据日志信息定位出现错误的流程节点的错误位置。
步骤S3313,从定位到的错误位置开始,继续执行部署流程。
根据该实施例的方法,通过在修复后于断点位置开始继续进行系统部署,能够进一步提高系统部署的效率。
<例子>
图5示出了根据一个例子的机器学习系统的部署流程示意图。如图5所示,该部署流程包括可以如下步骤:
一、在信息收集节点收集输入模板文件,该文件包含部署信息。
在定义使用已有的至少部分基础设施的情况下,管理员还需要提供相关的连接配置文件,这些连接配置文件是可以由管理员以特定的规则组织在一起形成特定格式的压缩包,并在执行部署过程中解压使用。对应地,该节点还需要收集该连接配置文件。
二、在信息校验节点对收集到的部署进行正确性校验(图5中未示出)。
三、在基础设施准备节点提供所需的基础设施,包括基础平台及核心依赖。
该节点根据输入模板文件的定义,完成所需基础平台及核心依赖的部署。
四、在部署准备节点进行部署准备。
该节点可以分为几个子步骤,包括模板替换、参数扩展、模块选择、统一抽取、配置上传、数据上传、标签生效和镜像还原。
4-1、模板替换:
由于信息收集节点提供的输入模板文件所面对的对象是管理员,所以输入模板文件的配置项一般是高度抽象、简短易读、用户友好的,但对于计算机来说,需要翻译成符合部署意义的配置项和文件,该模板替换即实现该翻译。该翻译过程可以通过模板替换完成的,即用输入模板文件中的配置项的配置信息替换专用的配置模板文件中的同名变量的取值,输出已经收集好配置信息的配置模板文件。
4-2、参数扩展
对于通过模板替换提供的配置模板文件,其中的每一配置项都代表着不同的意义,而不同的业务模块有时可能需要同一个配置,比如数据持久化的地址等,所以,可以通过参数扩展将配置模板文件中的众多业务模块都依赖的配置项的配置信息添加到这些业务模块的配置文件中,达到参数一对多扩展的效果。
4-3、模块选择
为了实现定制化部署,可以根据用户购买产品的情况选择不同的部署场景,在此,由于在部署之前,所有的业务模块都在一个业务模块集合中,因此,可以设置模块选择的步骤,以根据部署信息中的场景选择信息选出所需的业务模块,暂存下来,供后续步骤使用。
4-4、统一抽取
每个业务模块通常可以分为三个部分,建库建表语句、配置文件和代码文件,其中,对于不需要使用数据库的模块,则不具有建库建表语句。如果每个业务模块自己处理建库语句、配置文件和代码文件,则就会有重复的工作,并且每个业务模块维护同一系列动作也增加了维护人员的维护成本。针对这个问题,可以通过统一抽取,将所有业务模块的建库建表语句、配置文件和代码文件均分别抽取出来,形成三个集合文件,建库建表集合文化管理所有的建库建表语句,配置集合文件管理所有的配置文件,而代码集合文件则管理所有的代码,这样便于统一执行建库、配置复写和代码部署。
4-5、配置上传
如果输入模板文件定义了使用自有基础设施,例如,使用自有容器平台,自有仓库,自有计算集群等,那么需要提供这些平台的配置文件以及鉴权信息等,供后续系统启动运行使用。
4-6、数据上传
这个步骤主要是将以本地对象形式存在的算子文件存放至所部属的基础平台上,以供后续任务运行使用。
4-7、标签生效
在信息收集节点收集的部署信息中,有一类是资源选择信息,该资源选择信息反映有多少机器参与组建集群,每台机器上要运行什么样的任务,这些信息的实现可以通过标签来实现的。这个步骤可以根据收集到的部署信息,给各个参与集群搭建的机器打上标签,来标明机器在该集群中的任务内容。
4-8、镜像还原
在统一抽取的三个集合中,有一个集合是代码文件集合,将代码部署到集群中,需要先将代码变为镜像存储于基础设施准备节点提供的核心依赖的镜像仓库中,便于后续统一部署,这个过程称为镜像还原,主要是将代码文件变为可以直接部署的镜像文件。
五、在镜像化部署节点完成该机器学习系统的部署。
该节点可以分为几个子步骤,包括文件融合、组件部署、数据库初始化和服务部署。
5-1、文件融合
这一步骤所要融合的文件来自于三个输出:第一处输出为部署准备节点的参数扩展步骤提供的业务模块的更新后的模板文件,该步骤提供各业务模块的配置文件的配置项的实际值;第二处输出为部署准备节点的统一抽取步骤提供的配置集合文件,该配置文件集合包含了该机器学习系统实际需要的各业务模块的配置项。第三处输出为每个业务模块所需要的部署需求,体现该部署需求的meta文件存在于镜像仓库中。
通过文件融合可以产生业务模块的服务描述文件。
该步骤中,在部署准备节点进行了参数扩展和配置文件的统一抽取,可以让业务配置项的定义与部署的公共信息配置项解耦,这样通过机制保证配置项信息准确无误的方式会更灵活。
5-2、组件部署
对于整个机器学习系统来说,可以通过该步骤添加各种通用组件模块。
5-3、数据库初始化
在部署准备节点的统一抽取步骤,还产生了语句集合文件,该步骤就是要将该集合文件中的语句一一执行,以建立数据库和数据表。
5-4、服务部署
经过了前面的处理,截止到此步骤,所有的准备工作都已经就绪,此时将文件融合步骤产出的各个业务模块的服务描述文件提交到基础平台中,就完成了服务的部署。
六、在服务校验节点对部署后的机器学习系统进行服务校验。
部署完成之后,可以在服务部署节点校验该系统是否能够成功启动,这可以包括三个方面的校验,一方面是可用性校验,即检验系统是否可登录;另一方面是状态检验,查看服务的端口及状态;第三方面是语义、任务检查,通过试跑一个简单的任务,根据是否成功判断整体服务是否部署成功等。
<装置实施例>
图6示出了根据一个实施例的部署机器学习系统的装置200的原理框图。如图6所示,该装置200可以包括信息收集模块210和部署执行模块220。该机器学习系统可以为集群系统。
该信息收集模块210用于获取输入的部署信息。
该部署执行模块220用于根据所述部署信息,按照预设的部署流程部署所述机器学习系统。
在一个实施例中,该信息收集模块210还可以用于提供进行信息收集的输入模板文件。该实施例中,该信息收集模块210在获取输入的部署信息时,可以用于:获取在所述输入模板文件中填写的部署信息。
在一个实施例中,该部署信息包括基础设施信息、部署参数信息、场景选择信息和资源选择信息。
在一个实施例中,该部署流程可以包括顺次进入的基础设施准备节点、部署准备节点和镜像化部署节点。
该实施例中,所述基础设施准备节点用于提供所述机器学习系统使用的基础设施,所述基础设施包括基础平台和核心依赖;所述部署准备节点用于提供基于所述基础设施部署机器学习系统所需的各部署文件;所述镜像化部署节点用于基于所述各部署文件完成所述机器学习系统的部署。
在一个实施例中,该部署流程还可以包括先于所述基础设施准备节点进入的信息校验节点。
该实施例中,该部署执行模块220在按照预设的部署流程部署所述机器学习系统时,可以用于:在信息校验节点,校验所述部署信息的正确性;以及,在校验通过的情况下,进入基础设施准备节点执行对应的部署操作。
在一个实施例中,该部署执行模块220在校验所述部署信息的正确性时,可以用于执行以下至少一项:第一项:对所述部署信息进行拼写校验;第二项,对所述部署信息进行上下文关联校验;第三项,对所述部署信息描述的集群进行连通性校验。
在一个实施例中,该部署执行模块220在提供所述机器学习系统使用的基础设施时,可以用于:根据所述部署信息中的基础设施信息,提供所述机器学习系统使用的基础平台,及部署所述基础平台的核心依赖。该核心依赖包括用于存放业务运行所需文件的镜像仓库,所述业务为所述机器学习系统支持的业务。
在一个实施例中,该部署执行模块220在提供基于所述基础设施部署机器学习系统所需的各部署文件时,可以用于:根据所述部署信息,获得配置相关文件,其中,所述配置相关文件反映所述机器学习系统所需使用的业务模块及所述业务模块所需配置项的配置信息;以及,将所述配置相关文作为一种部署文件,提交至镜像化部署节点。
该实施例中,该部署执行模块220在基于所述各部署文件完成所述机器学习系统的部署时,可以用于:根据所述配置相关文件,生成所述机器学习系统所需使用的业务模块的服务描述文件;以及,将所述服务描述文件提交至所述基础平台,完成机器学习系统的部署。
在一个实施例中,该部署执行模块220在根据所述部署信息,获得配置相关文件时,可以用于:分别抽取机器学习系统所需使用的各业务模块的配置文件,形成配置集合文件作为一部分配置相关文件,其中,所述配置集合文件包含提取出的所有配置文件;以及,根据所述部署信息更新业务模块集合中业务模块的配置文件,获得更新后的配置文件作为另一部分配置相关文件。
在一个实施例中,该部署执行模块220在根据所述部署信息更新业务模块集合中业务模块的配置文件时,可以用于:根据所述部署信息更新预置的配置模板文件中的配置项的配置信息;以及,将更新后的配置模板文件中的配置项的配置信息,扩展至业务模块集合中业务模块的配置文件的相同配置项中。
在一个实施例中,该部署执行模块220在获得所述所需使用的业务模块时,可以用于:根据部署信息中的场景选择信息,在预置的业务模块集合中选出所述所需使用的业务模块。
在一个实施例中,该部署执行模块220在基于所述各部署文件完成所述机器学习系统的部署时,还可以用于:还根据存储在所述核心依赖的镜像仓库中的meta文件,生成所述机器学习系统所需使用的业务模块的服务描述文件。
在一个实施例中,该部署执行模块220在提供基于所述基础设施部署机器学习系统所需的各部署文件时,可以用于:分别抽取所述机器学习系统需要使用的各业务模块的建库建表语句,形成作为一种部署文件的语句集合文件,其中,该语句集合文件包含提取出的所有建库建表语句。
该实施例中,该部署执行模块220在基于所述各部署文件完成所述机器学习系统的部署时,可以用于:执行所述语句集合文件中的每一建库建表语句,建立对应的数据库和数据表。
在一个实施例中,该部署执行模块220在提供基于所述基础设施部署机器学习系统所需的各部署文件时,可以用于:分别抽取所述机器学习系统需要使用的各业务模块的代码文件,形成作为一种部署文件的代码集合文件,所述代码集合文件包含抽取出的所有代码文件。
该实施例中,该部署执行模块220在基于所述各部署文件完成所述机器学习系统的部署时,可以用于:将代码集合文件以镜像的方式保存在所述核心依赖的镜像仓库中。
在一个实施例中,该部署执行模块220在提供基于所述基础设施部署机器学习系统所需的各部署文件时,可以用于:将保存在本地的算子文件作为一种部署文件存放至所述基础平台。
在一个实施例中,该部署执行模块220在提供基于所述基础设施部署机器学习系统所需的各部署文件时,可以用于:根据所述部署信息的资源选择信息生成资源选择文件;以及,将所述资源选择文件作为一种部署文件提交至所述基础平台。该资源选择文件可以包括参与组建所述机器学习系统的各机器及每一机器的类别标签,所述类别标签反映所标记的机器需要承担的角色。
在一个实施例中,该部署执行模块220在提供基于所述基础设施部署机器学习系统所需的各部署文件时,可以用于:根据所述部署信息的基础设施信息,判断所述机器学习系统是否使用已有基础设施;在使用已有基础设施的情况下,获取输入的连接配置文件;以及,将所述连接配置文件作为一种部署文件提交至所述基础平台。该连接配置文件可以包括基础设施的配置文件和鉴权文件。
在一个实施例中,该部署执行模块220在基于所述各部署文件完成所述机器学习系统的部署时,可以用于:在基础平台上部署平行于业务模块的通用组件模块。该业务模块为用于提供机器学习相关功能的模块,该通用组件模块为用于提供不局限于所述机器学习系统的通用功能的模块。
在一个实施例中,该业务模块包括调度模块、前端展示模块和运行管理模块中的至少一项。
在一个实施例中,该通用组件模块包括监控模块、日志收集模块和链路追踪模块中的至少一项。
在一个实施例中,该部署流程还包括在所述镜像化部署节点之后进入的服务检验节点。该实施例中,该部署执行模块220在按照预设的部署流程完成所述机器学习系统的部署时,可以用于:在服务校验节点,检验在所述镜像化部署节点得到的机器学习系统是否能够成功启动;以及,在能够成功启动的情况下,发出部署成功通知。
在一个实施例中,该装置200还包括日志记录模块。该日志记录模块可以用于:在所述部署流程的各个流程节点,分别记录对应节点的运行日志以供查询。
在一个实施例中,该装置200还包括日志查询模块,该日志查询模块用于:响应于查询运行日志的操作,提供查询页面;获取通过所述查询页面输入的查询内容;在所记录的运行日志中查找与所述查询内容相匹配的日志内容;以及,返回所述相匹配的日志内容。
在一个实施例中,该运行日志可以包括详细日志和概要日志,其中,所述详细日志记录对应流程节点在每一时间点的运行内容,所述概要日志记录对应流程节点的各个运行阶段、及每一运行阶段对应的运行时间戳和每一运行阶段所在流程节点的名称。
在一个实施例中,该装置200还可以包括流程管理模块。该流程管理模块可以用于:在按照所述部署流程部署所述机器学习系统出现错误的情况下,发出警告通知并提供可选的修复方式;在接收到修复后的部署信息后,根据所述日志信息定位出现错误的流程节点的错误位置;以及,控制部署执行模块从定位到的所述错误位置开始,继续执行所述部署流程。
本发明可以是设备、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。
Claims (10)
1.一种部署机器学习系统的方法,包括:
获取输入的部署信息;
根据所述部署信息,按照预设的部署流程部署所述机器学习系统。
2.根据权利要求1所述的方法,其中,所述方法还包括:
提供进行信息收集的输入模板文件;
所述获取输入的部署信息包括:
获取在所述输入模板文件中填写的部署信息。
3.根据权利要求1所述的方法,其中,所述部署信息包括基础设施信息、部署参数信息、场景选择信息和资源选择信息。
4.根据权利要求1所述的方法,其中,所述部署流程包括顺次进入的基础设施准备节点、部署准备节点和镜像化部署节点;
其中,所述基础设施准备节点用于提供所述机器学习系统使用的基础设施,所述基础设施包括基础平台和核心依赖;所述部署准备节点用于提供基于所述基础设施部署机器学习系统所需的各部署文件;所述镜像化部署节点用于基于所述各部署文件完成所述机器学习系统的部署。
5.根据权利要求4所述的方法,其中,所述部署流程还包括先于所述基础设施准备节点进入的信息校验节点;
所述按照预设的部署流程部署所述机器学习系统包括:
在所述信息校验节点,校验所述部署信息的正确性;
在校验通过的情况下,进入所述基础设施准备节点执行对应的部署操作。
6.根据权利要求5所述的方法,其中,所述校验所述部署信息的正确性包括以下至少一项:
第一项:对所述部署信息进行拼写校验;
第二项,对所述部署信息进行上下文关联校验;
第三项,对所述部署信息描述的集群进行连通性校验。
7.根据权利要求4所述的方法,其中,所述提供所述机器学习系统使用的基础设施包括:
根据所述部署信息中的基础设施信息,提供所述机器学习系统使用的基础平台及所述基础平台的核心依赖;
其中,所述核心依赖包括用于存放业务运行所需文件的镜像仓库,所述业务为所述机器学习系统提供的业务。
8.一种部署机器学习系统的装置,包括:
信息收集模块,用于获取输入的部署信息;以及,
部署执行模块,根据所述部署信息,按照预设的部署流程部署所述机器学习系统。
9.一种包括至少一个计算装置和至少一个存储装置的设备,其中,所述至少一个存储装置用于存储指令,所述指令用于控制所述至少一个计算装置执行根据权利要求1至7中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在被处理器执行时实现如权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010125496.0A CN111352637B (zh) | 2020-02-27 | 2020-02-27 | 部署机器学习系统的方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010125496.0A CN111352637B (zh) | 2020-02-27 | 2020-02-27 | 部署机器学习系统的方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111352637A true CN111352637A (zh) | 2020-06-30 |
CN111352637B CN111352637B (zh) | 2023-11-21 |
Family
ID=71197172
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010125496.0A Active CN111352637B (zh) | 2020-02-27 | 2020-02-27 | 部署机器学习系统的方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111352637B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040079337A (ko) * | 2004-03-06 | 2004-09-14 | 마이크로소프트 코포레이션 | 분산형 컴퓨팅 시스템을 위한 아키텍처 및 분산형애플리케이션들의 자동화된 설계, 배포와 관리 |
JP2012048330A (ja) * | 2010-08-25 | 2012-03-08 | Nippon Telegr & Teleph Corp <Ntt> | クラスタシステムおよびソフトウェアデプロイ方法 |
CN102404381A (zh) * | 2011-09-02 | 2012-04-04 | 西安交通大学 | 一种云计算环境下基于工作流的软件部署系统及部署方法 |
CN103455352A (zh) * | 2013-08-30 | 2013-12-18 | 中国电子科技集团公司第十五研究所 | 部署应用软件的方法及应用软件部署装置 |
US20140040656A1 (en) * | 2010-08-26 | 2014-02-06 | Adobe Systems Incorporated | System and method for managing cloud deployment configuration of an application |
CN107329797A (zh) * | 2016-04-28 | 2017-11-07 | 华为技术有限公司 | 一种实例弹性伸缩方法、实例管理模块以及计算设备 |
CN107704252A (zh) * | 2017-10-20 | 2018-02-16 | 北京百悟科技有限公司 | 一种向用户提供人工智能平台的方法及系统 |
WO2018111270A1 (en) * | 2016-12-15 | 2018-06-21 | Schlumberger Technology Corporation | Systems and methods for generating, deploying, discovering, and managing machine learning model packages |
WO2018161799A1 (zh) * | 2017-03-08 | 2018-09-13 | 中兴通讯股份有限公司 | 一种云应用部署方法和系统 |
CN110688123A (zh) * | 2018-07-06 | 2020-01-14 | 国际商业机器公司 | 托管服务域中的自动应用部署 |
CN110784361A (zh) * | 2019-10-31 | 2020-02-11 | 国网河南省电力公司电力科学研究院 | 虚拟化云蜜网部署方法、装置、系统及计算机可读存储介质 |
-
2020
- 2020-02-27 CN CN202010125496.0A patent/CN111352637B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040079337A (ko) * | 2004-03-06 | 2004-09-14 | 마이크로소프트 코포레이션 | 분산형 컴퓨팅 시스템을 위한 아키텍처 및 분산형애플리케이션들의 자동화된 설계, 배포와 관리 |
JP2012048330A (ja) * | 2010-08-25 | 2012-03-08 | Nippon Telegr & Teleph Corp <Ntt> | クラスタシステムおよびソフトウェアデプロイ方法 |
US20140040656A1 (en) * | 2010-08-26 | 2014-02-06 | Adobe Systems Incorporated | System and method for managing cloud deployment configuration of an application |
CN102404381A (zh) * | 2011-09-02 | 2012-04-04 | 西安交通大学 | 一种云计算环境下基于工作流的软件部署系统及部署方法 |
CN103455352A (zh) * | 2013-08-30 | 2013-12-18 | 中国电子科技集团公司第十五研究所 | 部署应用软件的方法及应用软件部署装置 |
CN107329797A (zh) * | 2016-04-28 | 2017-11-07 | 华为技术有限公司 | 一种实例弹性伸缩方法、实例管理模块以及计算设备 |
WO2018111270A1 (en) * | 2016-12-15 | 2018-06-21 | Schlumberger Technology Corporation | Systems and methods for generating, deploying, discovering, and managing machine learning model packages |
WO2018161799A1 (zh) * | 2017-03-08 | 2018-09-13 | 中兴通讯股份有限公司 | 一种云应用部署方法和系统 |
CN108574702A (zh) * | 2017-03-08 | 2018-09-25 | 中兴通讯股份有限公司 | 一种云应用部署方法和系统 |
CN107704252A (zh) * | 2017-10-20 | 2018-02-16 | 北京百悟科技有限公司 | 一种向用户提供人工智能平台的方法及系统 |
CN110688123A (zh) * | 2018-07-06 | 2020-01-14 | 国际商业机器公司 | 托管服务域中的自动应用部署 |
CN110784361A (zh) * | 2019-10-31 | 2020-02-11 | 国网河南省电力公司电力科学研究院 | 虚拟化云蜜网部署方法、装置、系统及计算机可读存储介质 |
Non-Patent Citations (6)
Title |
---|
HE LI等: "Learning IoT in Edge: Deep Learning for the Internet of Things with Edge Computing", 《IEEE NETWORK》, vol. 32, no. 1, pages 96 - 101 * |
实验楼V: "6 种方法部署 TensorFlow2 机器学习模型,简单 + 快速 + 跨平台!", pages 1 - 5, Retrieved from the Internet <URL:https://blog.csdn.net/MOY37RQW1JarN33BgZk/article/details/104509154> * |
林桂芳: "异构化TensorFlow架构的研究与实现", 《中国优秀硕士学位论文全文数据库(信息科技辑)》, no. 06, pages 139 - 149 * |
罗亮: "基于Docker的工业大数据平台持续服务关键技术研究", 《中国优秀硕士学位论文全文数据库(信息科技辑)》, no. 06, pages 138 - 358 * |
费宁等: "TensorFlow架构与实现机制的研究", 《计算机技术与发展》, no. 09, pages 31 - 34 * |
邱龙骄等: "互联网时代下电力信息系统自动化运维", 《2017电力行业信息化年会论文集(信息科技辑)》, pages 132 - 137 * |
Also Published As
Publication number | Publication date |
---|---|
CN111352637B (zh) | 2023-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107491329B (zh) | Docker镜像构建方法、设备、存储介质以及电子装置 | |
US7886284B2 (en) | Using a backend simulator to test and develop xforms templates before linking the xforms templates to backend data processing systems | |
US20180101371A1 (en) | Deployment manager | |
US20170228220A1 (en) | Self-healing automated script-testing tool | |
US10963232B2 (en) | Constructing and enhancing a deployment pattern | |
CN111324522A (zh) | 一种自动化测试系统及方法 | |
KR20170015968A (ko) | 모바일 장치들의 원격 구성을 허용하기 위해 모바일 장치들 상에 설치되는 고속 어플리케이션 | |
US20140059513A1 (en) | Creation and Uploading of Archives for Software Projects to Submission Portal | |
CN113505082B (zh) | 应用程序测试方法及装置 | |
US20170249126A1 (en) | Easy storm topology design and execution | |
Lenka et al. | Behavior driven development: Tools and challenges | |
CN115658529A (zh) | 用户页面的自动化测试方法以及相关设备 | |
CN112711397A (zh) | 一种基于微服务和顶层设计的建立系统的方法及系统 | |
CN107622006A (zh) | 用于测试移动装置的系统和方法 | |
CN111488275B (zh) | Ui自动化测试方法、装置、存储介质及电子设备 | |
EP4296861A1 (en) | System and method for cloud infrastructure test automation | |
CN111352637B (zh) | 部署机器学习系统的方法、装置及设备 | |
CN106919387A (zh) | 一种软件发布系统及发布方法 | |
US20230083195A1 (en) | Modification of a dockerfile to repair vulnerabilities existing in the dockerfile | |
US20230297496A1 (en) | System and method for serverless application testing | |
US20200081700A1 (en) | Intention-based command optimization | |
US11657351B2 (en) | Management system for responding to incidents based on previous workflows | |
CN113391794A (zh) | 一种开发协作服务系统及方法 | |
CN114356396A (zh) | 一种适配多种服务的服务发布方法及装置 | |
US11775293B1 (en) | Deploying a static code analyzer based on program synthesis from input-output examples |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |