CN111832036A - 数据处理方法、装置、存储介质和电子设备 - Google Patents

数据处理方法、装置、存储介质和电子设备 Download PDF

Info

Publication number
CN111832036A
CN111832036A CN201910640962.6A CN201910640962A CN111832036A CN 111832036 A CN111832036 A CN 111832036A CN 201910640962 A CN201910640962 A CN 201910640962A CN 111832036 A CN111832036 A CN 111832036A
Authority
CN
China
Prior art keywords
data
file
model
service
model input
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.)
Pending
Application number
CN201910640962.6A
Other languages
English (en)
Inventor
肖中中
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Qisheng Technology Co Ltd
Original Assignee
Beijing Qisheng Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Qisheng Technology Co Ltd filed Critical Beijing Qisheng Technology Co Ltd
Priority to CN201910640962.6A priority Critical patent/CN111832036A/zh
Publication of CN111832036A publication Critical patent/CN111832036A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本公开实施例公开了一种数据处理方法、装置、存储介质和电子设备,该方法包括:基于应用模型和对应的配置文件进行初始化;接收业务数据并转换为模型输入数据和配置数据;将所述模型输入数据和配置数据进行加密处理;按照预定数据协议将加密文件传输给远程服务进程。本公开实施例能够基于android平台,通过设置基于机器学习推理框架的适配层,从而构建隔离的适配层推理运行环境,通过接口支持多路推理框架并行执行,屏蔽模型推理细节,从而提高兼容性;本公开实施例还能基于集成运行环境并通过独立进程单独执行,稳定性较高;通过加密和解密使得模型文件的相关数据在传输过程中保证安全性和准确性。

Description

