掌桥专利:专业的专利平台
掌桥专利
首页

一种模型的端侧部署方法、装置、设备及存储介质

文献发布时间:2023-06-19 18:46:07


一种模型的端侧部署方法、装置、设备及存储介质

技术领域

本发明涉及人工智能技术领域,尤其涉及一种模型的端侧部署方法、装置、设备及存储介质。

背景技术

随着人工智能技术的发展,各类相关模型的应用也越来越广泛。为了提高模型的训练效率,相关技术在云侧对模型进行训练,然后将训练获得的预测模型部署至端侧进行具体的业务预测。

然而,针对上述由云侧和端侧组成的框架,存在平台间的割裂现象,即各平台框架往往有着自己对应的端侧部署环境,且平台之间并不互通,就导致了最终模型泛化效果的千差万别,且模型部署成本较高。

发明内容

本申请实施例提供了一种模型的端侧部署方法、装置、设备及存储介质,用于统一模型的泛化效果并降低模型部署成本。

一方面,本申请实施例提供了一种模型的端侧部署方法,应用于云侧,包括:

接收端侧发送的模型部署请求;

基于所述模型部署请求,从模型仓库中获取相应的原始模型;

将所述原始模型转化为通用格式的目标模型,并对所述目标模型加密,获得加密模型文件;

将所述加密模型文件、所述目标模型对应的推理环境依赖和任务调度代码发送至端侧,以使所述端侧基于所述推理环境依赖和所述任务调度代码,生成目标推理环境;对所述加密模型文件解密,获得所述目标模型,并在所述目标推理环境中运行所述目标模型进行业务预测,获得业务预测结果。

本申请实施例中,在云侧进行模型训练和转化,可以实现资源的充分利用,减少了端侧的资源消耗。其次,云侧将原始模型转化为通用格式的目标模型,同时将目标模型以及相应的推理环境依赖和任务调度代码,故端侧可以直接基于推理环境依赖和任务调度代码部署推理环境,并运行目标模型,实现模型标准化部署,从而提升了不同平台间的兼容性,以及统一了模型的泛化效果,同时降低模型部署成本。另外,云侧对目标模型加密后再下发至端侧,提高了模型的安全性和防攻击性。

可选地,所述推理环境依赖包括运行所述目标模型所需的算子列表,所述算子列表是将所述原始模型转化为所述目标模型的过程中记录的。

可选地,所述对所述目标模型加密,获得加密模型文件,包括:

将所述目标模型划分为多个文件分片,并采用加密因子对每个文件分片进行加密,获得所述加密模型文件。

本申请实施例中,将目标模型划分为多个文件分片,对每个分片都进行加密处理,进一步提升了目标模型的安全性和防攻击性。

可选地,所述采用加密因子对每个文件分片进行加密,获得所述加密模型文件,包括:

基于随机数和原始加密串,生成加密密钥;

针对所述多个文件分片中的第一文件分片,采用所述加密密钥对所述第一文件分片进行加密,获得第一加密文件内容,并在所述第一加密文件内容的头部添加所述随机数,以及在所述第一加密文件内容的尾部添加相应的文件校验码,获得第一加密分片;

针对除所述第一文件分片之外的每个第二文件分片,采用所述加密密钥对所述第二文件分片进行加密,获得第二加密文件内容,并在所述第二加密文件内容的尾部添加相应的文件校验码,获得第二加密分片;

基于所述第一加密分片和获得的至少一个第二加密分片,获得所述加密模型文件。

本申请实施例中,通过对称加密的方式对每个文件分片进行加密,并在每个文件分片的尾部添加文件校验码,在文件校验码校验通过时才可进行解密,使得文件分片的安全性得到了双重提升,从而提升了整体模型的安全性和防攻击性。

一方面,本申请实施例提供了一种模型的端侧部署方法,应用于端侧,包括:

向云侧发送模型部署请求,以使所述云侧基于所述模型部署请求,从模型仓库中获取相应的原始模型;以及将所述原始模型转化为通用格式的目标模型,并对所述目标模型加密,获得加密模型文件;

接收所述云侧发送的所述加密模型文件、所述目标模型对应的推理环境依赖和任务调度代码;

基于所述推理环境依赖和所述任务调度代码,生成目标推理环境;

对所述加密模型文件解密,获得所述目标模型,并在所述目标推理环境中运行所述目标模型进行业务预测,获得业务预测结果。

