一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

算法应用元的打包方法及装置、设备、存储介质与流程

2022-02-22 23:40:34 来源:中国专利 TAG:


1.本技术实施例涉及计算机技术,涉及但不限于一种算法应用元的打包方法及装置、设备、存储介质。


背景技术:

2.目前,随着人工智能领域的发展,越来越多的ai(artificial intelligence,人工智能)算法被开发出来应用到各行各业。算法在应用的过程中需要不断地迭代,以提升算法的精度和算法的性能。
3.但是,现有情况下大部分算法迭代周期长,算法从开发、测试和部署上线存在流程复杂,成本高,专业要求高等劣势。因此,如何解决上述问题成为本领域技术人员的研究重点。


技术实现要素:

4.有鉴于此,本技术实施例提供一种算法应用元的打包方法及装置、设备、存储介质。
5.本技术实施例的技术方案是这样实现的:
6.第一方面,本技术实施例提供一种算法应用元的打包方法,所述方法包括:
7.获取目标算法;
8.将所述目标算法对应的内容进行打包,得到目标算法应用元;
9.在特定的算法仓中部署所述目标算法应用元,使得在所述算法仓中启动所述目标算法应用元的情况下能够实现所述目标算法对应的功能;其中,所述算法仓为可以运行所述目标算法应用元的系统,且所述目标算法应用元与所述算法仓解耦。
10.通过上述方式,能够将目标算法打包成与算法仓系统松耦合的算法应用元,使得目标算法也具备了灵活的部署迭代优势,进而能够将所述目标算法对应的算法应用元直接上传至算法仓系统并启动运行,无需安装
11.在一些实施例中,所述获取目标算法,包括:获取目标算法对应的配置信息和脚本信息;其中,所述配置信息用于为所述目标算法应用元配置运行参数,所述脚本信息为所述目标算法对应的脚本程序;对应地,所述将所述目标算法对应的内容进行打包,得到目标算法应用元,包括:将所述配置信息和所述脚本信息对应的内容进行打包,得到目标算法应用元。
12.通过上述方式,能够基于配置信息和脚本信息,将目标算法打包成目标算法应用元。
13.在一些实施例中,所述获取目标算法,还包括:获取目标算法对应的模型信息;其中,所述模型信息为所述目标算法对应的算法模型;对应地,所述将所述目标算法对应的内容进行打包,得到目标算法应用元,包括:将所述模型信息、所述配置信息和所述脚本信息对应的内容进行打包,得到目标算法应用元。
14.通过上述方式,能够基于配置信息、脚本信息和模型信息,将目标算法打包成目标算法应用元,从而灵活地配置打包参数,根据实际需要选择不同的打包选项实现对所述目标算法的打包。
15.在一些实施例中,所述获取目标算法对应的配置信息,包括:获取目标算法对应的任务类型;根据所述任务类型,确定所述目标算法对应的运行管道;将所述运行管道确定为所述目标算法对应的配置信息;对应地,所述获取目标算法对应的模型信息,包括:确定所述运行管道中每一运行阶段对应的算法模型;将所述每一运行阶段对应的算法模型,确定为所述目标算法对应的模型信息。
16.通过上述方式,能够基于目标算法对应的业务的运行管道确定配置信息的内容,并根据所述运行管道中每一运行阶段对应的算法模型确定模型信息的内容。
17.在一些实施例中,所述获取目标算法对应的配置信息,还包括:确定所述目标算法应用元的运行环境,以及所述目标算法应用元在所述运行环境下的性能信息;将所述运行环境和所述性能信息确定为所述目标算法对应的配置信息;对应地,在存在多个所述运行环境的情况下,所述获取目标算法对应的模型信息,还包括:确定多个所述运行环境中每一所述运行环境对应的模型信息;将所述每一所述运行环境对应的模型信息,确定为所述目标算法对应的模型信息。
18.通过上述方式,能够基于目标算法应用元的运行环境,以及所述运行环境下所述目标算法应用元的性能,来确定配置信息的内容,并根据每一运行环境下的模型信息,来确定打包的模型内容。
19.在一些实施例中,在将所述目标算法应用元作为其他算法应用元的模板的情况下,所述获取目标算法对应的配置信息,还包括:获取所述运行管道、所述运行环境和所述性能信息对应的模板信息;将所述模板信息确定为所述目标算法对应的配置信息。
20.通过上述方式,能够基于目标算法对应的业务的运行管道、目标算法应用元的运行环境,以及该目标算法应用元在该运行环境下的性能,得到模板信息,并将所述模板信息确定为配置信息的内容,从而可以用所述目标算法应用元来生成其他类似的算法应用元。
21.在一些实施例中,所述获取目标算法,还包括:获取目标算法对应的动态库信息;其中,所述动态库信息用于被所述脚本信息对应的代码调用以使所述目标算法应用元适用于不同的平台;对应地,所述将所述目标算法对应的内容进行打包,得到目标算法应用元,包括:将所述配置信息、所述脚本信息和所述动态库信息对应的内容进行打包,得到目标算法应用元。
22.通过上述方式,能够基于配置信息、脚本信息,以及与所述脚本信息相关的动态库信息,将目标算法打包成目标算法应用元,从而灵活地配置打包参数,根据实际需要选择不同的打包选项实现对所述目标算法的打包。
23.在一些实施例中,所述获取目标算法,还包括:获取目标算法对应的用户文档和格式信息;其中,所述用户文档用于描述所述目标算法应用元的使用信息,所述格式信息用于规范所述目标算法应用元的输入输出数据的格式;对应地,所述将所述目标算法对应的内容进行打包,得到目标算法应用元,包括:将所述配置信息、所述脚本信息、所述用户文档和所述格式信息对应的内容进行打包,得到目标算法应用元。
24.通过上述方式,能够基于配置信息、脚本信息,以及用户文档和格式信息,将目标
算法打包成目标算法应用元,从而灵活地配置打包参数,根据实际需要选择不同的打包选项实现对所述目标算法的打包。
25.在一些实施例中,所述将所述目标算法对应的内容进行打包,得到目标算法应用元,包括:通过动态语言将所述目标算法对应的内容进行打包,得到目标算法应用元;其中,所述目标算法应用元与所述算法仓所关联的任一镜像之间相互独立。
26.通过上述方式,能够使用动态语言对目标算法进行打包,同时打包后的算法应用元与镜像之间相互独立,从而可以先发布镜像,再更新算法,实现对算法的灵活管理。
27.在一些实施例中,所述方法还包括:接收更新请求;其中,所述更新请求的内容为请求将所述目标算法应用元从第一版本更新为第二版本;响应于所述更新请求,停止使用所述算法仓中第一版本的目标算法应用元;在所述算法仓中部署所述第二版本的目标算法应用元。
28.通过上述方式,能够将新版本的算法打包成算法应用元,然后上传至系统并启用来实现对算法的迭代更新,从而解决现有技术中更新系统中的算法需要更新整个镜像或者更新整个系统的问题。
29.第二方面,本技术实施例提供一种算法应用元的打包装置,所述装置包括:
30.获取单元,用于获取目标算法;
31.打包单元,用于将所述目标算法对应的内容进行打包,得到目标算法应用元;
32.部署单元,用于在特定的算法仓中部署所述目标算法应用元,使得在所述算法仓中启动所述目标算法应用元的情况下能够实现所述目标算法对应的功能;其中,所述算法仓为可以运行所述目标算法应用元的系统,且所述目标算法应用元与所述算法仓解耦。
33.第三方面,本技术实施例提供一种电子设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法中的步骤。
34.第四方面,本技术实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法中的步骤。
35.本技术实施例提供一种算法应用元的打包方法及装置、设备、存储介质,通过获取目标算法;将所述目标算法对应的内容进行打包,得到目标算法应用元;在特定的算法仓中部署所述目标算法应用元,使得在所述算法仓中启动所述目标算法应用元的情况下能够实现所述目标算法对应的功能;其中,所述算法仓为可以运行所述目标算法应用元的系统,且所述目标算法应用元与所述算法仓解耦,如此,能够将目标算法打包成与算法仓系统松耦合的算法应用元,使得目标算法也具备了灵活的部署迭代优势,进而能够将所述目标算法对应的算法应用元直接上传至算法仓系统并启动运行,无需安装。
附图说明
36.图1为本技术实施例算法应用元的打包方法的实现流程示意图一;
37.图2为本技术实施例算法应用元的打包方法的实现流程示意图二;
38.图3为本技术实施例算法应用元的打包方法的实现流程示意图三;
39.图4为本技术实施例算法应用元的打包方法的实现流程示意图四;
40.图5为本技术实施例算法应用元的打包方法的实现流程示意图五;
41.图6为本技术实施例算法应用元的打包装置的组成结构示意图;
42.图7为本技术实施例电子设备的一种硬件实体示意图。
具体实施方式
43.下面结合附图和实施例对本技术的技术方案进一步详细阐述。显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
44.在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
45.在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本技术的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
46.需要指出,本技术实施例所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本技术实施例能够以除了在这里图示或描述的以外的顺序实施。
47.基于此,本技术实施例提供一种算法应用元的打包方法,所述方法应用于电子设备,该方法所实现的功能可以通过所述电子设备的处理器调用程序代码来实现,当然程序代码可以保存在所述电子设备的存储介质中。图1为本技术实施例算法应用元的打包方法的实现流程示意图一,如图1所示,所述方法包括:
48.步骤s101、获取目标算法;
49.这里,所述电子设备可以为各种类型的具有信息处理能力的设备,例如导航仪、智能手机、平板电脑、可穿戴设备、膝上型便携计算机、一体机和台式计算机、服务器集群等。
50.需要说明的是,本技术实施例中对所述目标算法的类型并不做限制,所述目标算法可以为任一类型的算法。这里,所述算法是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。所述目标算法可以为人工智能领域的相关算法,例如,人工智能领域的智能视频分析算法、人脸识别算法、指纹识别算法、人体检测跟踪算法等。当然,所述目标算法也可以为其他领域的相关算法,并且通常情况下所述目标算法能够实现特定的业务功能。
51.在实际使用时,算法在应用中是需要不断迭代的,以提升算法的精度和算法的性能。这个迭代过程,指的就是算法从开发完成到测试完成、再从测试完成到部署上线供用户使用这一整套的流程。
52.步骤s102、将所述目标算法对应的内容进行打包,得到目标算法应用元;
53.这里,所述目标算法应用元即所述目标算法对应的applet,所述applet是一种算法应用元,可以看作应用程序包(即以功能为单位的一个小程序),里面打包的是算法的模型、代码、配置项等内容,即一个具体的算法逻辑包。
54.本技术实施例中,可以将所述目标算法对应的内容通过zip工具打包,得到目标算
法应用元。例如,直接通过linux zip命令打包,或者通过内部打包工具进行打包。
55.步骤s103、在特定的算法仓中部署所述目标算法应用元,使得在所述算法仓中启动所述目标算法应用元的情况下能够实现所述目标算法对应的功能;其中,所述算法仓为可以运行所述目标算法应用元的系统,且所述目标算法应用元与所述算法仓解耦。
56.这里,可以在特定的算法仓中部署打包得到的目标算法应用元,算法仓中的算法应用元管理服务会在该目标算法应用元中添加签名信息,经过签名的目标算法应用元就可以分发给用户使用。该目标算法应用元可以被直接启动运行,在运行时会首先校验其签名是否正确,如果正确则按其打包内容运行,以实现所述目标算法对应的功能。
57.本技术实施例中,所述特定的算法仓为一种通用的能够运行任何算法应用元的系统,即所述算法仓为一个特定的算法系统,且所述算法仓与部署在所述算法仓中的任一算法应用元解耦。现有技术中,是将算法逻辑打包到镜像中,因此算法逻辑与系统是耦合在一起的。例如,docker是一个开源的应用容器引擎,开发者可以打包应用以及依赖包到一个可移植的容器中,然后发布到任何流行的linux机器上,容器来源于docker镜像,而镜像可以由用户自制或由运行中的容器提交来生成,镜像生成后可以推送到镜像仓库中进行保存,也可以从镜像仓库拉取到本地以运行容器。也就是说,docker镜像是一种对应用程序及其运行环境的标准化封装,这样如果需要更新算法,则需要更新整个底座服务镜像,无法单独发布算法,导致算法上线效率低,迭代慢。
58.而相比于上述现有技术中的方法,本技术实施例中是将目标算法定义为独立便携的算法应用元,无需安装,更加灵活。也就是说,本技术实施例中将目标算法打包成与算法仓系统松耦合的算法应用元,使得目标算法也具备了灵活的部署迭代优势,进而能够在所述算法仓系统中直接部署所述目标算法对应的算法应用元并启动运行,无需安装。
59.基于前述的实施例,本技术实施例再提供一种算法应用元的打包方法,所述方法应用于电子设备,图2为本技术实施例算法应用元的打包方法的实现流程示意图二,如图2所示,所述方法包括:
60.步骤s201、获取目标算法对应的配置信息和脚本信息;其中,所述配置信息用于为打包后的所述目标算法配置运行参数,所述脚本信息为所述目标算法对应的脚本程序;
61.本技术实施例中,打包后的所述目标算法,即对所述目标算法进行打包后得到的目标算法应用元。
62.这里,配置信息用于为目标算法应用元配置运行参数,所述运行参数可以是描述该目标算法应用元是如何组成的信息,也可以是描述该目标算法应用元是如何运行的信息。例如,所述配置信息可以包括该目标算法应用元的入口文件,所述入口文件说明了该目标算法应用元的运行入口。又如,所述配置信息可以包括该目标算法应用元的运行环境文件,所述运行环境文件描述了该目标算法应用元的运行软件环境、运行硬件环境(如所支持的显卡类型)、性能(如支持跑多少路)、兼容信息等。又如,所述配置信息可以包括模板文件,所述模板文件说明了使用该目标算法应用元来生成其他类似的算法应用元的相关信息。
63.这里,所述脚本信息为目标算法对应的脚本程序,所述脚本信息包括的文件中可以指定所述脚本程序的路径。通常情况下,所述脚本程序可以为lua脚本,脚本程序的作用就是执行该目标算法应用元中的算法。
64.步骤s202、将所述配置信息和所述脚本信息对应的内容进行打包,得到目标算法应用元;
65.本技术实施例中,所述配置信息和所述脚本信息为对所述目标算法进行打包的必选内容。也就是说,所述目标算法应用元中必须包括所述目标算法对应的配置信息和所述目标算法对应的脚本信息。
66.步骤s203、在特定的算法仓中部署所述目标算法应用元,使得在所述算法仓中启动所述目标算法应用元的情况下能够实现所述目标算法对应的功能;其中,所述算法仓为可以运行所述目标算法应用元的系统,且所述目标算法应用元与所述算法仓解耦。
67.基于前述的实施例,本技术实施例再提供一种算法应用元的打包方法,所述方法应用于电子设备,所述方法包括:
68.步骤s211、获取目标算法对应的配置信息、脚本信息和模型信息;其中,所述配置信息用于为打包后的所述目标算法配置运行参数,所述脚本信息为所述目标算法对应的脚本程序,所述模型信息为所述目标算法对应的算法模型;
69.本技术实施例中,所述模型信息为对所述目标算法进行打包的可选内容。也就是说,所述目标算法应用元中可以包括所述目标算法对应的模型信息,所述目标算法应用元中也可以不包括所述目标算法对应的模型信息,本领域技术人员可以根据实际使用需求选择是否将所述模型信息进行打包。
70.这里,模型信息就是一些算法的参数,例如神经网络算法对应的算法模型。本技术实施例中的模型信息可以按不同的硬件来组织,比如按cpu(central processing unit,中央处理器)/显卡来组织。如果存在很多种硬件,则每一硬件平台上都存在对应的模型信息。因此,所述模型信息包括的文件中可以指定不同硬件平台下对应的不同模型信息。本技术实施例中的模型信息还可以按不同的运行阶段来组织,例如所述目标算法为人脸比对算法,则所述目标算法所属业务的运行阶段包括四个阶段:第一特征提取阶段、人脸检测阶段、第二特征提取阶段、人脸比对阶段,对应地,第一阶段对应提取检测特征的算法模型,第二阶段对应检测人脸的算法模型,第三阶段对应提取比对特征的算法模型,第四阶段对应比对人脸的算法模型。因此,所述模型信息包括的文件中可以指定不同运行阶段下对应的不同模型信息。
71.步骤s212、将所述模型信息、所述配置信息和所述脚本信息对应的内容进行打包,得到目标算法应用元;
72.步骤s213、在特定的算法仓中部署所述目标算法应用元,使得在所述算法仓中启动所述目标算法应用元的情况下能够实现所述目标算法对应的功能;其中,所述算法仓为可以运行所述目标算法应用元的系统,且所述目标算法应用元与所述算法仓解耦。
73.基于前述的实施例,本技术实施例再提供一种算法应用元的打包方法,所述方法应用于电子设备,所述方法包括:
74.步骤s221、获取目标算法对应的任务类型;
75.这里,所述目标算法对应的任务类型可以是所述目标算法所属任务对应的功能的分类。例如,所述目标算法所属任务对应的功能是人脸比对告警,则所述目标算法对应的任务类型就是对象识别。
76.步骤s222、根据所述任务类型,确定所述目标算法对应的运行管道;
77.这里,所述目标算法对应的运行管道(即pipeline),指的是所述目标算法所属任务的运行阶段,即所述目标算法所属任务中包括的具有一定顺序的若干个过程,或者所述目标算法所属任务中包括的具有一定顺序的若干个执行步骤。因为算法也是一个流水线,因此算法也存在其对应的运行管道。例如,垃圾检测告警算法,先进行对象检测,然后再看检测出的对象的属性等,最后再根据对象的属性做相应的告警。
78.步骤s223、将所述运行管道确定为所述目标算法对应的配置信息;其中,所述配置信息用于为打包后的所述目标算法配置运行参数;
79.这里,将所述运行管道确定为所述目标算法对应的配置信息,指的是目标算法应用元中的配置信息包括所述目标算法所属任务对应的运行管道。
80.步骤s224、确定所述运行管道中每一运行阶段对应的算法模型;
81.本技术实施例中,由于算法也是一个流水线,算法也存在其对应的运行管道,所述运行管道中又包括多个运行阶段,因此每一运行阶段均对应各自的算法模型。例如,垃圾检测告警算法对应的运行管道包括三个运行阶段,第一运行阶段为对象检测阶段,对应的算法模型为检测算法模型;第二运行阶段为对象属性识别阶段,对应的算法模型为识别算法模型;第三运行阶段为对象告警阶段,对应的算法模型为告警算法模型。
82.步骤s225、将所述每一运行阶段对应的算法模型,确定为所述目标算法对应的模型信息;其中,所述模型信息为所述目标算法对应的算法模型;
83.这里,将所述每一运行阶段对应的算法模型,确定为所述目标算法对应的模型信息,指的是目标算法应用元中的模型信息包括所述目标算法的运行管道中每一运行阶段对应的算法模型。例如,上述垃圾检测告警算法对应的模型信息,就包括检测算法模型、识别算法模型和告警算法模型。
84.步骤s226、获取目标算法对应的脚本信息;其中,所述脚本信息为所述目标算法对应的脚本程序;
85.步骤s227、将所述模型信息、所述配置信息和所述脚本信息对应的内容进行打包,得到目标算法应用元;
86.步骤s228、在特定的算法仓中部署所述目标算法应用元,使得在所述算法仓中启动所述目标算法应用元的情况下能够实现所述目标算法对应的功能;其中,所述算法仓为可以运行所述目标算法应用元的系统,且所述目标算法应用元与所述算法仓解耦。
87.基于前述的实施例,本技术实施例再提供一种算法应用元的打包方法,所述方法应用于电子设备,所述方法包括:
88.步骤s231、确定打包后的目标算法的运行环境,以及打包后的所述目标算法在所述运行环境下的性能信息;
89.这里,所述运行环境可以包括软件和硬件两个方面。软件可以包括操作系统,比如windows操作系统或者linux操作系统等。硬件可以包括电子设备的配置,比如cpu、内存、显卡、硬盘等。
90.步骤s232、将所述运行环境和所述性能信息确定为所述目标算法对应的配置信息;其中,所述配置信息用于为打包后的所述目标算法配置运行参数;
91.举例来说,目标算法应用元在第一运行环境下支持运行n路的数据,目标算法应用元在第二运行环境下支持运行m路的数据,n和m可以相同也可以不同,则支持运行n路的数
据、支持运行m路的数据就是所述目标算法应用元在不同运行环境下的性能信息。
92.步骤s233、在存在多个所述运行环境的情况下,确定多个所述运行环境中每一所述运行环境对应的模型信息;
93.也就是说,目标算法对应的模型信息在不同的运行环境下是不同的,所述目标算法应用元中的模型信息包括多个运行环境下的模型信息。
94.步骤s234、将所述每一所述运行环境对应的模型信息,确定为所述目标算法对应的模型信息;其中,所述模型信息为所述目标算法对应的算法模型;
95.例如,型号为nv_p4的显卡对应的模型为trt21模型和trt51模型,型号为nv_t4的显卡对应的模型为trt22模型和trt52模型。
96.步骤s235、获取目标算法对应的脚本信息;其中,所述脚本信息为所述目标算法对应的脚本程序;
97.步骤s236、将所述模型信息、所述配置信息和所述脚本信息对应的内容进行打包,得到目标算法应用元;
98.这里,将目标算法对应的模型信息的内容、目标算法对应的配置信息的内容和目标算法对应的脚本信息的内容进行打包,得到目标算法应用元。
99.步骤s237、在特定的算法仓中部署所述目标算法应用元,使得在所述算法仓中启动所述目标算法应用元的情况下能够实现所述目标算法对应的功能;其中,所述算法仓为可以运行所述目标算法应用元的系统,且所述目标算法应用元与所述算法仓解耦。
100.基于前述的实施例,本技术实施例再提供一种算法应用元的打包方法,所述方法应用于电子设备,所述方法包括:
101.步骤s241、获取目标算法对应的任务类型;
102.步骤s242、根据所述任务类型,确定所述目标算法对应的运行管道;
103.步骤s243、确定打包后的所述目标算法的运行环境,以及打包后的所述目标算法在所述运行环境下的性能信息;
104.步骤s244、在将打包后的所述目标算法作为其他算法应用元的模板的情况下,获取所述运行管道、所述运行环境和所述性能信息对应的模板信息;
105.这里,将打包后的所述目标算法作为其他算法应用元的模板,指的是用目标算法应用元来生成其他类似的算法应用元。
106.本技术实施例中,如果需要利用目标算法应用元来生成其他类似的算法应用元,则可以将所述目标算法的运行管道对应的模板信息,所述目标算法应用元的运行环境对应的模板信息和所述目标算法应用元的性能信息对应的模板信息,作为所述目标算法应用元的打包内容。
107.步骤s245、将所述运行管道、所述运行环境、所述性能信息和所述模板信息,确定为所述目标算法对应的配置信息;其中,所述配置信息用于为打包后的所述目标算法配置运行参数;
108.步骤s246、确定所述运行管道中每一运行阶段对应的算法模型;
109.步骤s247、在存在多个所述运行环境的情况下,确定多个所述运行环境中每一所述运行环境对应的模型信息;
110.步骤s248、将所述每一运行阶段对应的算法模型和所述每一所述运行环境对应的
模型信息,确定为所述目标算法对应的模型信息;其中,所述模型信息为所述目标算法对应的算法模型;
111.这里,不同运行阶段对应的算法模型和不同运行环境对应的模型信息,是从不同的角度去划分的,因此一算法模型在属于某一运行阶段的同时可能也属于某一运行环境。
112.步骤s249、获取目标算法对应的脚本信息;其中,所述脚本信息为所述目标算法对应的脚本程序;
113.步骤s250、将所述模型信息、所述配置信息和所述脚本信息对应的内容进行打包,得到目标算法应用元;
114.步骤s251、在特定的算法仓中部署所述目标算法应用元,使得在所述算法仓中启动所述目标算法应用元的情况下能够实现所述目标算法对应的功能;其中,所述算法仓为可以运行所述目标算法应用元的系统,且所述目标算法应用元与所述算法仓解耦。
115.基于前述的实施例,本技术实施例再提供一种算法应用元的打包方法,所述方法应用于电子设备,图3为本技术实施例算法应用元的打包方法的实现流程示意图三,如图3所示,所述方法包括:
116.步骤s301、获取目标算法对应的配置信息、脚本信息、模型信息和动态库信息;其中,所述配置信息用于为打包后的所述目标算法配置运行参数,所述脚本信息为所述目标算法对应的脚本程序,所述模型信息为所述目标算法对应的算法模型,所述动态库信息用于被所述脚本信息对应的代码调用以使打包后的所述目标算法适用于不同的平台;
117.这里,所述动态库信息可以为用户动态链接库,所述用户动态链接库中包含能被脚本信息中的脚本程序调用来完成某些工作的函数。
118.步骤s302、将所述模型信息、所述配置信息和所述脚本信息对应的内容进行打包,得到目标算法应用元;
119.步骤s303、在特定的算法仓中部署所述目标算法应用元,使得在所述算法仓中启动所述目标算法应用元的情况下能够实现所述目标算法对应的功能;其中,所述算法仓为可以运行所述目标算法应用元的系统,且所述目标算法应用元与所述算法仓解耦。
120.基于前述的实施例,本技术实施例再提供一种算法应用元的打包方法,所述方法应用于电子设备,所述方法包括:
121.步骤s311、获取目标算法对应的配置信息、脚本信息和动态库信息;其中,所述配置信息用于为打包后的所述目标算法配置运行参数,所述脚本信息为所述目标算法对应的脚本程序,所述动态库信息用于被所述脚本信息对应的代码调用以使打包后的所述目标算法适用于不同的平台;
122.步骤s312、将所述配置信息、所述脚本信息和所述动态库信息对应的内容进行打包,得到目标算法应用元;
123.步骤s313、在特定的算法仓中部署所述目标算法应用元,使得在所述算法仓中启动所述目标算法应用元的情况下能够实现所述目标算法对应的功能;其中,所述算法仓为可以运行所述目标算法应用元的系统,且所述目标算法应用元与所述算法仓解耦。
124.基于前述的实施例,本技术实施例再提供一种算法应用元的打包方法,所述方法应用于电子设备,所述方法包括:
125.步骤s321、获取目标算法对应的配置信息、脚本信息、用户文档和格式信息;其中,
所述配置信息用于为打包后的所述目标算法配置运行参数,所述脚本信息为所述目标算法对应的脚本程序,所述用户文档用于描述打包后的所述目标算法的使用信息,所述格式信息用于规范打包后的所述目标算法的输入输出数据的格式;
126.这里,所述用户文档可以包括目标算法应用元的图标,以及所述目标算法应用元的用户使用说明。所述格式信息用于规范目标算法应用元的输入数据的格式和输出数据的格式,即定义输入输出数据的格式,并校验输入输出数据的格式,符合规范则接收数据,是个规范同时也是个说明。
127.步骤s322、将所述配置信息、所述脚本信息、所述用户文档和所述格式信息对应的内容进行打包,得到目标算法应用元;
128.步骤s323、在特定的算法仓中部署所述目标算法应用元,使得在所述算法仓中启动所述目标算法应用元的情况下能够实现所述目标算法对应的功能;其中,所述算法仓为可以运行所述目标算法应用元的系统,且所述目标算法应用元与所述算法仓解耦。
129.本技术实施例中,模型信息、动态库信息、用户文档和格式信息均为将目标算法打包成目标算法应用元的可选内容,如此,能够灵活配置打包参数,根据实际需要选择不同的打包内容实现对所述目标算法的打包。
130.基于前述的实施例,本技术实施例再提供一种算法应用元的打包方法,所述方法应用于电子设备,图4为本技术实施例算法应用元的打包方法的实现流程示意图四,如图4所示,所述方法包括:
131.步骤s401、获取目标算法;
132.步骤s402、通过动态语言将所述目标算法对应的内容进行打包,得到目标算法应用元;
133.这里,因为所述目标算法应用元是用动态脚本语言做的,所以解压后可以直接使用,就是说在算法仓中部署所述目标算法应用元后就可以解压运行使用。在一些实施例中,算法仓系统可以是基于云原生的算法仓系统。
134.步骤s403、在特定的算法仓中部署所述目标算法应用元,使得在所述算法仓中启动所述目标算法应用元的情况下能够实现所述目标算法对应的功能;其中,所述算法仓为可以运行所述目标算法应用元的系统,所述目标算法应用元与所述算法仓解耦,所述目标算法应用元与所述算法仓所关联的任一镜像之间相互独立。
135.现有技术中,算法逻辑是打包到镜像中的不能分离,如果后续有算法方面的更新则需要更新整个镜像。而本技术实施例中,通过这种打包的方式就把算法逻辑和镜像分离了,不用通过将打包和环境一起执行一个镜像的形式去分发,本技术实施例中镜像和算法是相互独立的,算法可以运行在不同的镜像上面。也就是说,算法和镜像是分离的,因此可以先分发镜像,后面再更新算法,实现灵活的算法管理。
136.在一些实施例中,还提供算法应用元授权功能,例如分析视频流任务会限制其处理的最大路数,其中,最大路数可以通过购买确定。
137.基于前述的实施例,本技术实施例再提供一种算法应用元的打包方法,所述方法应用于电子设备,图5为本技术实施例算法应用元的打包方法的实现流程示意图五,如图5所示,所述方法包括:
138.步骤s501、获取目标算法;
139.步骤s502、将所述目标算法对应的内容进行打包,得到目标算法应用元;
140.步骤s503、在特定的算法仓中部署所述目标算法应用元,使得在所述算法仓中启动所述目标算法应用元的情况下能够实现所述目标算法对应的功能;其中,所述算法仓为可以运行所述目标算法应用元的系统,且所述目标算法应用元与所述算法仓解耦;
141.步骤s504、接收更新请求;其中,所述更新请求的内容为请求将所述目标算法应用元从第一版本更新为第二版本;
142.这里,所述第一版本可以为历史版本,所述第二版本可以为当前版本。
143.步骤s505、响应于所述更新请求,停止使用所述算法仓中第一版本的目标算法应用元;
144.步骤s506、在所述算法仓中部署所述第二版本的目标算法应用元。
145.举例来说,所述目标算法为垃圾检测算法,部署在算法仓中的垃圾检测算法应用元为2015版本,2015版本的垃圾检测算法应用元对于垃圾检测的精度和召回未出现报错情况。2016年开发人员为了解决上述问题对2015版本的垃圾检测算法进行了代码更新等操作,得到2016版本的垃圾检测算法,2016版本的垃圾检测算法对精度和召回都有所提升。进而,可以对2016版本的垃圾检测算法对应的内容进行打包得到2016版本的垃圾检测算法应用元,并停用2015版本的垃圾检测算法应用元,上传、启动2016版本的垃圾检测算法应用元。
146.本技术实施例中,通过上述步骤s501至步骤s506中的方法,能够将新版本的算法打包成算法应用元,然后部署至算法仓系统并启用来实现对算法的迭代更新,从而解决现有技术中更新系统中的算法需要更新整个镜像或者更新整个系统的问题。
147.基于前述的实施例,本技术实施例提供一种算法仓模式,在所述算法仓模式下,ai算法通过一些动态语言包装成与运行时系统解耦的算法应用元(即applet),这些算法应用元打包算法模型、业务逻辑脚本代码和配置,并提供开发者说明和示例供调用者阅读,然后在视觉开发等平台运行,以实现各种复杂的ai算法。
148.在一些实施例中,为了高效、便捷地在开放视觉平台管理这些算法应用元的存储和运行周期,本技术实施例还提供了一种基于云原生的、具备高可用的、易伸缩的ai算法应用元运行管理系统(即算法仓系统)及对应的算法应用元管理服务,所述算法应用元管理服务在所述算法仓系统中运行时实现一种通用的能够运行任何算法应用元的方式。
149.本技术实施例主要提供一种算法仓系统中算法应用元的打包方法,具体为基于配置信息、模型信息、脚本信息、动态库信息、用户文档和格式信息的内容,实现对人工智能算法的应用元的打包功能。
150.下面对上述打包功能的内容进行详细的说明:
151.(1)配置信息
152.本技术实施例中,所述配置信息是一个算法应用元的配置文件,例如,包括一个业务的运行管道(pipeline)等。
153.举例来说,所述配置文件可以包括如下几部分:算法应用元的入口文件、算法应用元的模板文件、算法应用元的运行环境和性能信息(如algoappspec定义的内容,与运行时无关,作为渲染默认值)等。
154.(2)模型信息
155.本技术实施例中,所述模型信息是算法对应的模型内容。例如,型号为nv_p4的显卡对应的模型为trt21模型和trt51模型,型号为nv_t4的显卡对应的模型为trt22模型和trt52模型。
156.这里,所述模型信息可以包括不同硬件下的模型信息以及不同运行时段下的模型信息。
157.(3)脚本信息
158.本技术实施例中,所述脚本信息是算法对应的脚本程序,不同的算法对应不同的实现代码。例如,算法对应的lua脚本。
159.(4)动态库信息
160.本技术实施例中,所述动态库信息的内容可以被上述脚本信息对应的代码调用,以使算法应用元适用不同的平台。所述动态库信息可为算法对应的动态链接库,例如,go标准库。并且,可以无需考虑软件版本,例如英伟达平台或华为昇腾平台。
161.(5)用户文档
162.本技术实施例中,所述用户文档记录了描述算法应用元的信息。例如,用户文档可以包括对算法应用元的描述文档,还可以包括算法应用元的图标。
163.(6)格式信息
164.本技术实施例中,可以由本领域技术人员根据实际使用情况进行设置。所述格式信息是定义算法应用元的输入输出格式,其定义了具体的字段格式和内容,用于对输入输出数据做校验。
165.在以往技术中算法上线效率低、迭代慢,上线运行新的算法需要更新整个底座服务镜像,无法单独发布算法。本技术实施例中提供的算法仓系统是基于云原生架构、通过扩展kuernetes自定义接口实现的,具有能够发挥云平台分布式、自动伸缩和运维部署友好的特点。同时,与以往与系统耦合的算法运行管理系统相比,本技术实施例中的算法仓系统将智能算法定义为独立便携的算法应用元,无需安装,更加灵活。并且,所述算法仓系统可以管理算法应用元的运行生命周期,管理基于kubernetes状态同步,维护简单的内部状态机、管理操作可以异步进行,在算法应用元打包时可以灵活选择和确认打包参数。
166.本技术实施例中,当用户需要上线一种新的智能视频和图像分析算法时,不需要更新整个服务的版本,只需要上传新发布的算法应用元,然后启动运行,启动后,业务层可以通过接口(即系统接口,该接口可以运行各种算法应用元)下发处理任务或者图片进行算法分析。如果后续需要更新迭代算法,则停止老版本的算法应用元,上传、启动新版本的算法应用元。例如,历史版本的垃圾检测算法对于垃圾检测的精度和召回未出现报错情况,新版本的垃圾检测算法对精度和召回都有提升后,停用老版本的垃圾检测算法对应的算法应用元,并上传新版本的垃圾检测算法对应的算法应用元。所述新版本的垃圾检测算法应用元可以为使用配置信息、模型信息、脚本、动态库、用户文档、规范格式的内容对新版本的垃圾检测算法进行打包后的内容。
167.通过上述的打包方法,可以达到如下技术效果:1)基于解耦系统,实现对单个算法应用元的单独打包;2)将智能视频分析算法定义成与系统松耦合的算法应用元,使得智能算法也具备了灵活的部署迭代优势,并且定义的算法应用元无需安装,灵活配置打包参数;3)对发布的算法应用元进行管理的系统可以管理算法应用元的运行生命周期,管理基于
kubernetes的状态同步,维护简单的内部状态机,并且管理操作可以异步进行。
168.基于前述的实施例,本技术实施例提供一种算法应用元的打包装置,该装置包括所包括的各单元、以及各单元所包括的各子单元和各模块、以及各模块所包括的各子模块和各部件,可以通过电子设备中的处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为cpu(central processing unit,中央处理器)、mpu(microprocessor unit,微处理器)、dsp(digital signal processing,数字信号处理器)或fpga(field programmable gate array,现场可编程门阵列)等。
169.图6为本技术实施例算法应用元的打包装置的组成结构示意图,如图6所示,所述装置600包括:
170.获取单元601,用于获取目标算法;
171.打包单元602,用于将所述目标算法对应的内容进行打包,得到目标算法应用元;
172.部署单元603,用于在特定的算法仓中部署所述目标算法应用元,使得在所述算法仓中启动所述目标算法应用元的情况下能够实现所述目标算法对应的功能;其中,所述算法仓为可以运行所述目标算法应用元的系统,且所述目标算法应用元与所述算法仓解耦。
173.在一些实施例中,所述获取单元601,包括:第一获取模块,用于获取目标算法对应的配置信息和脚本信息;其中,所述配置信息用于为所述目标算法应用元配置运行参数,所述脚本信息为所述目标算法对应的脚本程序;对应地,所述打包单元602,包括:第一打包模块,用于将所述配置信息和所述脚本信息对应的内容进行打包,得到目标算法应用元。
174.在一些实施例中,所述获取单元601,还包括:第二获取模块,用于获取目标算法对应的模型信息;其中,所述模型信息为所述目标算法对应的算法模型;对应地,所述打包单元602,包括:第二打包模块,用于将所述模型信息、所述配置信息和所述脚本信息对应的内容进行打包,得到目标算法应用元。
175.在一些实施例中,所述第一获取模块,包括:任务获取部件,用于获取目标算法对应的任务类型;管道确定部件,用于根据所述任务类型,确定所述目标算法对应的运行管道;第一配置确定部件,用于将所述运行管道确定为所述目标算法对应的配置信息;对应地,所述第二获取模块,包括:算法模型确定部件,用于确定所述运行管道中每一运行阶段对应的算法模型;第一模型确定部件,用于将所述每一运行阶段对应的算法模型,确定为所述目标算法对应的模型信息。
176.在一些实施例中,所述第一获取模块,还包括:规格确定部件,用于确定所述目标算法应用元的运行环境,以及所述目标算法应用元在所述运行环境下的性能信息;第二配置确定部件,用于将所述运行环境和所述性能信息确定为所述目标算法对应的配置信息;对应地,在存在多个所述运行环境的情况下,所述第二获取模块,还包括:环境模型确定部件,用于确定多个所述运行环境中每一所述运行环境对应的模型信息;第二模型确定部件,用于将所述每一所述运行环境对应的模型信息,确定为所述目标算法对应的模型信息。
177.在一些实施例中,在将所述目标算法应用元作为其他算法应用元的模板的情况下,所述第一获取模块,还包括:模板获取部件,用于获取所述运行管道、所述运行环境和所述性能信息对应的模板信息;第三配置确定部件,用于将所述模板信息确定为所述目标算法对应的配置信息。
178.在一些实施例中,所述获取单元601,还包括:第三获取模块,用于获取目标算法对
应的动态库信息;其中,所述动态库信息用于被所述脚本信息对应的代码调用以使所述目标算法应用元适用于不同的平台;对应地,所述打包单元602,包括:第三打包模块,用于将所述配置信息、所述脚本信息和所述动态库信息对应的内容进行打包,得到目标算法应用元。
179.在一些实施例中,所述获取单元601,还包括:第四获取模块,用于获取目标算法对应的用户文档和格式信息;其中,所述用户文档用于描述所述目标算法应用元的使用信息,所述格式信息用于规范所述目标算法应用元的输入输出数据的格式;对应地,所述打包单元602,包括:第四打包模块,用于将所述配置信息、所述脚本信息、所述用户文档和所述格式信息对应的内容进行打包,得到目标算法应用元。
180.在一些实施例中,所述打包单元602,包括:打包子单元,用于通过动态语言将所述目标算法对应的内容进行打包,得到目标算法应用元;其中,所述目标算法应用元与所述算法仓所关联的任一镜像之间相互独立。
181.在一些实施例中,所述装置还包括:请求接收单元,用于接收更新请求;其中,所述更新请求的内容为请求将所述目标算法应用元从第一版本更新为第二版本;请求响应单元,用于响应于所述更新请求,停止使用所述算法仓中第一版本的目标算法应用元;更新单元,用于在所述算法仓中部署所述第二版本的目标算法应用元。
182.以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本技术装置实施例中未披露的技术细节,请参照本技术方法实施例的描述而理解。
183.需要说明的是,本技术实施例中,如果以软件功能模块的形式实现上述的算法应用元的打包方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机、服务器等)执行本技术各个实施例所述方法的全部或部分。而前述的存储介质包括:u盘、移动硬盘、rom(read only memory,只读存储器)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本技术实施例不限制于任何特定的硬件和软件结合。
184.对应地,本技术实施例提供一种电子设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述实施例中提供的算法应用元的打包方法中的步骤。
185.对应地,本技术实施例提供一种可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述算法应用元的打包方法中的步骤。
186.对应地,本技术实施例提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该电子设备执行本技术实施例上述的算法应用元的打包方法。
187.这里需要指出的是:以上设备、存储介质、程序产品、程序实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本技术设备、存储介质、程序产品、程序实施例中未披露的技术细节,请参照本技术方法实施例的描述而理解。
188.需要说明的是,图7为本技术实施例电子设备的一种硬件实体示意图,如图7所示,该电子设备700的硬件实体包括:处理器701、通信接口702和存储器703,其中
189.处理器701通常控制电子设备700的总体操作。
190.通信接口702可以使电子设备700通过网络与其他服务器或电子设备或平台通信。
191.存储器703配置为存储由处理器701可执行的指令和应用,还可以缓存待处理器701以及电子设备700中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过flash(闪存)或ram(random access memory,随机访问存储器)实现;
192.其中,电子设备700中的各个硬件实体通过总线704耦合在一起。可理解,总线704用于实现这些硬件实体之间的连接通信。
193.在本技术所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
194.上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
195.另外,在本技术各实施例中的各功能单元可以全部集成在一个处理模块中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
196.本技术所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
197.本技术所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
198.本技术所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
199.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献