本发明涉及计算机数据处理系统和方法,具体地说是一种模型部署方法、系统、芯片、电子设备及介质。
背景技术:
目前现有的人工智能(ai)研发系统的实质是提供软件的数据库,使用上需要用户有一定编程背景;若要获得好的计算模型,则需要用户自己进行参数调整和选择,因而还需有相关深度学习优化知识。同时,现有的人工智能(ai)研发系统一般只能支持单一用户单一任务,而在多用户情况下只能手动分配各种资源,计算资源利用率差。
而在人工智能(ai)研发系统中,现有的训练工具一般只支持将在数据输入后,单纯地通过预设的模型进行训练,在面对新任务的时候往往效果不佳。而若需对模型进行优化,则也需要有相关模型优化的知识,并且手动设计并编程实现优化——使得其用户范围较窄。而现有的其他自动模型优化算法,一般通过rnn等方法自动设计网络模型,这种方法过程较慢、可并行性差,同时必须要大量数据;对于数据量中等、计算资源较小的情形缺并不适用。
此外,应用系统部署和运行在云平台上来对外提供服务。目前在模型部署环节,针对部署的环境和目标格式,需要手动编写转换代码进行转换;并且不能验证是否失败,需要手动编写测试脚本测试,十分繁琐,切要耗费大量时间。
技术实现要素:
本发明针对上述人工智能研发系统的不足,旨在提供一种适用于模型优化部署系统的模型部署方法、系统、电子设备及介质,以解决现有问题。
为了达到上述目的,本发明提供一种模型优化部署系统的模型部署方法,包括:
s1,获得欲转换的网络模型的训练结果;
s2,对于训练结果进行拆分;
s3,在数据库中查找拆分后的结果,并转换代码;
s4,将转换完成的模型代码重新连接,得部署模型。
在一些实施例中,还包括s5,以测试数据对欲转换的网络模型和欲部署硬件环境下的部署模型提取特征层,依次对应计算两两之间的给定向量距离;若其差小于预设的阈值,则认为结果对齐,并输出可部署的模型作为转换结果。
在一些实施例中,s2中,所述拆分按照训练结果的网络结构进行。
在一些实施例中,所述网络结构为计算层或子结构。
在一些实施例中,s2中,若拆分时识别发现有数据库中预设的结构,则保存该预设的结构;部署时则根据所保存的预设的结构选择转换方法。
在一些实施例中,s3中,所述查找以查表方式进行,以获得代码。
在一些实施例中,s3中,所述数据库为硬件环境-计算框架的数据库。
本发明还提供一种模型部署系统,包括:
数据预处理模块,接受回流数据,然后输出经过预处理的数据集;
模型训练模块,对数据集执行模型训练方法,得到最优配置模型;
模型部署模块,根据待部署的硬件环境对最优配置模型进行适配并转换,最终跨平台部署。
在一些实施例中,还包括数据标注模块,对辅助进行数据标注。
在一些实施例中,还包括存储模块,执行整个系统数据的统一存储。
此外,本发明还基于上述模型部署系统执行一种模型训练方法,包括:
步骤一,在预设的基础神经网络上训练一组模型,选出在验证集上性能最好的模型t0;
步骤二,在t0上进行优化然后获得若干备选实验配置,对所述若干备选实验配置训练并获得其中性能最优的模型t1’;
步骤三,对t1’重新训练,确保重新训练的性能结果的平均值大于t0的性能;即得到最优的模型配置。
在一些实施例中,步骤二中,所述对t0的优化方法为调整参数。
在一些实施例中,所述调整参数包括以下之一或组合:模型宽度,学习速率,优化策略,是否使用数据增强,数据增强的参数,网络单位模块。
在一些实施例中,步骤三s3对t1’的重新训练中,如果重新训练的性能结果大于t0的性能结果,则替代以之t0作为新的备选实验配置,即迭代优化。
在一些实施例中,所述迭代优化的过程反复循环进行,直至性能最优时停止。
在一些实施例中,迭代优化的次数为两轮。
本发明还提供一种芯片,包括处理器,用于从存储器中调用并运行计算机程序,使得安装有所述芯片的设备执行上述任一项所述的模型部署方法。
本发明还提供一种电子设备,包括处理器、以及用于存储处理器的可执行指令的存储器,所述处理器运行时执行上述任一所述的模型部署方法。
本发明还提供一种计算机可读介质,其上存储有计算机程序指令,所述计算机程序指令被处理执行时,实现上述任一所述的模型部署方法。
和现有技术相比,本发明在得到指定任务类型和模型的输入输出形式后,输入训练数据和验证数据,可自动训练并在训练时调整模型参数,同时通过调优算法对模型的超参数以及结构进行调整,最终迭代并选取到最优的模型。
本发明提出了一种能让没有编程背景和深度学习算法背景的人员在有数据的情况下进行模型优化部署的系统,该系统能够自动进行数据的预处理、ai模型的自动训练调优、ai模型的评估验证和ai模型的自动部署、并且通过计算资源容器化模块,存储资源模块,支持多用户多任务的模型研发。
本发明基于上述模型优化部署系统的一种能将训练出来的模型自动转换为caffe或tfpb或其他常用模型格式,并且自动验证是否能在相应希望部署的硬件系统上部署的方法,并能够自动做一些优化。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的流程示意图;
图2为模型优化部署系统的构架设计示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图对本发明实施例中的技术方案进行清楚、完整地描述;显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图2,本实施例基于模型部署系统,系统的构架设计如图2所示,该系统内主要包含训练流程部分和资源调度部分。训练流程部分,包括对辅助进行数据标注的数据标注模块,数据标注后对数据进行预处理、清洗和切分的数据预处理模块,对处理好的数据进行自动训练和参数调优的模型训练模块。
调度部分,在反复的数据迭代和模型调优后,获得的模型可以通过模型部署模块,则根据希望部署的硬件环境自动适配并转换。最后完成整个训练流程的高效简单进行。
其中:数据预处理模块,接受回流数据,输出经过预处理的数据集;
模型训练模块,对处理好的数据集进行自动训练和参数调优,得到最优配置模型;
模型部署模块,根据待部署的硬件的环境对最优配置模型自动适配并转换,最终部署于所述硬件。
还包括数据标注模块,对辅助进行数据标注。为了支持多用户多任务,优选通过容器化的共享模块进行计算资源的统一调度,以及储存模块进行数据的统一存储,从而高效的利用计算资源。
上述模型优化部署系统实现了算法配置的自动优化,可以根据计划布置环境,选择更优的技术模式;同时也可以根据目标场景避免使用不可用的结构,并列为“黑名单”。
基于上述系统,在其中的模型训练模块中,模型训练为:
步骤一,在预设的基础神经网络上训练一组模型,选出在验证集上性能最好的模型t0;
步骤二,在t0上进行优化然后获得若干备选实验配置,对所述若干备选实验配置训练并获得其中性能最优的模型t1’;
作为优选,所述优化的方法为依次尝试调整各种预设的参数。而所述调整参数包括以下之一或组合:模型宽度、学习速率、优化策略、是否使用数据增强、数据增强的参数、网络单位模块选择。
步骤三,对t1’重新训练,确保其性能结果的平均值大于t0的性能结果,此时最优的模型配置则为最后优化的结果。尤其对t1’的重新训练中,如果大于t0的性能结果,则替代t0作为新的实验配置,并继续上述过程迭代优化;直到模型配置的性能无法继续稳定提升时,则停止迭代优化。
作为优选,上述迭代优化的次数一般为两轮。
在优化时,根据事先设定的将部署的硬件环境,对尝试的优化方向进行限制,如限制运行速度不能低于某些下限,在网络模块选择时使用特定硬件平台上所支持的或优化较好的等。
参见图1,在对网络模型进行多次迭代优化,得到最后优化的结果之后,执行模型部署方法,包括:
s1,获得欲转换的网络模型的训练结果,即前述步骤三中停止迭代优化后所得结果。
s2,对于训练结果进行拆分;一般按计算层进行拆分。如果拆分时识别发现有库中预设的结构,则保存此结构。
s3,在数据库中查找拆分后的结果,并转换代码;该数据库为硬件环境-计算框架的数据库,包括可以部署的服务器类型,以及计算框架的类型。其中服务器包括但不限于图形处理器(gpu)、中央处理器(cpu)、arm处理器、ai芯片和手机等;计算框架包括但不限于tf、caffe和torch等。应尽可能地包括尽可能多的类型,以满足不同需求。
其中,caffe是一个兼具表达性、速度和思维模块化的深度学习框架;支持多种类型的深度学习架构,面向图像分类和图像分割,还支持cnn、rcnn、lstm和全连接神经网络设计。
tf,即tensorflow,是一个基于数据流编程的符号数学系统,被广泛应用于各类机器学习算法的编程实现;tf框架拥有多层级结构,可部署于各类服务器、pc终端和网页并支持gpu和tpu高性能数值计算。
而torch是一个有大量机器学习算法支持的科学计算框架,torch的特点在于特别灵活,采用了编程语言lua。
接着将拆分的计算层或者子结构,在数据库中查找(查表方式)按预设的代码进行转换。数据库中有的子结构,根据就计划转换的格式或者希望部署的平台,选择最优的转换方法。
s4,将转换完成的模型代码重新连接,得部署模型。
由于实验环境和实际部署环境差别较大,可能是不同的硬件平台、不同的计算框架。因此在整体模型训练过程中最后一环,需要将训练好的网络以及其对应的权重转换成目标环境的模型格式以用于最后部署。这一步骤传统上需要对于网络结构和来源/目标模型格式,进行针对性的编写转换代码。作为端到端ai系统的一部分,此环境应当自动进行。
最后使用预设的测试数据(图片、视频等),分别对实验环境下的原模型和欲部署环境下的部署模型进行运算,分别提取其中部分特征层,依次对应计算两两之间的给定向量距离。若其差小于某可接受阈值,则认为结果对齐,转换成功,并输出模型作为最后的转换结果。
上述方法能将训练出来的模型,自动转换为caffe或tfpb或其他常用模型格式,并且自动验证是否能在相应希望部署的硬件平台上部署,并自动做一些优化。
参见图2,本发明还提供一种模型优化部署系统,包括:数据预处理模块,接受回流数据,然后输出经过预处理的数据集。
模型训练模块,对数据集执行训练方法,得到最优配置模型;具体地,现在预设的基础神经网络上训练一组模型,选出在验证集上性能最好的模型t0;再在t0上进行优化然后获得若干备选实验配置,对所述若干备选实验配置训练并获得其中性能最优的模型t1’,而对t0的优化方法调整参数,包括以下之一或组合:模型宽度,学习速率,优化策略,是否使用数据增强,数据增强的参数,网络单位模块;
最后对t1’重新训练,确保重新训练的性能结果的平均值大于t0的性能;即得到最优的模型配置。对t1’的重新训练中,如果重新训练的性能结果大于t0的性能结果,则替代以之t0作为新的备选实验配置,即迭代优化。反复循环进行,直至性能最优时停止。且一般为两次。
模型部署模块,根据待部署的硬件的环境对最优配置模型进行适配并转换,最终部署于所述硬件。具体地,先获得欲转换的网络模型的训练结果;再对于训练结果按照训练结果的网络结构等网络结构进行拆分;然后在硬件环境-计算框架的数据库中通过查表查找拆分后的结果,并转换代码;最后将转换完成的模型代码重新连接,得部署模型。以及,以测试数据对欲转换的网络模型和欲部署硬件环境下的部署模型提取特征层,依次对应计算两两之间的给定向量距离;若其差小于预设阈值,则认为结果对齐,并输出可部署的模型作为转换结果。
此外,本发明还提供一种电子设备,包括:至少一个处理器;与至少一个处理器耦合的存储器,存储器存储有可执行指令,其中,可执行指令在被至少一个处理器执行时使得实现本发明上述的方法。
例如,存储器可以包括随机存储器、闪存、只读存储器、可编程只读存储器、非易失性存储器或寄存器等。处理器可以是中央处理器(centralprocessingunit,cpu)等。或者是图像处理器(graphicprocessingunit,gpu)存储器可以存储可执行指令。处理器可以执行在存储器中存储的可执行指令,从而实现本文描述的各个过程。
可以理解,本实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是rom(read-onlymemory,只读存储器)、prom(programmablerom,可编程只读存储器)、eprom(erasableprom,可擦除可编程只读存储器)、eeprom(electricallyeprom,电可擦除可编程只读存储器)或闪存。易失性存储器可以是ram(randomaccessmemory,随机存取存储器),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如sram(staticram,静态随机存取存储器)、dram(dynamicram,动态随机存取存储器)、sdram(synchronousdram,同步动态随机存取存储器)、ddrsdram(doubledataratesdram,双倍数据速率同步动态随机存取存储器)、esdram(enhancedsdram,增强型同步动态随机存取存储器)、sldram(synchlinkdram,同步连接动态随机存取存储器)和drram(directrambusram,直接内存总线随机存取存储器)。本文描述的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
在一些实施方式中,存储器存储了如下的元素,升级包、可执行单元或者数据结构,或者他们的子集,或者他们的扩展集:操作系统和应用程序。
其中,操作系统,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序,包含各种应用程序,用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序中。
在本发明实施例中,处理器通过调用存储器存储的程序或指令,具体的,可以是应用程序中存储的程序或指令,处理器用于执行上述方法步骤。
本发明实施例还提供一种芯片,用于执行上述的方法。具体地,该芯片包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有该芯片的设备用于执行上述方法。
本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现本发明上述的方法的步骤。
例如,机器可读存储介质可以包括但不限于各种已知和未知类型的非易失性存储器。
本发明实施例还提供一种计算机程序产品,包括计算机程序指令,该计算机程序指令使得计算机执行上述方法。
本领域技术人员可以明白的是,结合本文中所公开的实施例描述的各示例的单元及算法步骤能够以电子硬件、或者软件和电子硬件的结合来实现。这些功能是以硬件还是软件方式来实现,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以针对每个特定的应用,使用不同的方式来实现所描述的功能,但是这种实现并不应认为超出本申请的范围。
在本申请实施例中,所公开的系统、电子设备和方法可以通过其它方式来实现。例如,单元的划分仅仅为一种逻辑功能划分,在实际实现时还可以有另外的划分方式。例如,多个单元或组件可以进行组合或者可以集成到另一个系统中。另外,各个单元之间的耦合可以是直接耦合或间接耦合。另外,在本申请实施例中的各功能单元可以集成在一个处理单元中,也可以是单独的物理存在等等。
应理解,在本申请的各种实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请的实施例的实施过程构成任何限定。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在机器可读存储介质中。因此,本申请的技术方案可以以软件产品的形式来体现,该软件产品可以存储在机器可读存储介质中,其可以包括若干指令用以使得电子设备执行本申请实施例所描述的技术方案的全部或部分过程。上述存储介质可以包括rom、ram、可移动盘、硬盘、磁盘或者光盘等各种可以存储程序代码的介质。
以上内容仅为本申请的具体实施方式,本申请的保护范围并不局限于此。本领域技术人员在本申请所公开的技术范围内可以进行变化或替换,这些变化或替换都应当在本申请的保护范围之内。