本申请实施例中,在云侧进行模型训练和转化,可以实现资源的充分利用,减少了端侧的资源消耗。其次,云侧将原始模型转化为通用格式的目标模型,同时将目标模型以及相应的推理环境依赖和任务调度代码,故端侧可以直接基于推理环境依赖和任务调度代码部署推理环境,并运行目标模型,实现模型标准化部署,从而提升了不同平台间的兼容性,以及统一了模型的泛化效果,同时降低模型部署成本。另外,云侧对目标模型加密后再下发至端侧,提高了模型的安全性和防攻击性。

可选地,所述加密模型文件中包括第一加密分片和至少一个第二加密分片;

所述对所述加密模型文件解密,获得所述目标模型,包括:

从所述第一加密分片的头部获得随机数,并基于所述随机数和原始加密串,生成解密密钥;

对所述第一加密分片的尾部中的文件校验码进行校验,并在校验通过时,采用所述解密密钥对所述第一加密分片中的第一加密文件内容解密,获得第一文件分片;

针对每个第二加密分片,对所述第二加密分片的尾部中的文件校验码进行校验,并在校验通过时,采用所述解密密钥对所述第二加密分片中的第二加密文件内容解密,获得第二文件分片;

基于所述第一文件分片和获得的至少一个第二文件分片,获得所述目标模型。

本申请实施例中,通过先对第一加密分片、第二加密分片进行校验码验证,再决定是否进行解密,进一步提升了目标模型的安全性。

可选地,所述基于所述推理环境依赖和所述任务调度代码,生成目标推理环境,包括:

将所述任务调度代码加载于所述端侧的调度容器,将所述推理环境依赖加载于所述端侧的推理引擎,获得目标推理环境。

本申请实施例中,端侧根据不同的功能加载不同的任务,将任务分开处理,避免了因为功能不同而混淆的问题。

可选地,所述在所述目标推理环境中运行所述目标模型进行业务预测,获得业务预测结果,包括:

通过所述调度容器采用标准的模型输入处理流程,对目标业务场景下的推理任务的原始数据进行处理,获得标准格式的模型输入数据,并将所述模型输入数据输入所述推理引擎;

通过所述推理引擎中的所述目标模型对所述模型输入数据进行预测,获得模型输出结果;

通过所述调度容器将所述模型输出结果转化为所述目标业务场景下的业务预测结果。

本申请实施例中,采用调度容器执行模型预测的前处理和后处理。针对不同的任务进行标准化的调用定义,故节省了业务场景对智能应用的调用门槛,且在多任务调度过程中复用处理逻辑,从而进一步压缩成本。

可选地,还包括:

定期将所述调度容器处理获得的模型输入数据上传至所述云侧,以使所述云侧基于获得的模型输入数据对训练数据进行补充,并采用补充后的训练数据对所述模型仓库中的模型进行更新。

本申请实施例中,端侧定期将调度容器处理获得的模型输入数据上传至云侧,实现全闭环架构。其次,由于端侧进行数据标准化处理,实现了数据脱敏、隐私保护、算力分散。另外,采用端侧定期上传的数据对训练数据进行补充,以对模型仓库中的模型不断调优,从而提高模型的预测效果。

一方面,本申请实施例提供了一种模型的端侧部署装置,应用于云侧,该装置包括:

第一接收模块,用于接收端侧发送的模型部署请求;

获取模块,用于基于所述模型部署请求,从模型仓库中获取相应的原始模型;

加密模块,用于将所述原始模型转化为通用格式的目标模型,并对所述目标模型加密,获得加密模型文件;

第一发送模块,用于将所述加密模型文件、所述目标模型对应的推理环境依赖和任务调度代码发送至端侧,以使所述端侧基于所述推理环境依赖和所述任务调度代码,生成目标推理环境;对所述加密模型文件解密,获得所述目标模型,并在所述目标推理环境中运行所述目标模型进行业务预测,获得业务预测结果。

可选地,所述推理环境依赖包括运行所述目标模型所需的算子列表,所述算子列表是将所述原始模型转化为所述目标模型的过程中记录的。

可选地,所述加密模块具体用于:

将所述目标模型划分为多个文件分片,并采用加密因子对每个文件分片进行加密,获得所述加密模型文件。

可选地,所述加密模块具体用于:

基于随机数和原始加密串,生成加密密钥;