数据处理方法、装置、存储介质和电子设备
技术领域
本公开涉及信息处理技术领域,特别涉及一种用于机器学习推理框架的数据处理方法、装置、存储介质和电子设备。
背景技术
目前,对于现有终端智能的实践方式通常是从支持更多算子、优化性能、提升与其他平台兼容能力为主要方向,比如TensorFlow、caffe、NCNN等,但是这些方式都具有以下共性问题:
1、兼容性较差,这些方式的推理框架训练的模型都是特定格式,跨平台转换需要通过工具链转换支持,该过程可能出现由于目标平台的算子不支持以及算子实现方式的差异导致模型无法应用到其他框架平台。
2、稳定性差,在Android应用空间范围内,通常业务逻辑实在一个用户进程中执行,在复杂以及碎片化的场景下,如果推理执行操作或数据预处理、后处理发生异常,通常都是底层库崩溃,会直接导致应用服务崩溃退出。
3、易用性差,不同的推理框架提供自己的API,终端智能在终端侧落地实现,技术实施需要关注算法框架使用原理,学习框架编译、模型集成流程、接口等一系列问题。
4、安全性差,模型文件可能会被解析,进而分析处模型设计的思路和模型中各层的信息。
发明内容
有鉴于此,本公开实施例提出了一种用于推理框架的数据处理方法、装置、存储介质和电子设备,用以解决现有技术中现在的上述兼容性差、稳定性差、易用性差以及安全性差的问题。
一方面,本公开实施例提出一种数据处理方法,包括:基于应用模型和对应的配置文件进行初始化;接收业务数据并转换为模型输入数据和配置数据;将所述模型输入数据和配置数据进行加密处理;按照预定数据协议将加密文件传输给远程服务进程。
在一些实施例中,所述接收业务数据转换为模型输入数据和配置数据包括:转换所述业务数据的格式获得模型输入初步数据和配置数据;将所述模型输入初步数据和配置数据拆分为预定大小的数据片段;将所述数据片段进行对象序列化处理获得所述模型输入数据和配置数据。
在一些实施例中,所述将所述模型输入数据和配置数据进行加密处理包括:设置加密参数,构建头文件;生成包装文件并按照预定方式循环读取所述包装文件;通过预定方式进行加密获得加密文件。
在一些实施例中,所述方法还包括:接收经过解析和对象序列化处理的模型输出结果;针对所述模型输出结果执行反对象序列化操作并传送给业务侧。
另一方面,本公开实施例提出一种数据处理装置,包括:初始化模块,用于基于应用模型和对应的配置文件进行初始化;转换模块,用于接收将业务数据并转换为模型输入数据和配置数据;加密模块,用于将所述模型输入数据和配置数据进行加密处理;传输模块,用于按照预定数据协议将加密文件传输给远程服务进程。
在一些实施例中,所述转换模块包括:转换单元,用于转换所述业务数据的格式获得模型输入初步数据和配置数据;拆分单元,用于将所述模型输入初步数据和配置数据拆分为预定大小的数据片段;处理单元,用于将所述数据片段进行对象序列化处理获得模型输入数据和配置数据。
在一些实施例中,所述加密模块包括:构建单元,用于设置加密参数,构建头文件;读取单元,用于生成包装文件并按照预定方式循环读取所述包装文件;加密单元,用于通过预定方式进行加密获得加密文件。
在一些实施例中,所述装置还包括:接收模块,用于接收经过解析和对象序列化处理的模型输出结果;执行模块,用于针对所述模型输出结果执行反对象序列化操作并传送给业务侧。
再一方面,本公开实施例提出一种存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述任一项技术方案中所述方法的步骤。
再一方面,本公开实施例提出一种电子设备,至少包括存储器、处理器,所述存储器上存储有计算机程序,其特征在于,所述处理器在执行所述存储器上的计算机程序时实现上述任一项技术方案中所述方法的步骤。
本公开实施例能够基于android平台,通过设置基于机器学习推理框架的适配层,从而构建隔离的适配层推理容器,通过接口支持多路推理框架并行执行,屏蔽模型推理细节,从而提高兼容性;本公开实施例基于集成运行环境实现,通过独立进程单独执行,稳定性较高;通过加密和解密使得模型文件的相关数据在传输过程中保证安全性和准确性。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本公开实施例提供的数据处理方法的示意图;
图2为本公开实施例提供的数据处理方法的流程图;
图3为本公开实施例提供的数据处理方法中业务数据转换的流程图;
图4为本公开实施例提供的数据处理方法中对数据加密的流程图;
图5为本公开实施例提供的数据处理方法中对数据加密的完整流程图;
图6为本公开实施例提供的数据处理方法中服务侧处理数据的流程图;
图7为本公开实施例提供的数据处理方法中对加密文件解密的流程图
图8为本公开实施例提供的数据处理方法中对加密文件解密的完整流程图;
图9为本公开实施例提供的数据处理装置的结构框图;
图10为本公开实施例提供的电子设备的结构框图。
附图标记:
10-初始化模块;20-转换模块;30-加密模块;40-传输模块。
具体实施方式
为了使得本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
为了保持本公开实施例的以下说明清楚且简明,本公开省略了已知功能和已知部件的详细说明。
如图1所示,图1示出了本实施例涉及的用于推理框架的并通过集成运行环境实现的数据处理方法的示意图,这种数据处理方法针对机器学习推理框架提供数据处理服务,其中,推理框架是指支持机器学习,针对机器学习大量运算进行推理的优化和运行时所处环境的框架系统,主流的推理框架有TensorFlow、Caffe、Pytorch等。
在用于终端设备的人工智能(AoE)的开发过程中,一般在业务侧,由人工智能开发人员对用于终端设备的人工智能应用模型进行开发,开发完毕的人工智能应用模型的相关文件和数据将会传输至服务侧(即Server侧)并运用在服务侧,也就是在服务侧供终端设备使用。在服务侧或者用户侧,用户通过在嵌入式计算机系统或设备等终端设备中使用由业务侧开发的人工智能应用模型,其中,这里所说的嵌入式计算机系统或设备等终端设备可以是例如手机终端、车载设备、摄像头等设备。
在终端设备使用的人工智能应用模型一般通过多路推理框架进行加载,例如可以通过TensorFlow Lite、NCNN、Core ML等推理框架加载应用模型,并辅助以用于图形计算、CPU加速、量子支持等模块。因此,在业务侧开发出的与模型文件相关的业务数据需要被传输至服务侧的远程服务进程以供在通过推理框架加载应用模型的过程中使用。
考虑到在业务侧和服务侧之间对于模型文件等业务数据的数据传输的便携性、通用性以及安全性等的要求,需要在业务侧和服务侧之间构建适用于机器学习推理框架加载应用模型的适配层,该适配层可设置在例如服务器中,通过该适配层对于业务数据进行传输和处理,例如可通过软件开发工具包(SDK)的方式在集成运行环境中实现,通过SDK的方式能够提供统一、精简的接口调用,也就是将底层推理和业务封装在独立进程中执行,实际上就是设置了隔离的推理运行环境,这样不对宿主业务产生稳定性的影响。例如,如果在对模型的推理框架进行数据处理的过程中出现异常,则独立进程退出即可,不会影响宿主App的稳定运行。这里的独立进程被称为远程服务(Remote Service)程,它不受其它进程影响,Android系统提供了AIDL(Android Interface Definition Language,接口描述语言)工具来帮助进程间接口的建立。
本公开的第一实施例涉及用于机器学习的推理框架的数据处理方法,其通过集成运行环境实现,对应的方法如图2所示,具体包括以下步骤:
S101,基于应用模型和对应的配置文件进行初始化。
为了开发能够在终端设备使用的人工智能服务,人工智能开发人员要在业务侧开发或设置用于服务侧的终端设备使用的人工智能应用模型、基于该应用模型的配置文件、数据转换协议以及人工智能判断逻辑等,这些数据需要通过适配层传输给服务侧,以便在服务侧进行推理框架加载的过程中使用,适配层提供数据接口,以支持服务侧多路推理框架的并行执行。
进一步地,可以在业务侧的业务模块中设置业务接口,以便于业务侧通过该业务接口传输业务数据,并最终通过数据处理使得服务器侧读取模型文件和对应的配置文件,适配层采设置数据接口与业务侧的业务接口相对应,其可以是与机器学习无关的clientAPI接口,使得数据传输与模型和平台无关。
在本步骤中,需要基于应用模型和配置文件创建数据处理和传输的环境,即在适配层环境中基于应用模型和对应的配置文件进行初始化操作,具体地,可以通过宿主端App构建初始化配置路径的方式实现。
S102,接收业务数据并转换为模型输入数据和配置数据。
需要传输给服务侧的与模型相关的业务数据由人工智能开发人员在业务侧预先生成,生成后的业务数据可以通过业务侧的业务模块中的业务接口传输至适配层。考虑到与模型相关的业务数据需要在服务侧能够准确地被推理框架加载,同时对于AIDL数据传输格式类型的约束,因此,业务数据在适配层需要被转换为符合推理框架要求的模型输入数据和配置数据,这样在服务侧则不需要进行模型的转换和算子适配,直接通过例如TensorFlow Lite的推理框架加载相关数据即可,具体参加图3所示,包括以下步骤:
S201,转换所述业务数据的格式获得模型输入初步数据和配置数据。
为了便于适配层与业务侧进行数据传输,具体地,可以在适配层中设置业务注入模块以接收在业务侧生成的业务数据。为了使得业务数据经过适配层传输至服务侧,能够被服务侧的推理框架直接加载,因此,需要将业务数据转换为具有推理框架可以直接加载的格式的模型输入初步数据和配置数据,例如,如果业务数据是Vision Image,则转换后的模型输入初步数据是Float[],在数据格式的转换过程中,为了能够实现批量快速转换,可以在转换前后的数据格式之间设立映射关系,从而实现数据格式的批量转换。
S202,将所述模型输入初步数据和配置数据拆分为预定大小的数据片段。
由于业务数据一般涉及到人工智能应用模型的模型文件数据、对应的配置文件,数据传输协议文件等大量文件,因此,为了加快数据传输的时效性、提升数据传输的稳定性和安全性,需要将业务数据进行分割操作以通过字节数组的形式传输,进而满足数据传输协议的要求。因此,需要将完成数据格式转换的模型输入初步数据和配置数据拆分为预定大小的数据片段。优选的是,可以通过设置使得拆分后的数据片段的大小不超过400kb。
S203,将所述数据片段进行对象序列化处理获得模型输入数据和配置数据。
对于动态数据的传输需要将数据进行对象序列化处理,以保证在服务侧接收到被拆分的数据片段后能够准确快速的组装成模型文件。对于将数据片段进行对象序列化处理,例如可以采用kryo对象序列化方法,以有效降低数据序列化的耗时,通过实际的批处理了测试,kyro对象序列化方法的耗时为Java标准对象序列化方法耗时的1/7。通过对数据片段进行对象序列化处理以获得模型输入数据,以供后期进行传输。
S103,将所述模型输入数据和配置数据进行加密处理。
在上述步骤S102中,为了业务数据的传输以及在服务侧处理数据的需要,将业务数据转换为模型输入数据和配置数据。在将模型输入数据和配置数据向服务侧进行传输之前,为了保证数据传输的安全性和准确性,需要对要传输的数据进行加密处理,加密方法参见图4和图5所示,具体包括以下步骤:
S301,设置加密参数,构建头文件。
在本步骤中,首先需要针对要传输的数据设置加密参数,其中的加密参数包括加密版本索引值、文件长度、文件MD5值等,这里,加密版本索引值是指加密方法的版本索引值,例如,加密版本索引值是1,则是指可以采用索引值为1的AES-128/CBC/No padding的加密方法,其中,采用CBC模式需要预先提供AES KEY和初始的IV,并且需要对加密后的数据进行swap处理,如果对于数据的加密版本的索引值大于适配层能支持的用于解密的解密版本的索引值,则在解密时出现失败,则需要将适配层的加密工具进行更新;文件长度是指模型输入数据或配置数据中文件的原始长度;文件的MD5值是指模型输入数据或配置数据中文件的原始MD5值,需要解密的模型输入数据或配置数据中文件的MD5需要与加密时设置的MD5值相同。作为一种优选的实施方式,如下表所示,加密版本的索引值是1byte大小的数字,文件长度是4byte大小的数字,文件MD5值是16byte大小的数字。通过设置加密参数,构建头文件,头文件中包含了所设置的加密参数,这样,无论在加密过程中,还是在服务侧的解密过程中,通过解析头文件即可获取加密的相关参数。
S302,生成包装文件并按照预定方式循环读取所述包装文件。
在本步骤中,首先生成利于数据传输的包装文件,并且通过预定方式循环读取包装文件,在进行循环读取包装文件时的循环次数为n,在进行循环读取时,头文件中第n位与第n次循环数据的第一位互换。作为优选,n可以设置为n小于等于21。
S303,通过预定方式进行加密获得加密文件。
由于在步骤S301中设置了针对加密过程的加密参数,因此在本步骤中对与模型相关的包装文件进行实际加密时,不但基于加密参数对应的方式进行,还可以按照预定的加密方式进行加密操作,例如,可以通过AES-128/CBC/no padding的方式进行加密操作,这种预定方式是与加密参数中的加密版本的索引值相关。
S104,按照预定数据协议将加密文件传输给远程服务进程。
在适配层向服务侧传输数据之前,可以通过AIDL(Android InterfaceDefinition Language,接口描述语言)工具来帮助建立接口,这样以AIDL方式实现远程服务(Remote Service),以有利于在独立进程内实现推理框架的加载。
在将经过加密的模型输入数据和配置数据向服务侧的远程服务进程进行数据传输的过程中,可以按照预定的数据传输协议进行,例如IPC数据传输协议,该IPC数据传输协议的各项参数可以预先制定。作为优选,该预定数据传输协议与对业务数据的拆分方式、数据片段的大小限制以及对模型输入数据和配置数据的加密方式之间建立对应关系。作为优选,单次数据传输不能超过1M大小。此外,在数据传输时,可以将适配层和服务侧之间交互的数据接口层做封装处理,以便于更准确地进行数据传输。
本公开实施例能够基于android平台,通过设置基于机器学习推理框架的适配层,从而构建隔离的适配层推理容器,通过接口支持多路推理框架并行执行,屏蔽模型推理细节,从而提高兼容性;本公开实施例基于集成运行环境实现,通过独立进程单独执行,稳定性较高;通过加密和解密使得模型文件的相关数据在传输过程中保证安全性和准确性。
通过上述实施例,通过构建适配层使得业务侧的业务数据被转换为适合推理框架加载的模型输入数据和配置数据,以便于在服务侧被推理框架加载,从而能够执行人工智能的推理逻辑。服务侧在接收到经过加密的模型输入数据和配置数据后,进一步地进行处理,参见图6所示,包括以下步骤:
S401,对接收到的加密文件进行解密和组装。
服务侧在接收到适配层传输的经过加密的模型输入数据和配置数据之后,首先需要针对该加密文件进行解密,解密过程与加密过程相互对应,解密方法参见图7和8所示,由于其与加密方法相互对应,对于其详细步骤参见图8,在此不再赘述,简要包括以下步骤:
S501,读取加密文件的加密参数。
由于这里的加密参数设置在头文件中,因此,通过读取加密文件的头文件可以获得加密文件的具体参数,例如,加密文件的索引值、文件长度、文件MD5值等。
S502,对加密文件进行解密。
在对加密文件进行解密时采用的方式应与加密方式相对应,例如,如果在加密过程中通过AES-128/CBC/no padding的方式进行加密操作,则在本步骤中采用AES/CBC的模式进行解密。
S503,比较文件MD5值。
最后,通过比较头文件中的MD5值判断解密的模型文件与加密的模型文件一致,以确保传输文件的一致性和安全性。
在将加密文件进行解密后,考虑到目前的数据都是以数据片段的形式存在,在本步骤中,需要对经过解密的数据按照顺序进行组装。
S402,基于推理框架加载解密后的数据并执行模型的推理逻辑。
由于传输到服务侧的模型文件涉及的数据已经被转换为适于推理框架加载的数据,并且在步骤S401中已经完成了对数据片段的合并和组装,在本步骤中,可以基于推理框架加载解密后的数据,并基于独立进程按照模型的推理逻辑进行执行操作,执行算法推理以在终端设备实现人工智能服务,最终生成模型输出结果。
S403,对模型输出结果进行解析和序列化并返回。
在步骤S402中对于模型的推理逻辑执行完毕后,需要将模型输出结果返回,这就需要对模型输出结果进行解析和对象序列化操作。
在本公开的第二实施例中,同样提供一种用于推理框架的数据处理方法,其通过集成运行环境实现,其中,当服务侧加载了推理框架,执行模型的推理逻辑之后,生成的模型输出结果被返回至适配层后,还包括以下步骤:
S105,接收经过解析和对象序列化处理的模型输出结果。
在本步骤中,适配层可以通过适配层的接口接收到在服务侧完成解析和序列化处理的模型输出结果。
S106,针对所述模型输出结果执行反对象序列化操作并传送给业务侧。
在本步骤中,需要对模型输出结果进行反对象序列化处理以通过适配层的clientAPI接口传输给业务侧的业务接口,完成模型输出结果的数据传输,在业务侧,人工智能开发人员可以基于模型输出结果对应用模型和配置文件进行修改和调试,以不断完善终端设备人工智能服务的质量。
图9为本公开第三实施例提供的用于推理框架的数据处理装置的结构框图,其通过集成运行环境实现,参见图9所示,本公开实施例的数据处理装置具体可包括初始化模块10、转换模块20、加密模块30以及传输模块40,上述模块相互耦合,其中:
初始化模块10,用于基于应用模型和对应的配置文件进行初始化。
为了开发能够在终端设备使用的人工智能服务,人工智能开发人员要在业务侧开发或设置用于服务侧的终端设备使用的人工智能应用模型、基于该应用模型的配置文件、数据转换协议以及人工智能判断逻辑等,这些数据需要通过适配层传输给服务侧,以便在服务侧进行推理框架加载的过程中使用,适配层提供数据接口,以支持服务侧多路推理框架的并行执行。
进一步地,可以在业务侧的业务模块中设置业务接口,以便于业务侧通过该业务接口传输业务数据,并最终通过数据处理使得服务器侧读取模型文件和对应的配置文件,适配层采设置数据接口与业务侧的业务接口相对应,其可以是与机器学习无关的clientAPI接口。
通过初始化模块10基于应用模型和配置文件创建数据处理和传输的环境,即在适配层环境中基于应用模型和对应的配置文件进行初始化操作,具体地,可以通过宿主端App构建初始化配置路径的方式实现。
转换模块20,用于接收业务数据并转换为模型输入数据和配置数据。
需要传输给服务侧的与模型相关的业务数据由人工智能开发人员在业务侧预先生成,生成后的业务数据可以通过业务侧的业务模块中的业务接口传输至适配层。考虑到与模型相关的业务数据需要在服务侧能够准确地被推理框架加载,因此,业务数据在适配层需要被转换为符合推理框架要求的模型输入数据和配置数据,这样在服务侧则不需要进行模型的转换和算子适配,直接通过例如TensorFlow Lite的推理框架加载相关数据即可,转换模块20具体包括以下单元:
转换单元,用于转换所述业务数据的格式获得模型输入初步数据和配置数据。
为了便于适配层与业务侧进行数据传输,具体地,可以在适配层中设置业务注入模块以接收在业务侧生成的业务数据。为了使得业务数据经过适配层传输至服务侧,能够被服务侧的远程服务进程的机器学习推理框架直接加载,因此,需要将业务数据转换为具有推理框架可以直接加载的格式的模型输入初步数据和配置数据,例如,如果业务数据是VisionImage,则转换后的模型输入初步数据是Float[],在数据格式的转换过程中,为了能够实现批量快速转换,可以在转换前后的数据格式之间设立映射关系,从而实现数据格式的批量转换。
拆分单元,用于将所述模型输入初步数据和配置数据拆分为预定大小的数据片段。
由于业务数据一般涉及到人工智能应用模型的模型文件数据、对应的配置文件,数据传输协议文件等大量文件,因此,为了加快数据传输的时效性、提升数据传输的稳定性和安全性,需要将业务数据进行分割操作以通过字节数组的形式传输,进而满足数据传输协议的要求。因此,需要将完成数据格式转换的模型输入初步数据和配置数据拆分为预定大小的数据片段。优选的是,可以通过设置使得拆分后的数据片段的大小不超过400kb。
处理单元,将所述数据片段进行对象序列化处理获得模型输入数据和配置数据。
对于动态数据的传输需要将数据进行对象序列化处理,以保证在服务侧接收到被拆分的数据片段后能够准确快速的组装成模型文件。对于将数据片段进行对象序列化处理,例如可以采用kryo对象序列化方法,以有效降低数据序列化的耗时,通过实际的批处理了测试,kyro对象序列化方法的耗时为Java标准对象序列化方法耗时的1/7。通过对数据片段进行对象序列化处理以获得模型输入数据,以供后期进行传输。
加密模块30,用于将所述模型输入数据和配置数据进行加密处理。
为了业务数据的传输以及在服务侧处理数据的需要,通过转换模块20将业务数据转换为模型输入数据和配置数据。在将模型输入数据和配置数据向服务侧进行传输之前,为了保证数据传输的安全性和准确性,需要对要传输的数据进行加密处理,加密模块30包括以下单元:
构建单元,用于设置加密参数,构建头文件。
通过构建单元,首先需要针对要传输的数据设置加密参数,其中的加密参数包括加密版本索引值、文件长度、文件MD5值等,这里,加密版本索引值是指加密方法的版本索引值,例如,加密版本索引值是1,则是指可以采用索引值为1的AES-128/CBC/No padding的加密方法,其中,采用CBC模式需要预先提供AES KEY和初始的IV,并且需要对加密后的数据进行swap处理,如果对于数据的加密版本的索引值大于适配层能支持的用于解密的解密版本的索引值,则在解密时出现失败,则需要将适配层的加密工具进行更新;文件长度是指模型输入数据或配置数据中文件的原始长度;文件的MD5值是指模型输入数据或配置数据中文件的原始MD5值,需要解密的模型输入数据或配置数据中文件的MD5需要与加密时设置的MD5值相同。作为一种优选的实施方式,如下表所示,加密版本的索引值是1byte大小的数字,文件长度是4byte大小的数字,文件MD5值是16byte大小的数字。通过设置加密参数,构建头文件,头文件中包含了所设置的加密参数,这样,无论在加密过程中,还是在服务侧的解密过程中,通过解析头文件即可获取加密的相关参数。
读取单元,用于生成包装文件并按照预定方式循环读取所述包装文件。
通过读取单元,首先生成利于数据传输的包装文件,并且通过预定方式循环读取包装文件,在进行循环读取包装文件时的循环次数为n,在进行循环读取时,头文件中第n位与第n次循环数据的第一位互换。作为优选,n可以设置为n小于等于21。
加密单元,用于通过预定方式进行加密获得加密文件。
由于通过构建单元设置了针对加密过程的加密参数,因此通过加密单元对与模型相关的包装文件进行实际加密时,不但基于加密参数对应的方式进行,还可以按照预定的加密方式进行加密操作,例如,可以通过AES-128/CBC/no padding的方式进行加密操作,这种预定方式是与加密参数中的加密版本的索引值相关。
传输模块40,用于按照预定数据协议将加密文件传输给远程服务进程。
在将经过加密的模型输入数据和配置数据向服务侧的远程服务进程进行数据传输的过程中,可以按照预定的数据传输协议进行,例如IPC数据传输协议,该IPC数据传输协议的各项参数可以预先制定。作为优选,该预定数据传输协议与对业务数据的拆分方式、数据片段的大小限制以及对模型输入数据和配置数据的加密方式之间建立对应关系。此外,在数据传输时,可以将适配层和服务侧之间交互的数据接口层做封装处理,以便于更准确地进行数据传输。
本公开实施例能够基于android平台,通过设置基于机器学习框架的适配层,从而构建隔离的适配层推理容器,通过接口支持多路推理框架并行执行,屏蔽模型推理细节,从而提高兼容性;本公开实施例基于集成运行环境执行,通过独立进程单独执行,稳定性较高;通过加密和解密使得模型文件的相关数据在传输过程中保证安全性和准确性。
通过上述实施例,通过构建适配层使得业务侧的业务数据被转换为适合推理框架加载的模型输入数据和配置数据,以便于在服务侧被推理框架加载,从而能够执行人工智能的推理逻辑。
在本公开的第四实施例中,同样提供一种用于推理框架的数据处理装置,其通过集成运行环境实现,其中,当服务侧的远程服务进程加载了推理框架,执行模型的推理逻辑之后,生成的模型输出结果被返回至适配层后,该数据处理装置还包括以下模块:
接收模块,接收经过解析和对象序列化处理的模型输出结果。
通过接收模块,适配层接收到在服务侧完成解析和序列化处理的模型输出结果,
执行模块,针对所述模型输出结果执行反对象序列化操作并传送给业务侧。
通过执行模块需要对模型输出结果进行反对象序列化处理以通过适配层的client API接口传输给业务侧的业务接口,完成模型输出结果的数据传输,在业务侧,人工智能开发人员可以基于模型输出结果对应用模型和配置文件进行修改和调试,以不断完善终端设备人工智能服务的质量。
本公开第五实施例提供了一种存储介质,该存储介质为计算机可读介质,存储有计算机程序,该计算机程序被处理器执行时实现本公开任意实施例提供的方法,包括如下步骤S11至S14:
S11,基于应用模型和对应的配置文件进行初始化;
S12,接收业务数据并转换为模型输入数据和配置数据;
S13,将所述模型输入数据和配置数据进行加密处理;
S14,按照预定数据协议将加密文件传输给远程服务进程。
计算机程序被处理器执行接收业务数据并转换为模型输入数据和配置数据时,具体被处理器执行如下步骤:转换所述业务数据的格式获得模型输入初步数据和配置数据;将所述模型输入初步数据和配置数据拆分为预定大小的数据片段;将所述数据片段进行对象序列化处理获得所述模型输入数据和配置数据。
计算机程序被处理器执行将所述模型输入数据和配置数据进行加密处理时,还被处理器执行如下步骤:设置加密参数,构建头文件;生成包装文件并按照预定方式循环读取所述包装文件;通过预定方式进行加密获得加密文件。
计算机程序还被处理器执行如下步骤:接收经过解析和对象序列化处理的模型输出结果;针对所述模型输出结果执行反对象序列化操作并传送给业务侧。
本公开实施例能够基于android平台,通过设置基于机器学习推理框架的适配层,从而构建隔离的适配层推理容器,通过接口支持多路推理框架并行执行,屏蔽模型推理细节,从而提高兼容性;本公开实施例基于集成运行环境实现,通过独立进程单独执行,稳定性较高;通过加密和解密使得模型文件的相关数据在传输过程中保证安全性和准确性。
本公开第六实施例提供了一种电子设备,该电子设备的结构示意图可以如图10所示,至少包括存储器901和处理器902,存储器901上存储有计算机程序,处理器902在执行存储器901上的计算机程序时实现本公开任意实施例提供的方法。示例性的,电子设备计算机程序步骤如下S21至S24:
S21,基于应用模型和对应的配置文件进行初始化;
S22,接收业务数据并转换为模型输入数据和配置数据;
S23,将所述模型输入数据和配置数据进行加密处理;
S24,按照预定数据协议将加密文件传输给远程服务进程。
处理器在执行存储器上存储的接收业务数据并转换为模型输入数据和配置数据时,还执行如下计算机程序:转换所述业务数据的格式获得模型输入初步数据和配置数据;将所述模型输入初步数据和配置数据拆分为预定大小的数据片段;将所述数据片段进行对象序列化处理获得所述模型输入数据和配置数据。
处理器在执行存储器上存储的所述模型输入数据和配置数据进行加密处理时,还执行如下计算机程序:设置加密参数,构建头文件;生成包装文件并按照预定方式循环读取所述包装文件;通过预定方式进行加密获得加密文件。
处理器在执行存储器上存储的计算机程序时,还执行如下计算机程序:接收经过解析和对象序列化处理的模型输出结果;针对所述模型输出结果执行反对象序列化操作并传送给业务侧。
本公开实施例能够基于android平台,通过设置基于机器学习推理框架的适配层,从而构建隔离的适配层推理运行环境,通过接口支持多路推理框架并行执行,屏蔽模型推理细节,从而提高兼容性;本公开实施例基于集成运行环境实现,通过独立进程单独执行,稳定性较高;通过加密和解密使得模型文件的相关数据在传输过程中保证安全性和准确性。
在一些实施方式中,客户端、服务器可以利用诸如HTTP(HyperText TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(LAN)、广域网(WAN)、网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述存储介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述存储介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:获取至少两个网际协议地址;向节点评价设备发送包括至少两个网际协议地址的节点评价请求,其中,节点评价设备从至少两个网际协议地址中,选取网际协议地址并返回;接收节点评价设备返回的网际协议地址;其中,所获取的网际协议地址指示内容分发网络中的边缘节点。
或者,上述存储介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:接收包括至少两个网际协议地址的节点评价请求;从至少两个网际协议地址中,选取网际协议地址;返回选取出的网际协议地址;其中,接收到的网际协议地址指示内容分发网络中的边缘节点。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
需要说明的是,本公开上述的存储介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何存储介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
以上对本公开多个实施例进行了详细说明,但本公开不限于这些具体的实施例,本领域技术人员在本公开构思的基础上,能够做出多种变型和修改实施例,这些变型和修改都应落入本公开所要求保护的范围之内。

Claims (10)

1.一种数据处理方法,其特征在于,包括:
基于应用模型和对应的配置文件进行初始化;
接收业务数据并转换为模型输入数据和配置数据;
将所述模型输入数据和配置数据进行加密处理;
按照预定数据协议将加密文件传输给远程服务进程。
2.根据权利要求1所述的数据处理方法,其特征在于,所述接收业务数据转换为模型输入数据和配置数据包括:
转换所述业务数据的格式获得模型输入初步数据和配置数据;
将所述模型输入初步数据和配置数据拆分为预定大小的数据片段;
将所述数据片段进行对象序列化处理获得所述模型输入数据和配置数据。
3.根据权利要求1所述的数据处理方法,其特征在于,所述将所述模型输入数据和配置数据进行加密处理包括:
设置加密参数,构建头文件;
生成包装文件并按照预定方式循环读取所述包装文件;
通过预定方式进行加密获得加密文件。
4.根据权利要求1所述的数据处理方法,其特征在于,所述方法还包括:
接收经过解析和对象序列化处理的模型输出结果;
针对所述模型输出结果执行反对象序列化操作并传送给业务侧。
5.一种数据处理装置,其特征在于,包括:
初始化模块,用于基于应用模型和对应的配置文件进行初始化;
转换模块,用于接收将业务数据并转换为模型输入数据和配置数据;
加密模块,用于将所述模型输入数据和配置数据进行加密处理;
传输模块,用于按照预定数据协议将加密文件传输给远程服务进程。
6.根据权利要求5所述的数据处理装置,其特征在于,所述转换模块包括:
转换单元,用于转换所述业务数据的格式获得模型输入初步数据和配置数据;
拆分单元,用于将所述模型输入初步数据和配置数据拆分为预定大小的数据片段;
处理单元,用于将所述数据片段进行对象序列化处理获得模型输入数据和配置数据。
7.根据权利要求5所述的数据处理装置,其特征在于,所述加密模块包括:
构建单元,用于设置加密参数,构建头文件;
读取单元,用于生成包装文件并按照预定方式循环读取所述包装文件;
加密单元,用于通过预定方式进行加密获得加密文件。
8.根据权利要求5所述的数据处理装置,其特征在于,所述装置还包括:
接收模块,用于接收经过解析和对象序列化处理的模型输出结果;
执行模块,用于针对所述模型输出结果执行反对象序列化操作并传送给业务侧。
9.一种存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述方法的步骤。
10.一种电子设备,至少包括存储器、处理器,所述存储器上存储有计算机程序,其特征在于,所述处理器在执行所述存储器上的计算机程序时实现权利要求1至4中任一项所述方法的步骤。
CN201910640962.6A 2019-07-16 2019-07-16 数据处理方法、装置、存储介质和电子设备 Pending CN111832036A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910640962.6A CN111832036A (zh) 2019-07-16 2019-07-16 数据处理方法、装置、存储介质和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910640962.6A CN111832036A (zh) 2019-07-16 2019-07-16 数据处理方法、装置、存储介质和电子设备

Publications (1)

Publication Number Publication Date
CN111832036A true CN111832036A (zh) 2020-10-27

Family

ID=72912673

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910640962.6A Pending CN111832036A (zh) 2019-07-16 2019-07-16 数据处理方法、装置、存储介质和电子设备

Country Status (1)

Country Link
CN (1) CN111832036A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112612466A (zh) * 2020-12-22 2021-04-06 成都航盛智行科技有限公司 基于ipc模型的汽车显示设备的数据交换系统和方法
CN112966825A (zh) * 2021-04-13 2021-06-15 杭州欣禾圣世科技有限公司 基于python实现的多模型融合并行推理方法、装置及系统
CN114780301A (zh) * 2022-06-22 2022-07-22 深圳市木浪云科技有限公司 支持多云生产环境的容灾方法及系统
CN116523052A (zh) * 2023-07-05 2023-08-01 成都阿加犀智能科技有限公司 一种快速推理方法、装置及设备

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112612466A (zh) * 2020-12-22 2021-04-06 成都航盛智行科技有限公司 基于ipc模型的汽车显示设备的数据交换系统和方法
CN112966825A (zh) * 2021-04-13 2021-06-15 杭州欣禾圣世科技有限公司 基于python实现的多模型融合并行推理方法、装置及系统
CN114780301A (zh) * 2022-06-22 2022-07-22 深圳市木浪云科技有限公司 支持多云生产环境的容灾方法及系统
CN114780301B (zh) * 2022-06-22 2022-09-13 深圳市木浪云科技有限公司 支持多云生产环境的容灾方法及系统
CN116523052A (zh) * 2023-07-05 2023-08-01 成都阿加犀智能科技有限公司 一种快速推理方法、装置及设备
CN116523052B (zh) * 2023-07-05 2023-08-29 成都阿加犀智能科技有限公司 一种快速推理方法、装置及设备

Similar Documents

Publication Publication Date Title
CN111832036A (zh) 数据处理方法、装置、存储介质和电子设备
EP3916604A1 (en) Method and apparatus for processing privacy data of block chain, device, storage medium and coputer program product
US20200142686A1 (en) Blockchain Computer Data Distribution
US11029975B2 (en) Automated container image assembly
CN106453474B (zh) 在不稳定网络环境中的大文件的网络传输
US10135763B2 (en) System and method for secure and efficient communication within an organization
US11210466B2 (en) Multiple document editing using rules for a restricted language
US10031747B2 (en) System and method for registration of a custom component in a distributed computing pipeline
US20170212750A1 (en) Compressed binary patching over wireless network
CN112596720A (zh) 业务运行方法、装置、电子设备和计算机存储介质
CN112416512A (zh) 一种镜像构建方法、服务器、客户机、存储介质及系统
CN111813544A (zh) 计算任务的处理方法、装置、调度及管理系统和介质
WO2022028484A1 (zh) 共享文件的方法、装置及系统
CN113242244B (zh) 数据传输方法、装置和系统
JP2023536304A (ja) マイクロサービス間通信の管理方法、システム、プログラム
CN115509917A (zh) 一种验证加解密算法的方法、系统、设备和存储介质
CN110532115B (zh) 用于开发智能合约的系统、方法和装置
CN112363987A (zh) 文件压缩方法及装置、文件加载方法及装置和电子设备
US9954920B1 (en) Distributed secure decoding and processing of big data streams
US11777997B2 (en) Method, apparatus, device and storage medium of data acquisition
US11960750B2 (en) Threading of replication based on data type
US9654286B2 (en) Content gathering using shared key
US20200401993A1 (en) Implementation of rolling key to identify systems inventories
US9112908B2 (en) System and method for managing TLS connections among separate applications within a network of computing systems
US20240106628A1 (en) Efficient side channel protection for lightweight authenticated encryption

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