CN115878096A - 深度学习模型统一应用方法、装置、服务器及存储介质 - Google Patents
深度学习模型统一应用方法、装置、服务器及存储介质 Download PDFInfo
- Publication number
- CN115878096A CN115878096A CN202310046355.3A CN202310046355A CN115878096A CN 115878096 A CN115878096 A CN 115878096A CN 202310046355 A CN202310046355 A CN 202310046355A CN 115878096 A CN115878096 A CN 115878096A
- Authority
- CN
- China
- Prior art keywords
- target
- protocol object
- module
- model
- application
- 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
Images
Landscapes
- Stored Programmes (AREA)
- Communication Control (AREA)
Abstract
本发明提供的深度学习模型统一应用方法、装置、服务器及存储介质,属于深度学习技术领域,包括:根据目标模型的描述文件,构建中间协议对象;根据应用需求,对中间协议对象中的模块进行替换,以确定目标协议对象;目标协议对象中的每个模块接口一致;基于目标设备的设备信息,根据目标协议对象,生成与应用需求对应的应用代码,应用代码运行于目标设备。本发明提供的深度学习模型统一应用方法、装置、服务器及存储介质,通过将模型的描述文件构建成统一格式的中间协议对象,进而在优化模型的同时整合模型中的模块接口,使得模型能够适用于各种软硬件环境的设备,具有更高兼容性,为模型的应用提供优化空间。
Description
技术领域
本发明涉及深度学习技术领域,尤其涉及一种深度学习模型统一应用方法、装置、服务器及存储介质。
背景技术
近年来随着深度学习技术的迅速发展与落地,新的模型和训练策略层出不穷,相关的工具链也处在快速迭代的过程中,而在现有使用场景中,各类框架工具以及硬件平台的兼容问题无疑是需要突破的难点。
现有技术中的许多工具包和框架,满足了现有场景的一些需求。
然而,由于各个框架之间的兼容问题,往往会使现有的模型高度受制于软硬件环境。
发明内容
本发明提供的深度学习模型统一应用方法、装置、服务器及存储介质,用以解决现有技术中由于各个框架之间的兼容问题,往往会使现有的模型高度受制于软硬件环境的缺陷,实现适用于各种软硬件环境的设备,具有更高兼容性。
本发明提供一种深度学习模型统一应用方法,包括:
根据目标模型的描述文件,构建中间协议对象;
根据应用需求,对所述中间协议对象中的模块进行替换,以确定目标协议对象;所述目标协议对象中的每个模块接口一致;
基于目标设备的设备信息,根据所述目标协议对象,生成与所述应用需求对应的应用代码,所述应用代码运行于所述目标设备。
根据本发明提供的一种深度学习模型统一应用方法,所述根据目标模型的描述文件,构建中间协议对象,包括:
对所述描述文件进行格式转换,获取BM协议文件;
将所述BM协议文件中所述目标模型的每个模块的接口对齐,构建所述中间协议对象。
根据本发明提供的一种深度学习模型统一应用方法,所述将所述BM协议文件中各模块的接口对齐,构建所述中间协议对象,包括:
根据所述目标模型的有向无环图的拓扑顺序,将所述BM协议文件中的接口对齐,以构建所述中间协议对象。
根据本发明提供的一种深度学习模型统一应用方法,所述根据应用需求,对所述中间协议对象中的模块进行替换,以确定目标协议对象,包括:
根据应用需求,确定至少一个替换模块,并对所述中间协议对象中的重复语句进行整合,确定合并协议对象;
基于替换插件,利用所述替换模块,对所述合并协议对象中的模块进行替换,以生成所述目标协议对象;所述替换插件,用于将所述目标协议对象中的每个模块的接口调整一致。
根据本发明提供的一种深度学习模型统一应用方法,所述基于替换插件,利用所述替换模块,对所述合并协议对象中的模块进行替换,以生成所述目标协议对象,包括:
获取替换插件;
对所述合并协议对象中的模块加入所述替换插件,以利用所述替换模块,对所述合并协议对象中的模块进行替换,生成替换协议对象;
将所述替换协议对象中的模块的参数进行同类整理,生成所述目标协议对象。
根据本发明提供的一种深度学习模型统一应用方法,所述基于目标设备的设备信息,根据所述目标协议对象,生成与所述应用需求对应的应用代码,包括:
根据所述目标设备的设备信息,确定所述目标设备的代码模板;
基于所述代码模板,利用所述目标协议对象生成所述目标模型的初始代码;
确定所述初始代码中的无效代码区域,以生成所述应用代码。
根据本发明提供的一种深度学习模型统一应用方法,在所述确定所述初始代码中的无效代码区域,以生成所述应用代码之后,还包括:
接收版本修改指令;
响应于所述版本修改指令,对所述目标模型的配置文件进行修改,生成新的描述文件,所述新的描述文件用于生成所述目标模型的新的应用代码。
本发明还提供一种深度学习模型统一应用装置,包括:
前端模块,用于根据目标模型的描述文件,构建中间协议对象;
优化模块,用于根据应用需求,对所述中间协议对象中的模块进行替换,以确定目标协议对象;所述目标协议对象中的每个模块接口一致;
后端模块,用于基于目标设备的设备信息,根据所述目标协议对象,生成与所述应用需求对应的应用代码,所述应用代码运行于所述目标设备。
本发明还提供一种服务器,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述深度学习模型统一应用方法。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述深度学习模型统一应用方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述深度学习模型统一应用方法。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述深度学习模型统一应用方法。
本发明提供的深度学习模型统一应用方法、装置、服务器及存储介质,通过将模型的描述文件构建成统一格式的中间协议对象,进而在优化模型的同时整合模型中的模块接口,使得模型能够适用于各种软硬件环境的设备,具有更高兼容性,为模型的应用提供优化空间。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的深度学习模型统一应用方法的流程示意图之一;
图2是本发明提供的深度学习模型统一应用方法的流程示意图之二;
图3是本发明提供的深度学习模型统一应用装置的结构示意图;
图4是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有的深度学习主流框架如Pytorch、Tensorflow等,为构建深度学习模型提供了简单的模块接口;在此类基础框架之上,DeepSpeed、Fairseq等工具包,开发了诸多插件化应用,优化了模型的表现,也提供了更多模块组件。
而Transformers、Megatron-LM、ModelCenter等模型库,则使得调用模型变得简单高效,用户能够快速使用社区贡献的代码片段,并迅速得到实践。
同时模型标准表示ONNX统一了各个平台框架训练的模型,使其可以转化为ONNX表示。但其表示粒度过细,导致执行效率很低。
本发明在现有的深度学习场景中,提供了一套统一的模型描述协议的模型开发方案,涉及AI模型定义,模型训练部署,自动化代码生成等领域,可以将中间文件中的组件替换为第三方高度优化后的同等模型组件,从而提升部署效率。同时也可以根据硬件结构,选择中间协议对象和用户定制化的方案进行训练和推理的代码生成,从而实现集各个插件于一身,打造兼顾性能和效果的模型代码。
下面结合图1-图4描述本发明的实施例所提供的深度学习模型统一应用方法、装置、服务器及存储介质。
本发明实施例提供的深度学习模型统一应用方法,执行主体可以为电子设备或者电子设备中能够实现该深度学习模型统一应用方法的软件或功能模块或功能实体,本发明实施例中电子设备包括但不限于服务器。需要说明的是,上述执行主体并不构成对本发明的限制。
图1是本发明提供的深度学习模型统一应用方法的流程示意图之一,如图1所示,包括但不限于以下步骤:
首先,在步骤S1中,根据目标模型的描述文件,构建中间协议对象。
其中,目标模型可以是基于任一种框架构建训练的人工智能(ArtificialIntelligence,AI)模型,是基于模块化设计,目标模型包括多个模块,在将任一模块作为父模块的情况下,每个父模块可以包括多个子模块,整个目标模型呈树形的结构;描述文件可以是JSON格式的文件,根据目标模型的配置文件确定的;中间协议对象可以是基于大模型协议(Big Model Protocol,BM协议)构建的。
图2是本发明提供的深度学习模型统一应用方法的流程示意图之二,如图2所示,目标模型的描述文件的来源可以是Huggingface、Megatron-LM、Model Center等诸多开源社区等模型框架下任一模型的配置文件(Config),例如,Huggingface Config、ModelCenter Config、Pytorch Config或Tensorflow Config等。
可选地,所述根据目标模型的描述文件,构建中间协议对象,包括:
对所述描述文件进行格式转换,获取BM协议文件;
将所述BM协议文件中所述目标模型的每个模块的接口对齐,构建所述中间协议对象。
BM协议文件是基于BM协议转换的,是一种模型的中间格式,在任何框架构建和训练的AI模型的描述文件都可以转换成此格式。
具体地,将目标模型的原始的描述文件中获取目标模型的所有模块构造所需要的模块构建信息,转换成能够被读取的BM协议文件;例如对常见的Multi Head AttentionLayer模块来说,模块构建信息包括:输入维度、输出维度、注意力头的数目以及权重初始化的方式。
可选地,所述将所述BM协议文件中各模块的接口对齐,构建所述中间协议对象,包括:
根据所述目标模型的有向无环图的拓扑顺序,将所述BM协议文件中的接口对齐,以构建所述中间协议对象。
在描述文件进行格式转换的过程中,将描述文件对应的存储的参数文件,进行转换;并将描述文件和参数文件的配置与每个模块本身的属性对上,从而将来自不同框架的模型转换成统一的格式,保证各个模块的接口对齐。
根据生成的BM协议文件中模块的有向无环图的特性,将BM协议文件中目标模型中的各个模块的接口对齐,保证子模块的构建在父模块前面,按照拓扑顺序自底向上的完成中间协议对象的构建,实现接口的统一。
根据本发明提供的深度学习模型统一应用方法,根据原本来自不同平台框架训练的AI模型的模型结构描述,将模型文件转换为中间文件的格式。
例如对于普通的Attention Layer,其子模块Query、Key、Value等三个线性层的创建要先于Attention这个父模块之前。
根据本发明提供的深度学习模型统一应用方法,通过构建中间协议对象,从而统一各类框架的接口,并为模型部署和训练提供优化的空间。
进一步地,在步骤S2中,根据应用需求,对所述中间协议对象中的模块进行替换,以确定目标协议对象;所述目标协议对象中的每个模块接口一致。
将中间协议对象中,对目标模型的每个模块的接口进行替换和连接,使得模块的接口一致,进而生成目标协议对象,实现不同框架不同平台的模型的整合。
对于各种软硬件环境的设备,目标协议对象具有广泛的适用性。
可选地,所述根据应用需求,对所述中间协议对象中的模块进行替换,以确定目标协议对象,包括:
根据应用需求,确定至少一个替换模块,并对所述中间协议对象中的重复语句进行整合,确定合并协议对象;
基于替换插件,利用所述替换模块,对所述合并协议对象中的模块进行替换,以生成所述目标协议对象;所述替换插件,用于将所述目标协议对象中的每个模块的接口调整一致。
去除中间协议对象中的冗余重复的语句,并对来自同一个包的模块引用,合并为同一语句,可以得到合并协议对象。
应用需求为对模型的优化方向,例如,使模型加速或者表现得更好,不同需求最后会生成不一样的应用代码。
替换模块可以是现有的模型的实现,使用替换模块对合并协议对象中的模块进行等价替换,使得目标协议对象中各模块的接口统一;替换模块与合并协议对象中被替换的模块是同一类别,只是实现不一样,插件可以保证替换模块的接口与被替换的模块的接口一致,将替换模块接到原有模块的位置上;
例如,将被替换的模块的一个线性层替换成一个低质的线性层的替换模块,或者是其他类别的线性层的替换模块,而替换模块和被替换的模块本质上都是线型层,为同一类别。
可选地,所述基于替换插件,利用所述替换模块,对所述合并协议对象中的模块进行替换,以生成所述目标协议对象,包括:
获取替换插件;
对所述合并协议对象中的模块加入所述替换插件,以利用所述替换模块,对所述合并协议对象中的模块进行替换,生成替换协议对象;
将所述替换协议对象中的模块的参数进行同类整理,生成所述目标协议对象。
基于插件化的设计,在合并协议对象中目标模型的模块加入替换插件,以将合并协议对象中每个模块的接口进行整合对齐,使用其他框架或其他实现的等价模块,对合并协议对象中目标模型的接口调整好的模块进行替换。
通过插件化的设计,对于一个基于torch框架训练的目标模型,若需要在生成代码时,将目标模型的某些层使用其他的框架实现,则可以利用替换插件,在此对目标模型中的模块进行替换,保证每个模块的接口的一致,后面在应用代码生成时再做统一的转换,可以省去用户写转换的代码的步骤,简化用户操作,节省人力和时间成本。
例如,A协议有一个子模块b,是基于torch框架,替换插件可以把子模块b替换成一个基于BMTrain框架的等价模块。
根据配置文件或者BM协议文件,可以确定替换好的协议对象中的冗余部分,可以将不需要传参的部分进行精简。
具体地,对替换好的协议对象中的模块的成员变量进行精简整合,去除冗余的传参逻辑,使得模型的声明代码更简洁,减少冗余,能够得到目标模型的目标协议对象。
若模型描述中当前模块结构的所有同类模块都具有相同的参数,则可以将这些相同的参数整理为一个统一的全局配置,而无需保留原本因为高度模块化导致的冗余参数,这样可以生成可读性更强,更简洁的代码。
根据本发明提供的深度学习模型统一应用方法,通过模板和插件化模块设计,调节中间协议对象的接口,完成模块替换,生成适用于多个框架的代码,使得模型能够不再受制于设备的软硬件环境,适用性更广;并对冗余的逻辑分支做整合,简化了模型的传参逻辑,优化用户使用,方便用户的修改代码。
进一步地,在步骤S3中,基于目标设备的设备信息,根据所述目标协议对象,生成与所述应用需求对应的应用代码,所述应用代码运行于所述目标设备。
目标设备的设备信息为目标设备的硬件信息和软件信息,能够使得生成的应用代码适用于目标设备的软硬件环境。
其中,应用代码可以包括:定义代码、执行代码以及声明代码等,用于运行在目标设备上。
可选地,所述基于目标设备的设备信息,根据所述目标协议对象,生成与所述应用需求对应的应用代码,包括:
根据所述目标设备的设备信息,确定所述目标设备的代码模板;
基于所述代码模板,利用所述目标协议对象生成所述目标模型的初始代码;
确定所述初始代码中的无效代码区域,以生成所述应用代码。
无效代码区域可以包括:死代码删除和分支选择。
根据目标设备的硬件信息和软件信息,确定需要生成代码的代码模板,按照代码模板逐层对各模块生成相应的定义描述代码、运行代码以及训练和推理的代码等初始代码。
根据模块化的特性,优化目标模型中模块的包依赖问题,生成包引用语句并且通过编译期静态分析,自动检测代码模板中在特定模型配置时的无效代码区域,去除初始代码中冗余死代码的分支选择,避免了代码的冗余性。
最后进行代码格式化,进一步提高生成代码可读性,生成应用代码,以满足应用需求,并对生成的应用代码进行版本管理。
根据本发明提供的深度学习模型统一应用方法,通过将调整好的目标协议对象根据用户需求生成对应的代码,提高了模型的部署效率,解决了深层次的模型部署问题。
可选地,在所述确定所述初始代码中的无效代码区域,以生成所述应用代码之后,还包括:
接收版本修改指令;
响应于所述版本修改指令,对所述目标模型的配置文件进行修改,生成新的描述文件,所述新的描述文件用于生成所述目标模型的新的应用代码。
在完成目标模型的应用代码生的成后,当前生成的应用代码会被储存在版本管理系统中,用户可向服务器发送版本修改指令,在服务器响应于版本修改指令,修改配置文件后,可以得到新的描述文件,将新的描述文件按照上述实施例中的方法重新生成代码后,可以比照历史版本和当前版本的差别,便于调试代码。
本发明提供的深度学习模型统一应用方法,通过将模型的描述文件构建成统一格式的中间协议对象,进而在优化模型的同时整合模型中的模块接口,使得模型能够适用于各种软硬件环境的设备,具有更高兼容性,为模型的应用提供优化空间。
本发明还提供一种实施例,如图2所示,包括:
对于,Huggingface Config、Model Center Config、Pytorch Config或Tensorflow Config等任一配置文件,可以得到目标模型的描述文件;
在前端根据描述文件,生成目标模型的中间协议对象;后对中间协议对象中各个模块的接口调整一致,并对模块的成员变量进行精简整合,实现对中间协议对象的优化整合和冗余去重,得到具有广泛适用性的目标协议对象;后端根据目标协议对象生成对应的应用代码。
应用代码可以用于模型代码生成、模型推理部署、模型性能优化,或模型参数优化等。
根据本发明提供的深度学习模型统一应用方法,通过更高层的抽象并避免了抽象泄漏的问题,解决了跨平台,跨框架所遇到的模型部署问题,统一了接口设计,简化了常见的框架迁移问题,同时提供了插件化的可拓展机制,增加了后端代码生成的多样性,可以服务于模型代码生成、模型推理部署、模型性能优化、模型调优等各种场景。而中间层的抽象也为代码生成和运行提供了优化空间,同时本发明提出的基于中间层抽象的一套代码生成框架,进一步解决了模型的部署问题。在保证模型训练与推理效率的同时,这样的设计也有助于促进深度学习的社区发展,提供更良好的开发生态。
下面对本发明提供的深度学习模型统一应用装置进行描述,下文描述的深度学习模型统一应用装置与上文描述的深度学习模型统一应用方法可相互对应参照。
图3是本发明提供的深度学习模型统一应用装置的结构示意图,如图3所示,包括:
前端模块301,用于根据目标模型的描述文件,构建中间协议对象;
优化模块302,用于根据应用需求,对所述中间协议对象中的模块进行替换,以确定目标协议对象;所述目标协议对象中的每个模块接口一致;
后端模块303,用于基于目标设备的设备信息,根据所述目标协议对象,生成与所述应用需求对应的应用代码,所述应用代码运行于所述目标设备。
在装置运行的过程中,前端模块301根据目标模型的描述文件,构建中间协议对象;优化模块302根据应用需求,对所述中间协议对象中的模块进行替换,以确定目标协议对象;所述目标协议对象中的每个模块接口一致;后端模块303基于目标设备的设备信息,根据所述目标协议对象,生成与所述应用需求对应的应用代码,所述应用代码运行于所述目标设备。
首先,前端模块301根据目标模型的描述文件,构建中间协议对象。
其中,目标模型可以是基于任一种框架构建训练的人工智能(ArtificialIntelligence,AI)模型,是基于模块化设计,目标模型包括多个模块,在将任一模块作为父模块的情况下,每个父模块可以包括多个子模块,整个目标模型呈树形的结构;描述文件可以是JSON格式的文件,根据目标模型的配置文件确定的;中间协议对象可以是基于大模型协议(Big Model Protocol,BM协议)构建的。
如图2所示,目标模型的描述文件的来源可以是Huggingface、Megatron-LM、ModelCenter等诸多开源社区等模型框架下任一模型的配置文件(Config),例如,HuggingfaceConfig、Model Center Config、Pytorch Config或Tensorflow Config等。
可选地,前端模块301,具体用于:
对所述描述文件进行格式转换,获取BM协议文件;
将所述BM协议文件中所述目标模型的每个模块的接口对齐,构建所述中间协议对象。
BM协议文件是基于BM协议转换的,是一种模型的中间格式,在任何框架构建和训练的AI模型的描述文件都可以转换成此格式。
具体地,将目标模型的原始的描述文件中获取目标模型的所有模块构造所需要的模块构建信息,转换成能够被读取的BM协议文件;例如对常见的Multi Head AttentionLayer模块来说,模块构建信息包括:输入维度、输出维度、注意力头的数目以及权重初始化的方式。
可选地,前端模块301,具体还用于:
根据所述目标模型的有向无环图的拓扑顺序,将所述BM协议文件中的接口对齐,以构建所述中间协议对象。
在描述文件进行格式转换的过程中,将描述文件对应的存储的参数文件,进行转换;并将描述文件和参数文件的配置与每个模块本身的属性对上,从而将来自不同框架的模型转换成统一的格式,保证各个模块的接口对齐。
根据生成的BM协议文件中模块的有向无环图的特性,将BM协议文件中目标模型中的各个模块的接口对齐,保证子模块的构建在父模块前面,按照拓扑顺序自底向上的完成中间协议对象的构建,实现接口的统一。
根据本发明提供的深度学习模型统一应用装置,根据原本来自不同平台框架训练的AI模型的模型结构描述,将模型文件转换为中间文件的格式。
例如对于普通的Attention Layer,其子模块Query、Key、Value等三个线性层的创建要先于Attention这个父模块之前。
根据本发明提供的深度学习模型统一应用装置,通过构建中间协议对象,从而统一各类框架的接口,并为模型部署和训练提供优化的空间。
进一步地,优化模块302根据应用需求,对所述中间协议对象中的模块进行替换,以确定目标协议对象;所述目标协议对象中的每个模块接口一致。
将中间协议对象中,对目标模型的每个模块的接口进行替换和连接,使得模块的接口一致,进而生成目标协议对象,实现不同框架不同平台的模型的整合。
对于各种软硬件环境的设备,目标协议对象具有广泛的适用性。
可选地,优化模块302,具体用于:
根据应用需求,确定至少一个替换模块,并对所述中间协议对象中的重复语句进行整合,确定合并协议对象;
基于替换插件,利用所述替换模块,对所述合并协议对象中的模块进行替换,以生成所述目标协议对象;所述替换插件,用于将所述目标协议对象中的每个模块的接口调整一致。
去除中间协议对象中的冗余重复的语句,并对来自同一个包的模块引用,合并为同一语句,可以得到合并协议对象。
应用需求为对模型的优化方向,例如,使模型加速或者表现得更好,不同需求最后会生成不一样的应用代码。
替换模块可以是现有的模型的实现,使用替换模块对合并协议对象中的模块进行等价替换,使得目标协议对象中各模块的接口统一;替换模块与合并协议对象中被替换的模块是同一类别,只是实现不一样,插件可以保证替换模块的接口与被替换的模块的接口一致,将替换模块接到原有模块的位置上;
例如,将被替换的模块的一个线性层替换成一个低质的线性层的替换模块,或者是其他类别的线性层的替换模块,而替换模块和被替换的模块本质上都是线型层,为同一类别。
可选地,优化模块302,具体还用于:
获取替换插件;
对所述合并协议对象中的模块加入所述替换插件,以利用所述替换模块,对所述合并协议对象中的模块进行替换,生成替换协议对象;
将所述替换协议对象中的模块的参数进行同类整理,生成所述目标协议对象。
基于插件化的设计,在合并协议对象中目标模型的模块加入替换插件,以将合并协议对象中每个模块的接口进行整合对齐,使用其他框架或其他实现的等价模块,对合并协议对象中目标模型的接口调整好的模块进行替换。
通过插件化的设计,对于一个基于torch框架训练的目标模型,若需要在生成代码时,将目标模型的某些层使用其他的框架实现,则可以利用替换插件,在此对目标模型中的模块进行替换,保证每个模块的接口的一致,后面在应用代码生成时再做统一的转换,可以省去用户写转换的代码的步骤,简化用户操作,节省人力和时间成本。
例如,A协议有一个子模块b,是基于torch框架,替换插件可以把子模块b替换成一个基于BMTrain框架的等价模块。
根据配置文件或者BM协议文件,可以确定替换好的协议对象中的冗余部分,可以将不需要传参的部分进行精简。
具体地,对替换好的协议对象中的模块的成员变量进行精简整合,去除冗余的传参逻辑,使得模型的声明代码更简洁,减少冗余,能够得到目标模型的目标协议对象。
若模型描述中当前模块结构的所有同类模块都具有相同的参数,则可以将这些相同的参数整理为一个统一的全局配置,而无需保留原本因为高度模块化导致的冗余参数,这样可以生成可读性更强,更简洁的代码。
根据本发明提供的深度学习模型统一应用装置,通过模板和插件化模块设计,调节中间协议对象的接口,完成模块替换,生成适用于多个框架的代码,使得模型能够不再受制于设备的软硬件环境,适用性更广;并对冗余的逻辑分支做整合,简化了模型的传参逻辑,优化用户使用,方便用户的修改代码。
进一步地,后端模块303基于目标设备的设备信息,根据所述目标协议对象,生成与所述应用需求对应的应用代码,所述应用代码运行于所述目标设备。
目标设备的设备信息为目标设备的硬件信息和软件信息,能够使得生成的应用代码适用于目标设备的软硬件环境。
其中,应用代码可以包括:定义代码、执行代码以及声明代码等,用于运行在目标设备上。
可选地,后端模块303,具体用于:
根据所述目标设备的设备信息,确定所述目标设备的代码模板;
基于所述代码模板,利用所述目标协议对象生成所述目标模型的初始代码;
确定所述初始代码中的无效代码区域,以生成所述应用代码。
无效代码区域可以包括:死代码删除和分支选择。
根据目标设备的硬件信息和软件信息,确定需要生成代码的代码模板,按照代码模板逐层对各模块生成相应的定义描述代码、运行代码以及训练和推理的代码等初始代码。
根据模块化的特性,优化目标模型中模块的包依赖问题,生成包引用语句并且通过编译期静态分析,自动检测代码模板中在特定模型配置时的无效代码区域,去除初始代码中冗余死代码的分支选择,避免了代码的冗余性。
最后进行代码格式化,进一步提高生成代码可读性,生成应用代码,以满足应用需求,并对生成的应用代码进行版本管理。
根据本发明提供的深度学习模型统一应用装置,通过将调整好的目标协议对象根据用户需求生成对应的代码,提高了模型的部署效率,解决了深层次的模型部署问题。
可选地,所述装置还包括修改模块,修改模块具体用于:
接收版本修改指令;
响应于所述版本修改指令,对所述目标模型的配置文件进行修改,生成新的描述文件,所述新的描述文件用于生成所述目标模型的新的应用代码。
在完成目标模型的应用代码生的成后,当前生成的应用代码会被储存在版本管理系统中,用户可向服务器发送版本修改指令,在服务器响应于版本修改指令,修改配置文件后,可以得到新的描述文件,将新的描述文件按照上述实施例中的方法重新生成代码后,可以比照历史版本和当前版本的差别,便于调试代码。
本发明提供的深度学习模型统一应用装置,通过将模型的描述文件构建成统一格式的中间协议对象,进而在优化模型的同时整合模型中的模块接口,使得模型能够适用于各种软硬件环境的设备,具有更高兼容性,为模型的应用提供优化空间。
本发明还提供一种服务器,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一实施例所述深度学习模型统一应用方法,在此不做赘述。
本发明提供的服务器,通过将模型的描述文件构建成统一格式的中间协议对象,进而在优化模型的同时整合模型中的模块接口,使得模型能够适用于各种软硬件环境的设备,具有更高兼容性,为模型的应用提供优化空间。
图4是本发明提供的电子设备的结构示意图,如图4所示,该电子设备可以包括:处理器(processor)410、通信接口(Communications Interface)420、存储器(memory)430和通信总线440,其中,处理器410,通信接口420,存储器430通过通信总线440完成相互间的通信。处理器410可以调用存储器430中的逻辑指令,以执行深度学习模型统一应用方法,该方法包括:根据目标模型的描述文件,构建中间协议对象;根据应用需求,对所述中间协议对象中的模块进行替换,以确定目标协议对象;所述目标协议对象中的每个模块接口一致;基于目标设备的设备信息,根据所述目标协议对象,生成与所述应用需求对应的应用代码,所述应用代码运行于所述目标设备。
此外,上述的存储器430中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的深度学习模型统一应用方法,该方法包括:根据目标模型的描述文件,构建中间协议对象;根据应用需求,对所述中间协议对象中的模块进行替换,以确定目标协议对象;所述目标协议对象中的每个模块接口一致;基于目标设备的设备信息,根据所述目标协议对象,生成与所述应用需求对应的应用代码,所述应用代码运行于所述目标设备。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的深度学习模型统一应用方法,该方法包括:根据目标模型的描述文件,构建中间协议对象;根据应用需求,对所述中间协议对象中的模块进行替换,以确定目标协议对象;所述目标协议对象中的每个模块接口一致;基于目标设备的设备信息,根据所述目标协议对象,生成与所述应用需求对应的应用代码,所述应用代码运行于所述目标设备。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种深度学习模型统一应用方法,其特征在于,包括:
根据目标模型的描述文件,构建中间协议对象;
根据应用需求,对所述中间协议对象中的模块进行替换,以确定目标协议对象;所述目标协议对象中的每个模块接口一致;
基于目标设备的设备信息,根据所述目标协议对象,生成与所述应用需求对应的应用代码,所述应用代码运行于所述目标设备。
2.根据权利要求1所述的深度学习模型统一应用方法,其特征在于,所述根据目标模型的描述文件,构建中间协议对象,包括:
对所述描述文件进行格式转换,获取BM协议文件;
将所述BM协议文件中所述目标模型的每个模块的接口对齐,构建所述中间协议对象。
3.根据权利要求2所述的深度学习模型统一应用方法,其特征在于,所述将所述BM协议文件中各模块的接口对齐,构建所述中间协议对象,包括:
根据所述目标模型的有向无环图的拓扑顺序,将所述BM协议文件中的接口对齐,以构建所述中间协议对象。
4.根据权利要求1所述的深度学习模型统一应用方法,其特征在于,所述根据应用需求,对所述中间协议对象中的模块进行替换,以确定目标协议对象,包括:
根据应用需求,确定至少一个替换模块,并对所述中间协议对象中的重复语句进行整合,确定合并协议对象;
基于替换插件,利用所述替换模块,对所述合并协议对象中的模块进行替换,以生成所述目标协议对象;所述替换插件,用于将所述目标协议对象中的每个模块的接口调整一致。
5.根据权利要求4所述的深度学习模型统一应用方法,其特征在于,所述基于替换插件,利用所述替换模块,对所述合并协议对象中的模块进行替换,以生成所述目标协议对象,包括:
获取替换插件;
对所述合并协议对象中的模块加入所述替换插件,以利用所述替换模块,对所述合并协议对象中的模块进行替换,生成替换协议对象;
将所述替换协议对象中的模块的参数进行同类整理,生成所述目标协议对象。
6.根据权利要求4或5所述的深度学习模型统一应用方法,其特征在于,所述基于目标设备的设备信息,根据所述目标协议对象,生成与所述应用需求对应的应用代码,包括:
根据所述目标设备的设备信息,确定所述目标设备的代码模板;
基于所述代码模板,利用所述目标协议对象生成所述目标模型的初始代码;
确定所述初始代码中的无效代码区域,以生成所述应用代码。
7.根据权利要求6所述的深度学习模型统一应用方法,其特征在于,在所述确定所述初始代码中的无效代码区域,以生成所述应用代码之后,还包括:
接收版本修改指令;
响应于所述版本修改指令,对所述目标模型的配置文件进行修改,生成新的描述文件,所述新的描述文件用于生成所述目标模型的新的应用代码。
8.一种深度学习模型统一应用装置,其特征在于,包括:
前端模块,用于根据目标模型的描述文件,构建中间协议对象;
优化模块,用于根据应用需求,对所述中间协议对象中的模块进行替换,以确定目标协议对象;所述目标协议对象中的每个模块接口一致;
后端模块,用于基于目标设备的设备信息,根据所述目标协议对象,生成与所述应用需求对应的应用代码,所述应用代码运行于所述目标设备。
9.一种服务器,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-7任一项所述深度学习模型统一应用方法。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7任一项所述深度学习模型统一应用方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310046355.3A CN115878096B (zh) | 2023-01-31 | 2023-01-31 | 深度学习模型统一应用方法、装置、服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310046355.3A CN115878096B (zh) | 2023-01-31 | 2023-01-31 | 深度学习模型统一应用方法、装置、服务器及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115878096A true CN115878096A (zh) | 2023-03-31 |
CN115878096B CN115878096B (zh) | 2023-05-23 |
Family
ID=85758547
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310046355.3A Active CN115878096B (zh) | 2023-01-31 | 2023-01-31 | 深度学习模型统一应用方法、装置、服务器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115878096B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116541020A (zh) * | 2023-07-06 | 2023-08-04 | 腾讯科技(深圳)有限公司 | 基于领域模型的代码生成方法、装置、设备、介质及产品 |
CN117332068A (zh) * | 2023-10-31 | 2024-01-02 | 北京百度网讯科技有限公司 | 人机交互方法、装置、电子设备以及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110378463A (zh) * | 2019-07-15 | 2019-10-25 | 北京智能工场科技有限公司 | 一种人工智能模型标准化训练平台及自动化系统 |
CN111275199A (zh) * | 2020-01-17 | 2020-06-12 | 深圳壹账通智能科技有限公司 | 一种深度学习模型文件的转换方法、系统、计算机设备及计算机可读存储介质 |
US20200380415A1 (en) * | 2019-05-31 | 2020-12-03 | Apple Inc. | Integration of learning models into a software development system |
WO2021169844A1 (zh) * | 2020-02-28 | 2021-09-02 | 上海商汤智能科技有限公司 | 神经网络模型的转换方法、模型精度定位方法及装置 |
CN113947207A (zh) * | 2020-07-15 | 2022-01-18 | 杭州海康威视数字技术股份有限公司 | 应用于模型转换的管理方法、系统、装置及电子设备 |
-
2023
- 2023-01-31 CN CN202310046355.3A patent/CN115878096B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200380415A1 (en) * | 2019-05-31 | 2020-12-03 | Apple Inc. | Integration of learning models into a software development system |
CN110378463A (zh) * | 2019-07-15 | 2019-10-25 | 北京智能工场科技有限公司 | 一种人工智能模型标准化训练平台及自动化系统 |
CN111275199A (zh) * | 2020-01-17 | 2020-06-12 | 深圳壹账通智能科技有限公司 | 一种深度学习模型文件的转换方法、系统、计算机设备及计算机可读存储介质 |
WO2021169844A1 (zh) * | 2020-02-28 | 2021-09-02 | 上海商汤智能科技有限公司 | 神经网络模型的转换方法、模型精度定位方法及装置 |
CN113947207A (zh) * | 2020-07-15 | 2022-01-18 | 杭州海康威视数字技术股份有限公司 | 应用于模型转换的管理方法、系统、装置及电子设备 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116541020A (zh) * | 2023-07-06 | 2023-08-04 | 腾讯科技(深圳)有限公司 | 基于领域模型的代码生成方法、装置、设备、介质及产品 |
CN117332068A (zh) * | 2023-10-31 | 2024-01-02 | 北京百度网讯科技有限公司 | 人机交互方法、装置、电子设备以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115878096B (zh) | 2023-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104598240B (zh) | 一种跨平台的仿真模型开发方法及系统 | |
CN115878096A (zh) | 深度学习模型统一应用方法、装置、服务器及存储介质 | |
CN112199086B (zh) | 自动编程控制系统、方法、装置、电子设备及存储介质 | |
CN108804630B (zh) | 一种面向行业应用的大数据智能分析服务系统 | |
CN106293664A (zh) | 代码生成方法及装置 | |
CN111435367B (zh) | 知识图谱的构建方法、系统、设备及存储介质 | |
CN111768004A (zh) | 一种基于智能计算框架的模型自适应方法及系统 | |
CN115525436A (zh) | 模型部署、运行方法、装置、离线分析工具和电子设备 | |
CN113987398A (zh) | 一种软件自定义表单内容web开发系统及方法 | |
CN112052611B (zh) | 基于几何模型的电力设备的仿真方法、装置及存储介质 | |
CN113885845B (zh) | 深度学习编译器的计算图的生成方法、系统、设备及介质 | |
CN112230926B (zh) | 一种复杂模型的优化方法、装置、设备及可读介质 | |
CN118760612A (zh) | 代码处理方法以及代码修复测试方法 | |
CN114741085A (zh) | 数据处理方法、装置、设备及存储介质 | |
CN117369521B (zh) | 用于无人机决策的行为树模型路径生成方法、装置及设备 | |
D'Ambrogio et al. | A Model Transformation Approach for the Development of HLA-based Distributed Simulation Systems. | |
CN117892665A (zh) | 基于电路系统级模型的建模仿真方法、装置、介质及设备 | |
Morozov et al. | Development of optimization models of complex infocommunication projects based on data mining | |
Li et al. | Breeze/adl: Graph grammar support for an xml-based software architecture description language | |
CN115809688A (zh) | 一种模型调试方法、装置、电子设备及存储介质 | |
CN114281904A (zh) | 问题生成方法、装置、电子设备和存储介质 | |
CN112633559A (zh) | 一种基于动态图卷积神经网络的社交关系预测方法及系统 | |
CN113805850A (zh) | 基于多种深度学习和机器学习框架的人工智能管理系统 | |
Ji et al. | Structure preserving transformations for practical model-based systems engineering | |
CN114756205B (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 |