针对所述多个文件分片中的第一文件分片,采用所述加密密钥对所述第一文件分片进行加密,获得第一加密文件内容,并在所述第一加密文件内容的头部添加所述随机数,以及在所述第一加密文件内容的尾部添加相应的文件校验码,获得第一加密分片;

针对除所述第一文件分片之外的每个第二文件分片,采用所述加密密钥对所述第二文件分片进行加密,获得第二加密文件内容,并在所述第二加密文件内容的尾部添加相应的文件校验码,获得第二加密分片;

基于所述第一加密分片和获得的至少一个第二加密分片,获得所述加密模型文件。

一方面,本申请实施例提供了一种模型的端侧部署装置,应用于端侧,该装置包括:

第二发送模块,向云侧发送模型部署请求,以使所述云侧基于所述模型部署请求,从模型仓库中获取相应的原始模型;以及将所述原始模型转化为通用格式的目标模型,并对所述目标模型加密,获得加密模型文件;

第二接收模块,用于接收所述云侧发送的所述加密模型文件、所述目标模型对应的推理环境依赖和任务调度代码;

生成模块,用于基于所述推理环境依赖和所述任务调度代码,生成目标推理环境;

解密预测模块,用于对所述加密模型文件解密,获得所述目标模型,并在所述目标推理环境中运行所述目标模型进行业务预测,获得业务预测结果。

可选地,所述加密模型文件中包括第一加密分片和至少一个第二加密分片;

所述解密预测模块具体用于:

从所述第一加密分片的头部获得随机数,并基于所述随机数和原始加密串,生成解密密钥;

对所述第一加密分片的尾部中的文件校验码进行校验,并在校验通过时,采用所述解密密钥对所述第一加密分片中的第一加密文件内容解密,获得第一文件分片;

针对每个第二加密分片,对所述第二加密分片的尾部中的文件校验码进行校验,并在校验通过时,采用所述解密密钥对所述第二加密分片中的第二加密文件内容解密,获得第二文件分片;

基于所述第一文件分片和获得的至少一个第二文件分片,获得所述目标模型。

可选地,所述生成模块具体用于:

将所述任务调度代码加载于所述端侧的调度容器,将所述推理环境依赖加载于所述端侧的推理引擎,获得目标推理环境。

可选地,所述解密预测模块具体用于:

通过所述调度容器采用标准的模型输入处理流程,对目标业务场景下的推理任务的原始数据进行处理,获得标准格式的模型输入数据,并将所述模型输入数据输入所述推理引擎;

通过所述推理引擎中的所述目标模型对所述模型输入数据进行预测,获得模型输出结果;

通过所述调度容器将所述模型输出结果转化为所述目标业务场景下的业务预测结果。

可选地,所述解密预测模块还用于:

定期将所述调度容器处理获得的模型输入数据上传至所述云侧,以使所述云侧基于获得的模型输入数据对训练数据进行补充,并采用补充后的训练数据对所述模型仓库中的模型进行更新。

本申请实施例中,在云侧进行模型训练和转化,可以实现资源的充分利用,减少了端侧的资源消耗。其次,云侧将原始模型转化为通用格式的目标模型,同时将目标模型以及相应的推理环境依赖和任务调度代码,故端侧可以直接基于推理环境依赖和任务调度代码部署推理环境,并运行目标模型,实现模型标准化部署,从而提升了不同平台间的兼容性,以及统一了模型的泛化效果,同时降低模型部署成本。另外,云侧对目标模型加密后再下发至端侧,提高了模型的安全性和防攻击性。

附图说明

图1为本申请实施例提供的一种系统架构图;

图2为本申请实施例提供的一种模型的端侧部署方法的流程示意图一;

图3为本申请实施例提供的一种模型加密的流程示意图;

图4为本申请实施例提供的一种模型解密的流程示意图;

图5为本申请实施例提供的一种获得业务预测结果的流程示意图;

图6为本申请实施例提供的一种模型的端侧部署方法的流程示意图二;

图7为本申请实施例提供的一种模型的端侧部署装置的结构示意图一;

图8为本申请实施例提供的一种模型的端侧部署装置的结构示意图二;

图9为本申请实施例提供的一种计算机设备的结构示意图。

具体实施方式

为了使本申请的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

参考图1,为本申请实施例适用的一种系统架构图,该系统至少包括云侧101和端侧102。

