一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于数字签名和GRPC的深度学习管理方法及系统与流程

2022-07-22 23:13:06 来源:中国专利 TAG:

一种基于数字签名和grpc的深度学习管理方法及系统
技术领域
1.本发明是关于深度学习领域,特别是关于一种基于数字签名和grpc的深度学习管理方法及系统。


背景技术:

2.人工智能应用核心功能是由深度学习方法实现的。深度学习方法主要有两个阶段,模型训练阶段和模型推理阶段。训练阶段主要用于在人工智能应用研发过程中根据神经网络对一定量的数据的特征进行学习,记录网络节点的权重、偏置等参数作为模型。推理阶段则是将训练过程中记录下来的模型重新作用在新的数据样本中,得到识别出已知的模式或对象。
3.在深度学习推理的实际应用过程中,为了满足计算效率的需要,通常会使用分布式的集群系统对模型进行部署,这个过程中需要对部署在不同物理主机上的深度模型推理过程进行有效的管理,包括数据的传输,任务的调度,以及计算资源的管理。但是对于在分布式的集群系统上进行深度学习推理过程中的存储空间、传输速度等调度管理方案一直制约着相关技术的发展,因此存在改进的需求。
4.公开于该背景技术部分的信息仅仅旨在增加对本发明的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。


技术实现要素:

5.本发明的目的在于提供一种基于数字签名和grpc的深度学习管理方法及系统,其能够解决业界人工智能应用在分布式环境下深度学习推理过程的部署问题。
6.为实现上述目的,本发明提供了一种基于数字签名和grpc的深度学习管理方法,应用于主服务器,所述方法包括:
7.对配置文件进行加密以获取加密文件,所述配置文件为深度学习过程中所需服务的配置项集合;
8.获取所述加密文件的第一特征码,并根据所述第一特征码生成第一报文串;
9.获取所述主服务器的硬件信息并对所述硬件信息加密后生成第二报文串;
10.将所述第一报文串以及第二报文串进行加密以形成数字签名文件;
11.将所述数字签名文件发送至目标服务器以实现分布式部署管理。
12.优选的,所述方法还包括:
13.将所述第一报文串以及第二报文串合成为第三报文串;
14.对所述第三报文串进行加密以形成数字签名文件。
15.优选的,对配置文件进行加密前,所述方法还包括:
16.分别生成多种所需服务的配置项;所述配置项包括:动态库文件的第二特征码,服务的名称、运行时间限制以及运行次数限制;
17.将多种所需服务的配置项组合以形成所述配置文件。
18.优选的,所述方法还包括:将所述第一报文串以及动态库文件发送至目标服务器。
19.优选的,所述方法包括:
20.在所述主服务器运行前,对所述数字签名文件进行第一鉴权;所述第一鉴权为验证所述数字签名文件的合法性。
21.优选的,对所述数字签名文件进行第一鉴权包括:
22.分别生成第四报文串以及第五报文串,所述第四报文串的生成方式与第一报文串的生成方式相同,所述第五报文串的生成方式与第二报文串的生成方式相同;
23.读取部署时生成的数字签名文件并对所述数字签名文件进行解密以获取第一报文串以及第二报文串;
24.比较所述第一报文串与第四报文串是否相同,以及第二报文串与第五报文串是否相同;
25.若均相同,则所述第一鉴权成功。
26.优选的,所述第一鉴权成功后,所述方法还包括:
27.读取所述加密文件;
28.对所述加密文件进行解析以得到所述配置文件;
29.遍历所述配置文件以对动态库文件进行加载。
30.优选的,对动态库文件进行加载后,所述方法还包括:
31.监听客户端发送的调用请求;
32.当收到所述调用请求时,对所述动态库文件进行第二鉴权;
33.当所述第二鉴权成功后,提供所述动态库文件的调用接口。
34.优选的,所述方法还包括:
35.创建执行深度学习的子进程以令所述目标服务器执行深度学习;
36.接收所述目标服务器返回的学习结果,并结束子进程。
37.本发明还提供一种基于数字签名和grpc的深度学习管理系统,所述系统包括:执行如上任一项所述方法的设备。
38.与现有技术相比,根据本发明管理方法进行深度学习,可以将学习推理过程和其他的业务模块可以实现分离部署。推理过程部署的服务所需要的计算硬件成本比较大,而不同业务的硬件成本较小,可以因应不同的应用场景提供性价比更高的部署方案。
附图说明
39.图1是根据本发明一实施方式的一种基于数字签名和grpc的深度学习管理方法流程图;
40.图2是根据本发明另一实施方式的一种基于数字签名和grpc的深度学习管理方法流程图;
41.图3是根据本发明另一实施方式的一种基于数字签名和grpc的深度学习管理方法流程图。
具体实施方式
42.下面结合附图,对本发明的具体实施方式进行详细描述,但应当理解本发明的保
护范围并不受具体实施方式的限制。
43.除非另有其它明确表示,否则在整个说明书和权利要求书中,术语“包括”或其变换如“包含”或“包括有”等等将被理解为包括所陈述的元件或组成部分,而并未排除其它元件或其它组成部分。
44.rpc(remote procedure call):远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的思想,rpc框架是基于http协议实现的,底层使用到了netty框架的支持。而grpc则是google公布的开源软件,基于最新的http 2.0协议,并支持常见的众多编程语言,对编程语言的兼容性较好,可以支持桌面应用软件,web应用,或者python脚本等多种形态的客户端进行调用,实用性强。
45.由于深度学习及推理过程部署的服务所需要的计算硬件成本比较大,而其他业务的硬件成本较小,因此可根据不同的应用场景提供性价比更高的部署管理方案。在本发明下面具体的实施例中,部署管理的思想符合grpc的理论,将深度学习及后续推理过程和其他的业务模块实现分离部署和运行计算。
46.深度学习模型推理框架服务本身以c 动态库文件的形式进行部署,主服务器对外提供基于grpc框架协议的服务调用api接口,对内包含有授权认证、深度学习管理、通信管理以及日志管理等辅助功能。
47.如图1至图3所示,根据本发明优选实施方式的一种基于数字签名和grpc的深度学习管理方法,应用于主服务器,所述方法包括:
48.步骤101,对配置文件进行加密以获取加密文件,所述配置文件为深度学习过程中所需服务的配置项集合。具体的,在本步骤中将深度学习所需的服务的配置项进行集合以生成配置文件,该配置文件也是后续进行深度学习的模型推理框架服务的相关配置信息,加密后的配置文件被扰乱了原来的文件结构,使其无法被第三方篡改。
49.步骤102,获取所述加密文件的第一特征码,并根据所述第一特征码生成第一报文串。在本发明具体的实施例中,第一特征码为加密文件的md5码,即md5信息摘要算法(md5 message-digest algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。计算的是使用md5sum方法来使用二进制的方式读取文件的内容形成16字节的识别码。在本实施例中,基于该第一特征码能够生成第一报文串以便于后续的管理。
50.具体的,动态库文件是将深度学习推理模块的源码编译成机器语言,破坏代码的可读性并提高对源码的保护,但是不影响实际的使用。
51.步骤103,获取所述主服务器的硬件信息并对所述硬件信息加密后生成第二报文串。具体的实施例中,将主服务器的硬件信息拼接成字符串,再通过加密方式对该字符串进行加密以获得第二报文串。
52.步骤104,将所述第一报文串以及第二报文串进行加密以形成数字签名文件。具体的实施例中,将第一报文串以及第二报文串一并进行二次加密,最终通过约定好的公钥进行加密,形成数字签名文件,该数字签名文件即是在实施管理过程中,验证文件的合法性以及防篡改。
53.步骤105,将所述数字签名文件发送至目标服务器以实现分布式部署管理。本发明部署的主要对象是各种深度学习推理框架服务及其管理系统,将其部署在目标服务器中以
便于后续目标服务器进行深度学习时进行有效的管理。
54.较佳的实施例中,本发明实施例使用了photobuf来实现信息传递过程中的序列化工作。photobuf是一种灵活,高效,自动化机制的结构数据序列化方法,较之传统的序列化方法xml,其存储空间少2-3倍、传输速度快20-100倍、实现逻辑更为简单。实用photobuf协议来实现任务调用过程中的通信过程。较之如json等常用的序列化工具,photobuf具有更好的性能表现。
55.本发明上述实施例所述的管理方法,使用grpc框架作为整体通信架构,来实现的深度学习推理过程的远程调用和任务管理。同时为了满足应用部署的使用权限管理需要,本发明创新性地应用数字签名技术对分布式系统的硬件计算资源的进行设备识别以及授权验证,验证文件合法性以及防篡改的有效机制,通过二者的结合以及有机串联,最终实现一种安全性良好且性价比较高的管理方案。
56.根据本发明具体实施例所述的基于数字签名和grpc的深度学习管理方法,较佳的,所述方法还包括:
57.将所述第一报文串以及第二报文串合成为第三报文串。具体的,将第一报文串以及第二报文串通过拼接的方式串合成一个整体,即第三报文串,该拼接采用前后罗列的方式进行,这样既不会破坏报文串的完整性,拼接方式也更简单。
58.对所述第三报文串进行加密以形成数字签名文件。当串合成一个单一的第三报文串时对该第三报文串进行加密最终仍然形成数字签名文件。具体的,串合顺序可根据需要进行变更。
59.根据本发明具体实施例所述的基于数字签名和grpc的深度学习管理方法,较佳的,对配置文件进行加密前,所述方法还包括:
60.分别生成多种所需服务的配置项;所述配置项包括:动态库文件的第二特征码,服务的名称、运行时间限制以及运行次数限制。较佳的实施例中,动态库文件的第二特征码可以是动态库文件的md5码。
61.将多种所需服务的配置项组合以形成所述配置文件。具体的,将不同服务的配置项组合成一个完成的配置文件以提供给目标服务器。
62.根据本发明具体实施例所述的基于数字签名和grpc的深度学习管理方法,较佳的,所述方法还包括:将所述第一报文串以及动态库文件发送至目标服务器。具体的实施方式中,在将数字签名文件发送至目标服务器的同时,可以将第一报文串以及动态库文件一并发送给目标服务器进行部署管理。
63.根据本发明具体实施例所述的基于数字签名和grpc的深度学习管理方法,较佳的,所述方法还包括运行过程,在所述主服务器运行前,所述方法还包括:
64.对所述数字签名文件进行第一鉴权;所述第一鉴权为验证所述数字签名文件的合法性。具体的实施方式中,当第一鉴权的结果为非法或被篡改,则不会进入到运行阶段,保证运行过程处于安全下。
65.根据本发明具体实施例所述的基于数字签名和grpc的深度学习管理方法,如图2所示,对所述数字签名文件进行第一鉴权包括:
66.步骤201,分别生成第四报文串以及第五报文串,所述第四报文串的生成方式与第一报文串的生成方式相同,所述第五报文串的生成方式与第二报文串的生成方式相同。具
体的,按照与部署管理过程中获取第一报文串以及第二报文串相同的方法获取第四报文串以及第五报文串,即若报文串未被篡改的情况下可知,第一报文串与第四报文串一致,第二报文串与第五报文串一致。在另一较佳的实施例中,将获取的第四报文串以及第五报文串进行串合以形成第六报文串,具体的串合方式与第一报文串和第二报文串串合的方式相同,即保证报文串前后顺序一致。
67.步骤202,读取部署时生成的数字签名文件并对所述数字签名文件进行解密以获取第一报文串以及第二报文串。具体的,利于加密的逆向操作进行解密以得到第一报文串以及第二报文串。在另一较佳的实施例中,通过解密获取第三报文串。
68.步骤203,比较所述第一报文串与第四报文串是否相同,以及第二报文串与第五报文串是否相同。在另一较佳的实施例中,比较第三报文串与第六报文串是否相同,最终也能达到相同的目的。
69.步骤204,若均相同,则所述第一鉴权成功,授权配置文件合法。具体的,若第一报文串与第四报文串相同,且第二报文串与第五报文串相同,代表第一鉴权成功;或者,第三报文串与第六报文串相同,该第一鉴权成功。
70.根据本发明具体实施例所述的基于数字签名和grpc的深度学习管理方法,较佳的,所述第一鉴权成功后,所述方法还包括:
71.读取所述加密文件。具体而言,由于加密文件中所包含是配置文件,而配置文件是远程调用的基础,因此在本步骤中需要先对加密文件通过加密操作的逆向操作进行解密以获得配置文件。
72.对所述加密文件进行解析以得到所述配置文件,得到各项深度学习的模型推理框架服务的相关配置信息。
73.遍历所述配置文件以对动态库文件进行加载以待后续进行深度学习时调用。
74.根据本发明具体实施例所述的基于数字签名和grpc的深度学习管理方法,较佳的,对动态库文件进行加载后,所述方法还包括:
75.步骤301,监听客户端发送的调用请求。具体的,主服务器完成动态库文件的加载后即会进入监听阶段,等待目标服务器端发送调用请求和相关数据,以等待客户端发送的特定深度学习的模型推理框架服务请求。
76.步骤302,当收到所述调用请求时,对所述动态库文件进行第二鉴权。具体的,当主服务器收到客户端发送的特定深度学习的模型推理框架服务请求时,会进行二次鉴权,避免动态库文件在部署或使用过程中被恶意篡改。具体的,执行调用对应的动态库文件时,先生成当前动态库文件的第三特征码,再核验该第三特征码是否与配置文件中包含的动态库文件的第二特征码一致,例如,该第二特征码可以为配置文件中包含的动态库文件的md5码,即部署阶段生成的动态库文件的md5码。具体的,第三特征码的生成方式与第二特征码一致,只是执行时间不同。
77.步骤303,当所述第二鉴权成功后,提供所述动态库文件的调用接口。
78.根据本发明具体实施例所述的基于数字签名和grpc的深度学习管理方法,较佳的,所述方法还包括:
79.创建执行深度学习的子进程以令所述目标服务器执行深度学习。具体的,主服务器根据pthead方式创建子进程,包括数据的载入,预处理,模型推理,后处理,结果返回。深
度学习过程中,利用常见深度学习框架如tensorflow,torch等的api接口实现对模型的推理过程。同时实用openmp,cuda等高性能计算手段可以对推理过程中的数据处理过程进行优化。在本发明实施例中,子进程开始后,主进程将会处于等待状态,接收到其他请求是将会直接返回错误。
80.接收所述目标服务器返回的学习结果,并结束子进程。当主服务器收到服务返回后,则完成了深度学习的推理框架的服务,子进程结束后,主服务器继续监听客户端发送的调用请求,具体过程同上。
81.较佳的实施例中,用protobuf协议来实现任务调用过程中的通信过程。较之如json等常用的序列化工具,photobuf具有更好的性能表现。
82.较佳的实施例中,本发明还包括日志管理过程,用于记录深度学习推理过程的运行日志,便于系统的维护和排查。
83.根据本发明具体实施例还提供一种基于数字签名和grpc的深度学习管理系统,所述系统包括:执行如上任一项具体实施例所述方法的设备。
84.下面将提供本发明的一具体实施例,包括部署以及运行服务,具体的:
85.计算动态库文件的第二特征码,并将该第二特征码加上服务的名称,运行时间限制以及运行次数限制作为一个完整的授权配置项,随后将不同服务的配置项组合成一个完整的配置文件。
86.对配置文件进行按位异或运算加密,得到加密文件license.conf。加密后的配置文件被扰乱了原来的文件结构,使其无法被第三方篡改。
87.计算加密文件license.conf的第一特征码,并根据第一特征码得到报文串s1。
88.获取主服务器硬件机器的cpu id,磁盘id,网卡的物理地址,显卡识别号这些硬件信息拼接成字符串,然后通过异或运算对字符串进行加密,得到报文串s2。
89.将报文串s1和s2拼接成完整的报文串s,然后通过约定好的公钥public_key进行加密,形成数字签名文件license.lic。
90.加密文件license.conf和数字签名文件license.lic完成后即可和深度学习模型推理框架对应的动态库文件一同复制到目标服务器进行部署,部署管理结束。
91.执行运行中,先进行初始化。主服务器先进行第一鉴权操作:即按照部署过程相同的方法获取硬件信息得到报文串a2,以及根据第一特征码获得报文串a1。将a1和a2合成完整报文串a。并根据程序中固定的私钥private对数字签名文件license.lic进行解密得到报文串s。若报文串a与报文串s的内容完全一致,则说明鉴权成功,授权配置文件合法。
92.主服务器读取合法授权加密文件license.conf,通过异或运算对加密的配置进行解析,得到各项深度学习模型推理框架服务的配置信息。遍历配置项的内容对动态库文件进行加载。
93.监听阶段:主服务器完成动态库文件的加载后即会进入监听阶段,等待目标服务器发送调用请求和数据。当主服务器收到特定深度学习推理框架服务请求时,会进行二次鉴权:执行对应的动态库文件时,先核验当前动态库文件的第三特征码是否与部署时生成的第二特征码一致,避免动态库文件在部署或使用过程中被恶意篡改。
94.深度学习推理阶段:主程序创建子进程执行深度学习推理过程,包括数据的载入,预处理,模型推理,后处理,结果返回。当收到服务返回后,则完成了深度学习的推理框架的
服务。子进程结束,主程序继续进入监听状态等待下一次的服务器请求。
95.综上所述,本发明具有如下优点:
96.1.服务的调用过程符合rpc的思想,深度学习推理过程和其他的业务模块可以实现分离部署。推理过程部署的服务所需要的计算硬件成本比较大,而不同业务的硬件成本较小,可以因应不同的应用场景提供性价比更高的部署方案。同时grpc是基于http2协议的,对编程语言的兼容性较好。所以可以支持桌面应用软件,web应用,或者python脚本等多种形态的客户端进行调用,实用性强。
97.2.本发明运作过程基于数字签名和动态库文件的md5码校验实现了二次鉴权,减少了应用被恶意篡改和应用在非授权设备上运行的可能,具有较高的安全性。
98.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
99.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
100.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
101.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
102.前述对本发明的具体示例性实施方案的描述是为了说明和例证的目的。这些描述并非想将本发明限定为所公开的精确形式,并且很显然,根据上述教导,可以进行很多改变和变化。对示例性实施例进行选择和描述的目的在于解释本发明的特定原理及其实际应用,从而使得本领域的技术人员能够实现并利用本发明的各种不同的示例性实施方案以及各种不同的选择和改变。本发明的范围意在由权利要求书及其等同形式所限定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献