CN111290778B - Ai模型的包装方法、平台及电子设备 - Google Patents
Ai模型的包装方法、平台及电子设备 Download PDFInfo
- Publication number
- CN111290778B CN111290778B CN202010082086.2A CN202010082086A CN111290778B CN 111290778 B CN111290778 B CN 111290778B CN 202010082086 A CN202010082086 A CN 202010082086A CN 111290778 B CN111290778 B CN 111290778B
- Authority
- CN
- China
- Prior art keywords
- model
- packaging
- programming language
- packaged
- framework
- 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.)
- Active
Links
- 238000004806 packaging method and process Methods 0.000 title claims abstract description 98
- 238000000034 method Methods 0.000 title claims abstract description 68
- 238000012856 packing Methods 0.000 claims abstract description 35
- 230000008569 process Effects 0.000 claims abstract description 19
- 238000012545 processing Methods 0.000 claims description 19
- 238000013135 deep learning Methods 0.000 claims description 14
- 238000012549 training Methods 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 8
- 238000002372 labelling Methods 0.000 claims description 8
- 238000013473 artificial intelligence Methods 0.000 abstract description 292
- 238000004891 communication Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000012360 testing method Methods 0.000 description 5
- 230000001419 dependent effect Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 210000004709 eyebrow Anatomy 0.000 description 1
- 239000003292 glue Substances 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种AI模型的包装方法、平台及电子设备,涉及人工智能的技术领域。该AI模型的包装方法,包括:根据待包装的AI模型的编程语言,利用预设的打包接口对所述AI模型进行打包处理;响应来自用户的选取指令,从服务框架备选库中选取服务框架,并确定与所述AI模型相匹配的输入输出标准;将已打包处理的所述AI模型嵌入所述服务框架中。本发明提供的AI模型的包装方法、平台及电子设备降低了AI算法研究员的学习成本,提高了AI模型产品化的速度。
Description
技术领域
本发明涉及人工智能技术领域,尤其是涉及一种AI模型的包装方法、平台及电子设备。
背景技术
随着科技的快速发展,全球已经逐渐进入人工智能(ArtificialIntelligence,简称AI)时代。AI作为一种应用技术,如何将AI模型快速转化为产品,从而实现商业落地,这将是目前在人工智能领域所要解决的迫切问题。
AI算法研究员使用深度学习框架对待解决的问题进行建模,然后对模型进行调参、训练,最后构建出一个可以解决实际问题的AI模型。但是,AI算法研究员训练好的AI模型,一般没办法直接产品化,不能直接使用,一般采用以下两种方案实现AI模型产品化,然后对外提供服务:1、将AI模型在物理机上部署,对外提供网络访问接口;2、将AI模型打包,嵌入宿主项目工程中,供宿主项目本地调用。
AI算法研究员一般不具备AI模型产品化的工程技术背景,AI模型产品化的工作一般由AI工程师完成的。AI工程师可能不具备AI模型算法的背景知识,对AI模型不熟悉或者在产品化过程中没办法对AI模型内部机制进行优化,可能需要花费大量的时间与AI算法研究员进行沟通,两者之间的工作需要保持紧密的联系,这将会导致AI模型产品化的进度缓慢。
发明内容
本发明的目的在于提供一种AI模型的包装方法、平台及电子设备,以缓解AI模型产品化的进度缓慢的技术问题。
第一方面,本申请实施例提供了一种AI模型的包装方法,包括:
根据待包装的AI模型的编程语言,利用预设的打包接口对所述AI模型进行打包处理;
响应来自用户的选取指令,从服务框架备选库中选取服务框架,并确定与所述AI模型相匹配的输入输出标准;
将已打包处理的所述AI模型嵌入所述服务框架中。
在一个可能的实现方式中,所述将已打包处理的所述AI模型嵌入所述服务框架中的步骤,包括:
将已打包处理的所述AI模型与所述服务框架进行打包,生成Docker镜像;
将所述AI模型的路径参数保存至所述服务框架中,使所述服务框架通过所述路径参数调用所述AI模型。
在一个可能的实现方式中,在所述将已打包处理的所述AI模型嵌入所述服务框架中的步骤之后,还包括:
提供对外的访问接口,使客户通过所述访问接口调用所述AI模型。
在一个可能的实现方式中,所述根据待包装的AI模型的编程语言,利用预设的打包接口对所述AI模型进行打包处理的步骤,包括:
响应来自用户的选择指令,选择待包装的AI模型;
确定所述AI模型的编程语言;
利用与所述AI模型的编程语言对应的打包接口对所述AI模型进行打包处理。
在一个可能的实现方式中,当所述AI模型的编程语言为python语言时,所述利用与所述AI模型的编程语言对应的打包接口对所述AI模型进行打包处理的步骤,包括:
基于预设的python lib库,将所述AI模型打包进入所述python lib库。
在一个可能的实现方式中,当所述AI模型的编程语言为C++语言时,所述利用与所述AI模型的编程语言对应的打包接口对所述AI模型进行打包处理的步骤,包括:
基于预设的编译模块,将所述AI模型进行编译,生成动态链接库。
在一个可能的实现方式中,在所述根据待包装的AI模型的编程语言,利用预设的打包接口对所述AI模型进行打包处理的步骤之后,还包括:
响应来自用户的标注指令,对已打包处理的所述AI模型标注属性信息;
将所述AI模型的属性信息保存至管理模块。
在一个可能的实现方式中,在所述根据待包装的AI模型的编程语言,利用预设的打包接口对所述AI模型进行打包处理的步骤之前,还包括:
响应来自用户的初始化指令,提供深度学习框架;
响应来自用户的训练指令,将所述深度学习框架训练成为AI模型。
在一个可能的实现方式中,所述服务框架备选库中包括HTTP框架、RPC框架或AJAX框架。
第二方面,本申请实施例提供了一种AI模型的包装平台,包括:
打包模块,用于根据待包装的AI模型的编程语言,利用预设的打包接口对所述AI模型进行打包处理;
选取模块,用于响应来自用户的选取指令,从服务框架备选库中选取服务框架,并确定与所述AI模型相匹配的输入输出标准;
嵌入模块,用于将已打包处理的所述AI模型嵌入所述服务框架中。
第三方面,本申请实施例提供了一种电子设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述AI模型的包装方法的步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有机器可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行所述AI模型的包装方法。
本申请实施例提供的AI模型的包装方法中,首先针对AI模型的编程语言,利用相应的打包接口对所述AI模型进行打包处理;然后用户可以从服务框架备选库中选取服务框架,并确定与所述AI模型相匹配的输入输出标准,最后将已打包处理的AI模型嵌入所述服务框架中。因为本申请实施例中预先设置了服务框架备选库,所以AI算法研究员作为用户,能够方便的选择服务框架,并确定输入输出标准,不需要具备很多的工程技术知识,就可方便快捷的实现AI模型产品化,降低了AI算法研究员的学习成本,提高了AI模型产品化的速度。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的AI模型的包装方法的流程图;
图2为本发明实施例提供的AI模型的包装方法的另一流程图;
图3为本发明实施例提供的AI模型的包装方法中步骤S203的详细流程图;
图4为本发明实施例提供的AI模型的包装平台的示意图;
图5为本发明实施例提供的电子设备的示意图。
具体实施方式
下面将结合实施例对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请实施例中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括其他没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
如何将AI模型快速转化为产品,是人工智能领域所要解决的迫切问题。目前,对于AI模型的产品化,一般是通过以下操作流程:
AI算法研究员引入通用深度学习框架,在本地准备需要训练的数据,然后对初始模型进行训练、参数调整等,构建出一个可以解决实际问题的AI模型。AI算法研究员按照业务需求定义模型的输入和输出,完成简单的输入输出逻辑,再将包含AI模型的代码分享给AI工程师。然后AI工程师将代码嵌入自己的服务框架代码中,并将服务部署在物理机或者云上,对外提供服务。该服务的用户(AI模型的需求方)可以调用服务框架的对外服务接口,实现AI产品落地。
另外,有些AI模型被AI算法研究员训练完成后,可能没办法直接观察AI模型的效果,这可能需要AI工程师进行配置,将模型和现有的实际问题结合起来。以视觉类AI模型为例来说,AI算法研究员训练出人的眉眼表情等AI模型,交付给AI工程师。AI工程师将训练好的AI模型嵌入已经编写好的人脸unity工程框架中,在unity中对这些AI模型进行测试。如果发现效果不好,AI算法研究员可能需要调整参数或重新训练AI模型。AI算法研究员将AI模型重新训练好后,再交付给AI工程师。
以上过程需要经过多次重复,才能实现AI产品的落地。因此,一个AI算法研究员往往需要和一个AI工程师捆绑,而AI工程师手里可能有其他紧急的工作,就会延误AI算法研究员对模型训练的进度。
上述的操作流程,存在很多难点与不足,具体如下:
1、AI工程师对AI模型服务化的操作较为繁琐,需要AI工程师对AI模型熟悉,导入各种依赖包,然后对输入输出数据进行转码、编码操作,测试较为复杂。
2、AI模型在不同场景下,对外提供的服务方式不同,有的AI模型需要RPC接口,有的AI模型需要HTTP接口,这无疑增加了开发难度。并且,AI模型的逻辑可能需要适配不同的协议接口,这时又需AI算法研究员修改模型代码,接着,AI工程师对新的AI模型按照新的模型进行编码。以上步骤会经过多次重复操作,这无疑延误了项目进度。
3、需要训练的数据存储在本地物理机上,有单点丢失的风险,并且不易于管理维护,对某些模型,数据至关重要,并且很难获取。
4、每个AI算法研究员可能技术背景各不相同,编写的逻辑代码风格各异,AI工程师对AI模型进行服务化的时候,实施起来难度较大,沟通成本较高。
5、模型测试期间,迭代可能会很快,如果AI算法研究员的逻辑编码结构风格变化较大,原有AI工程师设计的服务框架将不再适用,从而又增加服务部署的成本,同时也耽搁了算法AI算法研究员模型测试的进度。
6、因为AI模型经常迭代,但迭代前的版本并不是无用模型,也可能适用于其他业务场景。因此,如果仅仅从代码拷贝或者代码管理仓库的方式对AI模型进行代码管理,这样对模型服务化的进度会很低效。
7、AI工程师对AI算法研究员的模型代码进行服务化后,需要将服务部署到物理机上,考虑到负载均衡,可能部署到多台机器上,那就会在多台机器上操作同样的步骤,过程繁琐,且出现操作错误的概率很大;并且在物理机上,资源无法隔离,可能不同服务之间会互相影响,有很大隐患。
为优化以上问题,本发明实施例提供了一种AI模型的包装方法,可应用于AI模型的包装平台。如图1所示,该方法包括以下步骤:
S101:根据待包装的AI模型的编程语言,利用预设的打包接口对AI模型进行打包处理。
本发明实施例的AI模型的包装平台,提供了多种预设的打包接口供AI算法研究员(用户)选择,例如C++、Python等。AI算法研究员选择好编程语言后,即可调用相应的打包接口,对AI模型进行打包处理。
S102:响应来自用户的选取指令,从服务框架备选库中选取服务框架,并确定与AI模型相匹配的输入输出标准。
该AI模型的包装平台,设置有服务框架备选库,其中提供了多种通用服务框架供AI算法研究员选择,如同步框架、异步框架、HTTP框架、RPC框架等。AI算法研究员可以从服务框架备选库中选取所需的服务框架,并自定义服务框架的输入输出标准,使之与AI模型相匹配。
S103:将已打包处理的AI模型嵌入服务框架中。
配置好服务框架的输入输出标准之后,AI算法研究员就可以将步骤S101中已打包处理的AI模型嵌入服务框架中,使AI模型能够对外服务,实现AI模型产品化。
本方面实施例提供的AI模型的包装方法中,首先针对AI模型的编程语言,利用相应的打包接口对所述AI模型进行打包处理;然后用户可以从服务框架备选库中选取服务框架,并确定与所述AI模型相匹配的输入输出标准,最后将已打包处理的AI模型嵌入所述服务框架中。因为本申请实施例中预先设置了服务框架备选库,所以AI算法研究员作为用户,能够方便的选择服务框架,并确定输入输出标准,不需要具备很多的工程技术知识,就可方便快捷的实现AI模型产品化,降低了AI算法研究员的学习成本,提高了AI模型产品化的速度。
本发明实施例还提供了该AI模型的包装方法的另一实施方式,可应用于AI模型的包装平台。如图2所示,该方法包括以下步骤:
S201:响应来自用户的初始化指令,提供深度学习框架。
本发明实施例的AI模型的包装平台,提供了多种主流的深度学习框架,例如TensorFlow、Caffe、Pytorch等。包装平台可接收来自AI算法研究员(用户)的初始化指令,并提供相应的深度学习平台。
这样AI算法研究员可在包装平台上构建独占的工作空间,将准备训练的数据导入包装平台,包装平台底层搭建分布式文件系统,AI算法研究员可选择数据的备份数,这份数据由该AI算法研究员独占,并且只有该AI算法研究员和其赋有权限的用户对这份数据可读可写,避免了数据丢失的风险。
S202:响应来自用户的训练指令,将深度学习框架训练成为AI模型。
AI算法研究员可在包装平台上输入各种训练指令,从而利用包装平台将深度学习框架训练成为所需的AI模型,解决了AI算法研究员寻找、内嵌深度学习框架的难点,帮助AI算法研究员快速训练出成型的AI模型。
具体示例如下:
AI算法研究员首先在包装平台提供的训练界面上设定网络结构、网络深度以及网络宽度等参数,构建基础的AI模型。然后AI算法研究员可在基础的AI模型上,设定AI模型的结构、深度、宽度的初始值,在工作空间内选择已导入的训练样本等训练数据,并不断调整参数。
经过以上训练过程即可完成AI模型的训练,AI算法研究员将训练好的AI模型进行存档,为后续的产品化提供基础。另外,AI算法研究员还可以在包装平台上设定输入和输出样式,对存档中的AI模型进行定制。
S203:根据待包装的AI模型的编程语言,利用预设的打包接口对AI模型进行打包处理。
本发明实施例的AI模型的包装平台,提供了多种预设的打包接口供AI算法研究员选择,例如C++、Python等。AI算法研究员选择好编程语言后,即可调用相应的打包接口,对AI模型进行打包处理。如图3所示,具体可包括以下步骤:
S2031:响应来自用户的选择指令,选择待包装的AI模型。
AI算法研究员通过在包装平台上输入选择指令,在独占的工作空间中选择需要自己已经构建的AI模型,作为待包装的AI模型。
S2032:确定AI模型的编程语言。
AI算法研究员还可以继续在包装平台上选择构建的编程语言,例如C++、Python等。
除了以上由AI算法研究员自行输入选择以外,也可以由包装平台自动识别待包装的AI模型的编程语言。
S2033:利用与AI模型的编程语言对应的打包接口对AI模型进行打包处理。
当AI模型的编程语言为python语言时,本步骤S2033具体包括:
基于预设的Python Lib库,将AI模型打包进入Python Lib库。Python具有强大的标准库,Python语言的核心只包含数字、字符串、列表、字典、文件等常见类型和函数,而由Python标准库提供了系统管理、网络通信、文本处理、数据库接口、图形系统、XML处理等额外的功能。Python标准库命名接口清晰,很容易学习和使用。
另外,Python社区提供了大量的第三方模块,使用方式与标准库类似,例如科学计算、Web开发、数据库接口、图形系统等领域。第三方模块可以使用Python或者C语言编写。借助于拥有基于标准库的大量工具、能够使用低级语言和可以作为其他库接口的C++语音,Python可用于其他语言与工具之间的胶水语言。
当AI模型的编程语言为C++语言时,本步骤S2033具体包括:
基于预设的编译模块,将AI模型进行编译,生成动态链接库。库提供一些可以给别的程序调用的内容,别的程序要调用它必须以某种方式指明它要调用。动态链接库可以理解为将源代码编译成目标代码后打成的库。该目标代码库可被其他进程在执行时动态调用。
C++语言是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计。C++不仅拥有计算机高效运行的实用性特征,同时提高了大规模程序的编程质量与程序设计语言的问题描述能力。
除C++、Python之外,包装平台也能对其他编程语言的AI模型进行打包处理,在此不再一一详细描述。因为目前的AI模型大部分都是采用Python或C++等语言编写的,所以利用包装平台提供的打包接口,AI算法研究员只需调用对应的打包接口就可以将训练好的AI模型进行打包处理。
在本实施例一个可能的实现方式中,在上述步骤S203之后,还包括以下步骤:
S204:响应来自用户的标注指令,对已打包处理的AI模型标注属性信息。
本发明实施例的包装平台基于AI模型不同的特性,提供了版本管理接口。基于AI模型的打包设计,AI算法研究员可以在包装平台上输入标注指令,对已打包处理的AI模型进行自定义版本号,还可对该版本进行注解注释等属性信息,方便AI算法研究员对AI模型的服务进行回溯。通过将AI算法研究员训练出来的AI模型在包装平台上按版本进行存储,不同版本对应不同的特性。这样既方便AI算法研究员对产品进行迭代,又可解决AI算法研究员管理AI模型的版本杂乱的难点。
S205:将AI模型的属性信息保存至管理模块。
AI模型的属性信息保存至包装平台的管理模块后,就可以基于AI模型的指定版本以及功能特性等属性信息,对AI模型按版本进行管理。这里的版本管理与代码管理有所不同,AI模型版本控制,针对的主体是独立的打包处理后的AI模型本身,并且可以以Docker镜像的形式作为版本管理的基础。
Docker的镜像概念类似于虚拟机里的镜像,是一个只读的模板,一个独立的文件系统,包括运行容器所需的数据,可以用来创建新的容器。例如:一个镜像可以包含一个完整的ubuntu操作系统环境,里面仅安装了Mysql或用户需要的其它应用程序。也就是说,镜像是只读的,也可以理解为静态文件。
Docker的镜像实际上由一层一层的文件系统组成,这种层级的文件系统被称为UnionFS。镜像可以基于Dockerfile构建,Dockerfile是一个描述文件,里面包含若干条命令,每条命令都会对基础文件系统创建新的层次结构。
S206:响应来自用户的选取指令,从服务框架备选库中选取服务框架,并确定与AI模型相匹配的输入输出标准。
在一个可能的实现方式中,服务框架备选库中包括同步框架、异步框架、HTTP框架、RPC框架或AJAX框架。AI算法研究员可以根据实际应用场景,从服务框架备选库中选取所需的服务框架,并自定义服务框架的输入输出标准,使之与AI模型相匹配。
S207:将已打包处理的AI模型嵌入服务框架中。
AI算法研究员在包装平台的独占的工作空间选择需要产品化并已经打包处理后的AI模型,然后AI算法研究员在包装平台上选择所需的服务框架,这些服务框架是预先由AI工程师编写并内嵌至平台中的。AI算法研究员点击构建按钮,包装平台将打包处理后的AI模型嵌入服务框架中。
具体的,AI算法研究员利益包装平台将已打包处理的AI模型与服务框架进行打包,生成Docker镜像,也就是将服务框架和AI模型打包为一个Docker镜像。
将AI模型的路径参数保存至服务框架中,使服务框架通过路径参数调用AI模型。其中,路径参数可不可存储路径或者依赖信息,将AI模型的存储路径或者依赖信息作为路径参数保存至服务框架中后,服务框架内部可以通过路径参数调用该AI模型,然后进行对外服务。最后,按照AI模型打包处理后的输入输出标准,构建对外服务。
采用本发明实施例提供的AI模型的包装方法,AI算法研究员能够方便的选择服务框架,并确定输入输出标准,不需要具备很多的工程技术知识,就可方便快捷的实现AI模型产品化,降低了AI算法研究员的学习成本,提高了AI模型产品化的速度。
同时,AI工程师也不需要对AI模型熟悉,省去了AI算法研究员与AI工程师之间的反复调试,简化了AI模型产品化的测试过程。
在一个可能的实现方式中,该方法还包括以下步骤:
S208:提供对外的访问接口,使客户通过访问接口调用AI模型。
AI模型完成产品化后,包装平台对外提供AI模型服务的访问接口,客户(AI模型的使用方)可通过该访问接口实现AI模型功能的调用,从而方便快捷的实现AI模型的服务应用。其中,访问接口提供加密和非加密网络协议,同时也在AI模型内部支持同步机制或异步机制。将AI模型的服务在包装平台上进行统一管理,同时对AI模型的服务进行监控,当已服务化的AI模型在平台上出现任何异常,例如内存使用剧增等,就可根据配置的资源参数对服务进行自诊自愈,使AI模型的服务具有了自愈、稳定等特性。
本发明实施例还提供了一种AI模型的包装平台,用于对AI模型的训练、打包、包装、管理等。如图4所示,该AI模型的包装平台包括:
打包模块402,用于根据待包装的AI模型的编程语言,利用预设的打包接口对AI模型进行打包处理。
选取模块403,用于响应来自用户的选取指令,从服务框架备选库中选取服务框架,并确定与AI模型相匹配的输入输出标准。
嵌入模块404,用于将已打包处理的AI模型嵌入服务框架中。
在一种实施方式中,嵌入模块404具体用于:
将已打包处理的AI模型与服务框架进行打包,生成Docker镜像;将AI模型的路径参数保存至服务框架中,使服务框架通过路径参数调用AI模型。
在一种实施方式中,该AI模型的包装平台还包括:
接口模块406,用于提供对外的访问接口,使客户通过访问接口调用AI模型。
在一种实施方式中,打包模块402具体用于:
响应来自用户的选择指令,选择待包装的AI模型;确定AI模型的编程语言;利用与AI模型的编程语言对应的打包接口对AI模型进行打包处理。
当AI模型的编程语言为python语言时,打包模块402基于预设的python lib库,将AI模型打包进入python lib库。
当AI模型的编程语言为C++语言时,打包模块402基于预设的编译模块,将AI模型进行编译,生成动态链接库。
在一种实施方式中,该AI模型的包装平台还包括:
管理模块405,用于响应来自用户的标注指令,对已打包处理的AI模型标注属性信息;将AI模型的属性信息进行保存。
在一种实施方式中,该AI模型的包装平台还包括:
训练模块401,用于响应来自用户的初始化指令,提供深度学习框架;响应来自用户的训练指令,将深度学习框架训练成为AI模型。
本发明实施例提供的AI模型的包装平台,与上述本发明实施例提供的AI模型的包装方法具有相同或相对应的技术特征,因此也能解决相同的技术问题,达到相同的技术效果。
如图5所示,本发明实施例还提供一种电子设备,电子终端500包括存储器501、处理器502,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述实施例提供的AI模型的包装方法的步骤。
参见图5,电子设备还包括:总线503和通信接口504,处理器502、通信接口504和存储器501通过总线503连接;处理器502用于执行存储器501中存储的可执行模块,例如计算机程序。
其中,存储器501可能包含高速随机存取存储器(Random Access Memory,简称RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口504(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
总线503可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器501用于存储程序,所述处理器502在接收到执行指令后,执行所述程序,前述本申请任一实施例揭示的过程定义的装置所执行的方法可以应用于处理器502中,或者由处理器502实现。
处理器502可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器502中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器502可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DigitalSignal Processing,简称DSP)、专用集成电路(Application Specific IntegratedCircuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器501,处理器502读取存储器501中的信息,结合其硬件完成上述方法的步骤。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质存储有机器可运行指令,计算机可运行指令在被处理器调用和运行时,计算机可运行指令促使处理器运行上述AI模型的包装方法。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本发明所提供的几个实施例中,应该理解到,所公开的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (11)
1.一种AI模型的包装方法,其特征在于,包括:
根据待包装的AI模型的编程语言,利用预设的打包接口对所述AI模型进行打包处理;
响应来自用户的选取指令,从服务框架备选库中选取服务框架,并确定与所述AI模型相匹配的输入输出标准;
将已打包处理的所述AI模型嵌入所述服务框架中;
所述根据待包装的AI模型的编程语言,利用预设的打包接口对所述AI模型进行打包处理的步骤,包括:
响应来自用户的选择指令,选择待包装的AI模型;
确定所述AI模型的编程语言;
利用与所述AI模型的编程语言对应的打包接口对所述AI模型进行打包处理。
2.根据权利要求1所述的方法,其特征在于,所述将已打包处理的所述AI模型嵌入所述服务框架中的步骤,包括:
将已打包处理的所述AI模型与所述服务框架进行打包,生成Docker镜像;
将所述AI模型的路径参数保存至所述服务框架中,使所述服务框架通过所述路径参数调用所述AI模型。
3.根据权利要求1所述的方法,其特征在于,在所述将已打包处理的所述AI模型嵌入所述服务框架中的步骤之后,还包括:
提供对外的访问接口,使客户通过所述访问接口调用所述AI模型。
4.根据权利要求1所述的方法,其特征在于,当所述AI模型的编程语言为python语言时,所述利用与所述AI模型的编程语言对应的打包接口对所述AI模型进行打包处理的步骤,包括:
基于预设的python lib库,将所述AI模型打包进入所述python lib库。
5.根据权利要求1所述的方法,其特征在于,当所述AI模型的编程语言为C++语言时,所述利用与所述AI模型的编程语言对应的打包接口对所述AI模型进行打包处理的步骤,包括:
基于预设的编译模块,将所述AI模型进行编译,生成动态链接库。
6.根据权利要求1所述的方法,其特征在于,在所述根据待包装的AI模型的编程语言,利用预设的打包接口对所述AI模型进行打包处理的步骤之后,还包括:
响应来自用户的标注指令,对已打包处理的所述AI模型标注属性信息;
将所述AI模型的属性信息保存至管理模块。
7.根据权利要求1所述的方法,其特征在于,在所述根据待包装的AI模型的编程语言,利用预设的打包接口对所述AI模型进行打包处理的步骤之前,还包括:
响应来自用户的初始化指令,提供深度学习框架;
响应来自用户的训练指令,将所述深度学习框架训练成为AI模型。
8.根据权利要求1所述的方法,其特征在于,所述服务框架备选库中包括HTTP框架、RPC框架或AJAX框架。
9.一种AI模型的包装平台,其特征在于,包括:
打包模块,用于根据待包装的AI模型的编程语言,利用预设的打包接口对所述AI模型进行打包处理;
选取模块,用于响应来自用户的选取指令,从服务框架备选库中选取服务框架,并确定与所述AI模型相匹配的输入输出标准;
嵌入模块,用于将已打包处理的所述AI模型嵌入所述服务框架中;
所述打包模块还用于:
响应来自用户的选择指令,选择待包装的AI模型;
确定所述AI模型的编程语言;
利用与所述AI模型的编程语言对应的打包接口对所述AI模型进行打包处理。
10.一种电子设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1至8任一项所述的方法的步骤。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有机器可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行所述权利要求1至8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010082086.2A CN111290778B (zh) | 2020-02-06 | 2020-02-06 | Ai模型的包装方法、平台及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010082086.2A CN111290778B (zh) | 2020-02-06 | 2020-02-06 | Ai模型的包装方法、平台及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111290778A CN111290778A (zh) | 2020-06-16 |
CN111290778B true CN111290778B (zh) | 2024-03-01 |
Family
ID=71024448
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010082086.2A Active CN111290778B (zh) | 2020-02-06 | 2020-02-06 | Ai模型的包装方法、平台及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111290778B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111897664A (zh) * | 2020-08-03 | 2020-11-06 | 中关村科学城城市大脑股份有限公司 | 应用于城市大脑的ai算法和ai模型的调配系统及方法 |
KR102496687B1 (ko) * | 2020-09-23 | 2023-02-07 | 한국전자통신연구원 | 도커화된 인공지능 라이브러리에 대한 프록시 생성 장치 및 방법, 도커화된 인공지능 라이브러리 기반 ros 분산 시스템 |
CN112463301B (zh) * | 2020-11-30 | 2022-02-11 | 常州微亿智造科技有限公司 | 基于容器的模型训练测试调优和部署方法和装置 |
CN113010181B (zh) | 2021-03-24 | 2022-05-27 | 北京百度网讯科技有限公司 | 一种深度学习框架之中算子的部署方法、装置及电子设备 |
CN113448545B (zh) * | 2021-06-23 | 2023-08-08 | 北京百度网讯科技有限公司 | 机器学习模型服务化的方法、设备、存储介质及程序产品 |
CN116367187A (zh) * | 2021-12-28 | 2023-06-30 | 维沃移动通信有限公司 | Ai模型传输方法、装置、设备及存储介质 |
CN115525298A (zh) * | 2022-11-28 | 2022-12-27 | 长沙海信智能系统研究院有限公司 | Ai场景算法接入部署方法、装置及电子设备 |
CN117539449B (zh) * | 2024-01-09 | 2024-03-29 | 清华大学 | 一种高效灵活的协作学习框架及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109669701A (zh) * | 2018-12-17 | 2019-04-23 | 深圳魔数智擎科技有限公司 | 对机器学习模型进行编译处理的方法、编译器及服务器 |
CN110245003A (zh) * | 2019-06-06 | 2019-09-17 | 中信银行股份有限公司 | 一种机器学习单机算法编排系统及方法 |
CN110413294A (zh) * | 2019-08-06 | 2019-11-05 | 中国工商银行股份有限公司 | 服务发布系统、方法、装置和设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7076772B2 (en) * | 2003-02-26 | 2006-07-11 | Bea Systems, Inc. | System and method for multi-language extensible compiler framework |
US9563419B2 (en) * | 2014-02-20 | 2017-02-07 | International Business Machines Corporation | Managing deployment of application pattern based applications on runtime platforms |
-
2020
- 2020-02-06 CN CN202010082086.2A patent/CN111290778B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109669701A (zh) * | 2018-12-17 | 2019-04-23 | 深圳魔数智擎科技有限公司 | 对机器学习模型进行编译处理的方法、编译器及服务器 |
CN110245003A (zh) * | 2019-06-06 | 2019-09-17 | 中信银行股份有限公司 | 一种机器学习单机算法编排系统及方法 |
CN110413294A (zh) * | 2019-08-06 | 2019-11-05 | 中国工商银行股份有限公司 | 服务发布系统、方法、装置和设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111290778A (zh) | 2020-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111290778B (zh) | Ai模型的包装方法、平台及电子设备 | |
CN110825362B (zh) | 低代码应用软件开发系统及方法 | |
CN108279932B (zh) | 一种移动终端动态配置用户界面方法和装置 | |
CN109976761A (zh) | 软件开发工具包的生成方法、装置及终端设备 | |
EP3047372B1 (en) | Computer-aided development of native mobile application code | |
US8250523B2 (en) | Source code wrapper generation | |
EP3931684B1 (en) | Workflow engine tool | |
US20180189035A1 (en) | Application development tool using graphic objects to bind object sets of different distinct divisions of a design pattern | |
CN110580174B (zh) | 应用组件生成方法、服务器及终端 | |
CN102073536A (zh) | 利用云平台实现模板编辑入库及批量生成虚拟机的方法 | |
US20200097553A1 (en) | Cognitive translation service integrated with context-sensitive derivations for determining program-integrated information relationships | |
CN104407863A (zh) | 抽象控件模型编程装置和方法 | |
US20150143267A1 (en) | SYSTEM AND METHOD FOR DEVELOPING A RULE-BASED EVENT-DRIVEN MULTI-LAYERED FRONTEND FOR BUSINESS SERVICES AND RENDERING THE GUIs ON MULTIPLE CLIENT DEVICES | |
CN108170435A (zh) | 一种源代码转换方法、装置及设备 | |
US10936810B2 (en) | Token embedding based on target-context pairs | |
CN110069312A (zh) | 一种ui组件配置和生成ui组件库的方法及装置 | |
CN111399840A (zh) | 一种模块开发方法及装置 | |
CN113448678A (zh) | 应用信息生成方法、部署方法及装置、系统、存储介质 | |
CN110097464B (zh) | 智能合约的生成方法、装置、电子设备与存储介质 | |
CN109710244B (zh) | 自定义动画配置方法及装置、设备及存储介质 | |
WO2024066825A1 (zh) | 页面项目开发方法、装置、设备、介质及产品 | |
CN112148263A (zh) | 前端标准框架及其生成方法、装置、设备及存储介质 | |
US11640281B2 (en) | Tool for introspection in object-oriented source code | |
CN112181644B (zh) | 用于机器学习组件Jupyter跨域的方法、系统及装置 | |
CN111651160B (zh) | 插件构建、网页设计的方法和装置 |
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 |