云侧101和端侧102可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content DeliveryNetwork,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。本申请实施例中模型的端侧部署方法由云侧101和端侧102共同执行完成。

基于图1的系统架构图,本申请实施例提供了一种模型的端侧部署方法,如图2所示,该方法由云侧和端侧交互执行,包括以下步骤:

步骤201、云侧接收端侧发送的模型部署请求。

端侧根据不同业务需求的模型,向云侧发送针对该业务的模型部署请求。端侧业务需求可以是识别一张图片是猫还是狗,也可以是文本检测。

步骤202、云侧基于模型部署请求,从模型仓库中获取相应的原始模型。

具体地,在云侧部署有模型仓库,模型仓库中存放有不同业务的模型。云侧接收端侧发来的不同业务需求的模型部署请求后,根据业务需求的类型从模型仓库中获取相应的模型,此时获取到的模型为最初始的未转化的模型,即原始模型。

在训练过程中,云侧先获得训练集、测试集及验证数据集等数据集。一般情况下,一个深度学习任务想要在特定场景中表现出足够好的效果,往往离不开大量的标注数据进行监督学习。而由于合适可用的数据获取较为困难,且开源数据集往往存在与实际应用场景偏差较大的情况。因此,本申请中利用端云一体化框架的优势,实时将端侧采用标准化处理流程获得的预处理数据上传至云侧,云侧基于预处理数据对模型进行训练。

在一些实施例中,本申请中的训练过程不存在对训练框架的依赖,在选定任务类型后可自由选择训练框架进行模型训练。例如,Tensorflow、Pytorch等主流框架。另外,本申请在预训练模型上进行迁移学习。模型训练后在验证数据上完成验证,之后再将模型保存到模型仓库。

步骤203、云侧将原始模型转化为通用格式的目标模型,并对目标模型加密,获得加密模型文件。

具体地,模型转化的通用格式为业内广泛使用的开放神经网络交换格式,使用通用格式的模型可以更为通用的部署于端侧的推理环境中进行结构解析和执行预测。

在一些实施例中,将目标模型划分为多个文件分片,并采用加密因子对每个文件分片进行加密,获得加密模型文件。

具体地,转换后的目标模型实际上为二进制的数据文件,对该数据文件进行定长切片,获得多个文件切片,并对每个文件切片引入加密因子,实现对每个文件分片进行加密,最后再将多个加密后的文件分片进行组合,获得加密模型文件,其中,加密因子包括但不限于调设备指纹、应用ID等。

本申请实施例中,将目标模型划分为多个文件分片,对每个分片都进行加密处理,进一步提升了目标模型的安全性和防攻击性。

在一些实施例中,采用加密因子对每个文件分片进行加密,获得加密模型文件的过程如图3所示,包括以下步骤:

步骤301、基于随机数和原始加密串,生成加密密钥。

具体地,模型加密的加密算法包括但不限于对称加密高级加密标准(AdvancedEncryption Standard,简称AES),采用密码分组链接(Cipher-block chaining,简称CBC)模式。每个文件分片都会进行单独的加密。默认的文件分片大小为4096字节。在一些实施例中,通过Rand_bytes算法生成16个字节的随机数,该随机数也可以指盐值(salt)。原始加密串包含原始加密要素。通过PBKDF2算法将原始加密串和随机数一起参与运算并多次迭代,生成AES加密所用的加密密钥(key)。

步骤302、针对多个文件分片中的第一文件分片,采用加密密钥对第一文件分片进行加密,获得第一加密文件内容,并在第一加密文件内容的头部添加随机数,以及在第一加密文件内容的尾部添加相应的文件校验码,获得第一加密分片。

具体地,第一文件分片可以是多个文件分片中排在第一位的文件分片,也可以是指定的排在其他位置的文件分片。采用加密密钥(key)对第一文件分片进行加密,获得第一加密文件内容。通过HMAC-SHA512算法,获取第一加密文件内容对应的文件校验码。然后在第一加密文件内容的头部添加随机数,以及在第一加密文件内容的尾部添加相应的文件校验码,获得第一加密分片。

步骤303、针对除第一文件分片之外的每个第二文件分片,采用加密密钥对第二文件分片进行加密,获得第二加密文件内容,并在第二加密文件内容的尾部添加相应的文件校验码,获得第二加密分片。

具体地,采用加密密钥(key)对第二文件分片进行加密,获得第二加密文件内容。通过HMAC-SHA512算法,获取第二加密文件内容对应的文件校验码。然后在第二加密文件内容的尾部添加相应的文件校验码,获得第二加密分片。

步骤304、基于第一加密分片和获得的至少一个第二加密分片,获得加密模型文件。

具体地,将第一加密分片和第二加密分片组合就得到了加密模型文件。

本申请实施例中,通过对称加密的方式对每个文件分片进行加密,并在每个文件分片的尾部添加文件校验码,对文件校验码校验通过时才可进行解密,使得文件分片的安全性得到了双重提升,从而提升了整体模型的安全性和防攻击性。

步骤204、云侧将加密模型文件、目标模型对应的推理环境依赖和任务调度代码发送至端侧。

具体地,加密模型文件、目标模型对应的推理环境依赖和任务调度代码都存在于算法包中。上层应用依据端侧运行环境状态,选择合适的算法包。由云侧下发的算法包,需要在端侧的算法管理模块进行生命周期的管理,当上层应用不需要某些功能或需要新增功能时,对本地算法管理模块私有化缓存的算法包进行清理或加载。

任务调度代码是用来调用不同的任务的代码,不同的推理应用需要不同的环境依赖。在端侧根据业务需求向云侧发起模型部署请求时,依据端侧推理环境选择性的获取算法包的内容。

步骤205、端侧基于推理环境依赖和任务调度代码,生成目标推理环境。

在一些实施例中,推理环境依赖包括运行目标模型所需的算子列表,算子列表是将原始模型转化为所述目标模型的过程中记录的。由于将原始模型转化为目标模型的过程实现了原始模型的精简,相应地,算子列表中也是精简后的算子,即原始模型和目标模型中所需的算子不完全相同,故端侧基于推理环境依赖和任务调度代码,生成的目标推理环境为精简的运行环境。

目标推理环境仅包含目标模型加载推理计算的必要部分,可以实现端侧部署环境体积的最小化。此外,端侧也可直接部署一套通用的推理环境,特异性的算子支持可由算法包动态下发提供。目标推理环境的主要工作包含两个部分:模型结构的解析和依据模型结构及参数进行推理计算,必要时还可调度计算硬件的汇编指令加速计算。

在一些实施例中,将任务调度代码加载于端侧的调度容器,将推理环境依赖加载于端侧的推理引擎,获得目标推理环境。

具体地,为兼容端侧运行环境的碎片化,支持不同运行硬件的高效优化调度,在推理环境之上抽象一个推理引擎用于屏蔽差异,经由业务场景触发后通过任务堆栈智能调度来链接包管理库及推理引擎获得推理结果。抽象的推理引擎对外仅暴露两个接口:1、加载,用于将算法管理模块中的算法包进行拆解加载;2、执行预测,处理输入数据并计算得出直接结果。

推理引擎并不负责对原始数据及模型处理的直接结果做业务化的转换,这部分工作也称作模型预测的前处理和后处理。本申请中由调度容器执行模型预测的前处理和后处理。针对不同的任务进行标准化的调用定义,举例:分类、识别、检测等要求的图像输入及推理输出之间存在着类似的处理操作,调度容器会根据不同的调用参数,选择合适的标准化执行流程。节省业务场景对智能应用的调用门槛,且在多任务调度过程中复用处理逻辑进一步压缩成本。

端侧接收到算法包后,将算法包保存在算法管理模块中,推理引擎将算法管理模块中的算法包进行拆解,获得任务调度代码、推理环境依赖和加密模型文件。推理引擎加载推理环境依赖,调度容器加载任务调度代码,得到最终的目标推理环境。目标推理环境一旦集成至上层应用中即可通过对外暴露的任务接口进行任务调度,相关的业务参数转换由调度容器与上层应用共同完成。

步骤206、端侧对加密模型文件解密,获得所述目标模型。

具体地,从第一加密分片的头部获得随机数,并基于随机数和原始加密串,生成解密密钥。对第一加密分片的尾部中的文件校验码进行校验,并在校验通过时,采用解密密钥对第一加密分片中的第一加密文件内容解密,获得第一文件分片。针对每个第二加密分片,对第二加密分片的尾部中的文件校验码进行校验,并在校验通过时,采用解密密钥对第二加密分片中的第二加密文件内容解密,获得第二文件分片。基于第一文件分片和获得的至少一个第二文件分片,获得目标模型。

由于云侧在进行加密时采用的是对称加密算法,因此在解密时,基于随机数和原始加密串,生成解密密钥与加密密钥相同。针对第一加密分片,先对尾部中的文件校验码进行校验,则说明第一加密分片没有被篡改,故采用解密密钥对第一加密分片中的第一加密文件内容解密,获得第一文件分片。采用同样的方式对第二加密分片进行解密。最后再将第一文件分片和获得的至少一个第二文件分片拼接,获得目标模型。

举例来说,如图4所示,端侧接收到加密模型文件,在识别加密模型文件中的第一个加密分片时,取出第一个加密分片中的前16个字节作为盐值(salt)暂存。然后使用盐值(salt)和原始加密串生成解密密钥。针对第一个加密分片,获取位于尾部的文件校验码。对文件校验码校验通过后,对第一个加密分片进行解密,获得第一个文件分片。采用相同的方法解密获得其他文件分片,再将第一个文件分片和其他文件分片拼接,获得目标模型。

步骤207、端侧在目标推理环境中运行目标模型进行业务预测,获得业务预测结果。

具体地,云侧将加密模型文件、目标模型对应的推理环境依赖和任务调度代码一并发送至端侧,端侧根据推理环境依赖和任务调度代码生成相应的目标推理环境。端侧在接收到云侧发送的加密模型文件后对其进行解密,得到目标模型,将目标模型放入目标推理环境中运行即可得到业务的预测结果。

本申请实施例中,在云侧进行模型训练和转化,可以实现资源的充分利用,减少了端侧的资源消耗。其次,云侧将原始模型转化为通用格式的目标模型,同时将目标模型以及相应的推理环境依赖和任务调度代码,故端侧可以直接基于推理环境依赖和任务调度代码部署推理环境,并运行目标模型,实现模型标准化部署,从而提升了不同平台间的兼容性,以及统一了模型的泛化效果,同时降低模型部署成本。另外,云侧对目标模型加密后再下发至端侧,提高了模型的安全性和防攻击性。

在一些实施例中,在目标推理环境中运行目标模型进行业务预测,获得业务预测结果的过程如图5所示,包括以下步骤:

步骤501、通过调度容器采用标准的模型输入处理流程,对目标业务场景下的推理任务的原始数据进行处理,获得标准格式的模型输入数据,并将模型输入数据输入推理引擎。

具体地,业务场景触发模型推理时,由于场景中可能包含多个推理任务的嵌套或组合,同时也存在并发任务的情形,这时由调度容器进行统一的调度管理,即针对每一类任务给出标准的输入输出规范。针对目标业务场景下的推理任务,该推理任务的原始数据经过统一的标准流程处理后,获得输入推理引擎的模型输入数据。

步骤502、通过推理引擎中的目标模型对模型输入数据进行预测,获得模型输出结果。

步骤503、通过调度容器将模型输出结果转化为目标业务场景下的业务预测结果。

具体地,调度容器将模型输出的模型输出结果整合至业务层级,获得目标业务场景下的业务预测结果。

以文本检测为例,原始数据为相机终端捕获的原始图像,调度容器采用标准的模型输入处理流程对原始图像进行二值化处理、图形学的腐蚀膨胀及尺寸修正等操作,获得模型输入数据,并将模型输入数据输入推理引擎。推理引擎采用目标模型对模型输入数据进行预测,获得模型输出结果,模型输出结果为一系列向量矩阵。调度容器对模型输出结果进行等位间隔的拆分抽取,逐步获取文本区域的像素坐标及置信度。再对像素坐标进行映射转换以及对置信度过滤及裁切,获得文本区域的裁切图像,该文本区域的裁切图像即为最终的业务预测结果。调度容器的上述处理过程中提及的各项图像、图形操作,均可原子化的拼接组合实现不同的效果。

本申请实施例中,采用调度容器执行模型预测的前处理和后处理。针对不同的任务进行标准化的调用定义,故节省了业务场景对智能应用的调用门槛,且在多任务调度过程中复用处理逻辑,从而进一步压缩成本。

在一些实施例中,由于模型训练对数据输入的要求较高,且不可避免的需要对原始数据进行向量转化,而在端侧采集的数据天然的具备场景契合,且可在源头采集时针对数据进行清洗过滤及向量化等特征工程任务,因此,端侧直接将可训练的向量数据发至云端训练,可分担云侧计算资源的同时,可利用场景划分针对性的训练该场景下的数据达到更为适合场景的优化模型。

进一步的,由于特征工程迁移至端侧计算,可在特征工程中引入特定的加密或噪声参数,这些噪声在训练时对模型的影响微乎其微,但在模型训练完成进行正向推理时需要加入同样的噪声才能得到正确的输出结果,该方法可保护模型的训练参数不被盗取。配合前面提及的模型加密下发可更进一步的保护端侧模型。同时在特定场景中也可起到敏感信息保护的作用。

鉴于此,本申请中端侧定期将调度容器处理获得的模型输入数据上传至云侧,以使云侧基于获得的模型输入数据对训练数据进行补充,并采用补充后的训练数据对模型仓库中的模型进行更新。

具体地,端侧上传的模型输入数据为:对原始数据进行洗过滤及向量化等特征工程任务后的数据。在一些实施例中,还可以在模型输入数据中引入特定的加密或噪声参数,实现对模型的训练参数以及敏感信息的保护。

在实际应用中,部署的前期数据的收集主要来自开源数据集,在获得基本能力的部署中期阶段,使用实际场景应用中采集的数据,在部署后期可针对性的选择特殊场景中的数据,补充训练数据的丰富程度。数据的收集经由日志组件配合,同步的采集端侧使用标签,可最大化的利用各个端侧的数据。

本申请实施例中,端侧定期将调度容器处理获得的模型输入数据上传至云侧,实现全闭环架构。其次,由于端侧进行数据标准化处理,实现了数据脱敏、隐私保护、算力分散。另外,采用端侧定期上传的数据对训练数据进行补充,以对模型仓库中的模型不断调优,从而提高模型的预测效果。

为了更好地解释本申请实施例,下面结合具体实施场景介绍本申请实施例提供的一种模型的端侧部署方法,如图6所示,包括以下步骤:

针对文本检测场景,云侧接收端侧发送的模型部署请求,从模型仓库中选择模型部署请求对应的原始模型,然后将原始模型其转化为通用格式的文本检测模型。对文本检测模型加密,获得加密模型文件。通过配置模块配置文本检测模型的推理环境依赖以及任务调度代码。然后通过管理平台将包含加密模型文件、推理环境依赖以及任务调度代码组成的算法包下发至端侧的算法管理模块。

端侧在算法管理模块对算法包进行拆解,获得加密模型文件、推理环境依赖以及任务调度代码。对加密模型文件进行解密,获得文本检测模型。调度容器加载任务调度代码,推理引擎加载推理环境依赖。

上层应用针对本文检测场景触发调度容器,并上传文本检测场景下的推理任务的原始图像至调度容器。调度容器采用标准的模型输入处理流程,对原始图像进行处理,获得标准格式的模型输入数据。并将模型输入数据输入推理引擎。推理引擎基于文本检测模型对模型输入数据进行预测,获得模型输出结果。调度容器将模型输出结果转化为文本检测场景下的业务结果,即文本区域的裁切图像,然后将业务结果返回上层应用。

另外,端侧通过日志组件将采集的数据记录在数据采集模块;调度容器同样将标准格式的模型输入数据记录在数据采集模块中。数据采集模块定期将记录的数据上传至云侧。云侧基于获得的数据对训练数据进行补充,并采用补充后的训练数据对模型仓库中的模型进行更新。

基于相同的技术构思,本申请实施例提供了一种模型的端侧部署装置,应用于云侧,如图7所示,该装置700包括:

第一接收模块701,用于接收端侧发送的模型部署请求;

获取模块702,用于基于所述模型部署请求,从模型仓库中获取相应的原始模型;

加密模块703,用于将所述原始模型转化为通用格式的目标模型,并对所述目标模型加密,获得加密模型文件;

第一发送模块704,用于将所述加密模型文件、所述目标模型对应的推理环境依赖和任务调度代码发送至端侧,以使所述端侧基于所述推理环境依赖和所述任务调度代码,生成目标推理环境;对所述加密模型文件解密,获得所述目标模型,并在所述目标推理环境中运行所述目标模型进行业务预测,获得业务预测结果。

可选地,所述推理环境依赖包括运行所述目标模型所需的算子列表,所述算子列表是将所述原始模型转化为所述目标模型的过程中记录的。

可选地,所述加密模块703具体用于:

将所述目标模型划分为多个文件分片,并采用加密因子对每个文件分片进行加密,获得所述加密模型文件。

可选地,所述加密模块703具体用于:

基于随机数和原始加密串,生成加密密钥;

针对所述多个文件分片中的第一文件分片,采用所述加密密钥对所述第一文件分片进行加密,获得第一加密文件内容,并在所述第一加密文件内容的头部添加所述随机数,以及在所述第一加密文件内容的尾部添加相应的文件校验码,获得第一加密分片;

针对除所述第一文件分片之外的每个第二文件分片,采用所述加密密钥对所述第二文件分片进行加密,获得第二加密文件内容,并在所述第二加密文件内容的尾部添加相应的文件校验码,获得第二加密分片;

基于所述第一加密分片和获得的至少一个第二加密分片,获得所述加密模型文件。

一方面,本申请实施例提供了一种模型的端侧部署装置,应用于端侧,如图8所示,该装置800包括:

第二发送模块801,向云侧发送模型部署请求,以使所述云侧基于所述模型部署请求,从模型仓库中获取相应的原始模型;以及将所述原始模型转化为通用格式的目标模型,并对所述目标模型加密,获得加密模型文件;

第二接收模块802,用于接收所述云侧发送的所述加密模型文件、所述目标模型对应的推理环境依赖和任务调度代码;

生成模块803,用于基于所述推理环境依赖和所述任务调度代码,生成目标推理环境;

解密预测模块804,用于对所述加密模型文件解密,获得所述目标模型,并在所述目标推理环境中运行所述目标模型进行业务预测,获得业务预测结果。

可选地,所述加密模型文件中包括第一加密分片和至少一个第二加密分片;

所述解密预测模块804具体用于:

从所述第一加密分片的头部获得随机数,并基于所述随机数和原始加密串,生成解密密钥;

对所述第一加密分片的尾部中的文件校验码进行校验,并在校验通过时,采用所述解密密钥对所述第一加密分片中的第一加密文件内容解密,获得第一文件分片;

针对每个第二加密分片,对所述第二加密分片的尾部中的文件校验码进行校验,并在校验通过时,采用所述解密密钥对所述第二加密分片中的第二加密文件内容解密,获得第二文件分片;

基于所述第一文件分片和获得的至少一个第二文件分片,获得所述目标模型。

可选地,所述生成模块803具体用于:

将所述任务调度代码加载于所述端侧的调度容器,将所述推理环境依赖加载于所述端侧的推理引擎,获得目标推理环境。

可选地,所述解密预测模块804具体用于:

通过所述调度容器采用标准的模型输入处理流程,对目标业务场景下的推理任务的原始数据进行处理,获得标准格式的模型输入数据,并将所述模型输入数据输入所述推理引擎;

通过所述推理引擎中的所述目标模型对所述模型输入数据进行预测,获得模型输出结果;

通过所述调度容器将所述模型输出结果转化为所述目标业务场景下的业务预测结果。

可选地,所述解密预测模块804还用于:

定期将所述调度容器处理获得的模型输入数据上传至所述云侧,以使所述云侧基于获得的模型输入数据对训练数据进行补充,并采用补充后的训练数据对所述模型仓库中的模型进行更新。

基于相同的技术构思,本申请实施例提供了一种计算机设备,计算机设备可以是服务器,如图9示,包括至少一个处理器901,以及与至少一个处理器连接的存储器902,本申请实施例中不限定处理器901与存储器902之间的具体连接介质,图9处理器901和存储器902之间通过总线连接为例。总线可以分为地址总线、数据总线、控制总线等。

在本申请实施例中,存储器902存储有可被至少一个处理器901执行的指令,至少一个处理器901通过执行存储器902存储的指令,可以执行上述模型的端侧部署方法中所包括的步骤。

其中,处理器901是计算机设备的控制中心,可以利用各种接口和线路连接计算机设备的各个部分,通过运行或执行存储在存储器902内的指令以及调用存储在存储器902内的数据,从而进行模型的端侧部署。可选的,处理器901可包括一个或多个处理单元,处理器901可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器901中。在一些实施例中,处理器901和存储器902可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。

处理器901可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。

存储器902作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器902可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器902是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器902还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。

基于同一发明构思,本申请实施例提供了一种计算机可读存储介质,其存储有可由计算机设备执行的计算机程序,当程序在计算机设备上运行时,使得计算机设备执行上述模型的端侧部署方法的步骤。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

技术分类

06120115687684