本技术涉及隐私计算,具体而言,涉及一种用于医院内网环境的联邦学习系统。
背景技术:
1、在医院内网环境,内部核心数据不能出本地服务器,数据只能在内网进行交互。然而,传统的联邦学习框架模型训练模块与外部节点交互模块杂糅在一起,现有的联邦学习系统部署在医院内网环境时,存在医院内部核心数据泄露的风险。
技术实现思路
1、本技术实施例的目的在于提供一种用于医院内网环境的联邦学习系统,用以解决联邦学习系统部署在医院内网环境时,存在医院内部核心数据泄露的风险。
2、本技术实施例提供的一种用于医院内网环境的联邦学习系统,包括:中心协调方和多个参与方;
3、参与方包括任务分发模块、流程交互模块和计算模块;计算模块包括多个计算节点;
4、中心协调方用于接收外部提交的联邦学习任务,并联合多个参与方执行联邦学习任务;
5、任务分发模块,用于接收中心协调方发送的第一信息,并根据第一信息,申请对应的计算节点,以及控制任务执行;其中,第一信息用于申请计算节点,以及进行计算节点的任务执行;
6、流程交互模块,用于接收中心协调方发送的第二信息,并根据第二信息,控制计算节点实现对应的任务执行步骤;其中,第二信息用于控制计算节点在对应步骤进行任务执行;
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、上述技术方案中,部署在医院管理系统的内网区的计算模块包括计算控制模块和多个计算节点,计算控制模块在启动时,按需生成多个计算节点服务,再由计算节点与实际的本地隐私数据进行交互。计算控制模块只与任务分发模块进行通信,例如通过grpc服务用来控制请求的接口和参数,只用来协调和控制生成的计算节点资源。
34、在一些可选的实施方式中,计算节点,还用于:
35、启动计算节点的线程,在每隔一段时间,检查计算节点和计算控制模块是否正常连接;
36、允许计算控制模块检查计算节点的状态;状态包括空闲状态或忙碌状态;
37、根据传入的函数名来执行对应算法,并记录计算节点执行对应算法的耗时;
38、根据传入计算节点的上下文参数配置,初始化算法执行所需的上下文参数,并根据上下文参数运行任务;其中,上下文参数记录了执行算法的运行数据和流程;
39、在运行任务时,按流式类型返回计算节点执行结果;
40、关闭任务时,清除当前任务遗留下来的上下文信息。
41、上述技术方案中,计算节点中的一个线程,在每隔一段时间检查计算节点和计算控制模块是否正常连接,这可以确保计算节点与控制模块之间的稳定通信,及时发现连接问题并进行处理。计算节点允许计算控制模块检查计算节点的空闲状态或忙碌状态,这使得计算控制模块可以实时了解计算节点的状态,并根据需要进行任务调度和资源分配。计算节点还根据传入的函数名来执行对应算法,并记录计算节点执行对应算法的耗时。在运行任务时,计算节点按流式类型返回计算节点执行结果,这使得任务执行结果可以实时返回,提高了系统的响应速度和用户体验。在关闭任务时,计算节点清除当前任务遗留下来的上下文信息,这有助于释放资源,避免潜在的内存泄漏问题,同时保证了不同任务之间的隔离性。
42、在一些可选的实施方式中,计算控制模块,还用于:
43、启动调度程序,检查每个计算模块的状态,确定空闲状态的计算节点资源;
44、向调度程序申请空闲状态的计算节点资源;
45、在返回信息中加入申请成功的计算节点信息。
46、上述技术方案中,计算控制模块可以动态地获取可用的计算节点资源,并根据需要进行任务调度和分配,有助于实现任务的快速调度和执行,这可以提高系统的整体效率,减少等待时间和任务延迟。
47、在一些可选的实施方式中,任务分发模块,还用于:
48、管理缓存中的计算控制模块,包括:测试缓存中的计算控制模块是否正常;去除缓存中的计算控制模块;与计算控制模块进行连接,并将计算控制模块加入缓存;
49、向缓存中的计算控制模块,申请获取空闲的计算节点资源;
50、分配计算节点,并返回分配的计算节点信息对应的端口信息,端口信息用于流程交互模块进行信息转发;
51、对分配的计算节点进行算法任务初始化,并记录算法任务信息。
52、上述技术方案中,任务分发模块用于与计算控制模块进行连接,并将新连接的计算控制模块加入缓存,以及主动删除缓存中的计算控制模块。对应缓存中的计算控制模块,可以申请获取对应的计算节点资源,在获取计算节点之后,即计算控制模块分配好计算节点,计算控制模块返回端口信息至任务分发模块,任务分发模块再返回端口信息至任务执行模块,任务执行模块再将端口信息发送至流程交互模块,使流程交互模块进行信息转发。对分配的计算节点进行算法任务初始化,并记录算法任务信息,这有助于确保计算节点正确执行任务,同时提供了对算法任务的可追溯性和管理性。
53、在一些可选的实施方式中,流程交互模块,还用于:
54、管理流程交互模块,包括:获取流程交互模块的基础信息;检查流程交互模块是否正常;
55、创建与计算节点的服务端连接的客户端;
56、获取计算节点对应的客户端,并在缓存中添加;
57、代理执行对应计算节点的方法,调用计算节点对应的客户端来执行对应的方法,并以流式数据返回计算节点执行结果。
58、上述技术方案中,流程交互模块可以进行自检,还创建与计算节点服务连接的客户端,并在缓存中添加该客户端,从而,通过代理执行对应计算节点的方法,调用计算节点对应的客户端来执行对应的方法,并以流式数据返回计算节点执行结果。
59、在一些可选的实施方式中,任务接收模块、任务分发模块、计算模块均采用基于grpc service实现的grpc服务器。
60、上述技术方案中,基于grpc的通信机制,任务接收模块、任务分发模块和计算模块之间的通信效率较高。grpc是高性能的、面向服务的、通用的rpc框架,适用于移动应用、后台应用等多种场景。grpc支持多种语言,包括但不限于java、go、python、ruby、c++等,可以使用不同的编程语言来实现不同的模块,从而实现最佳的编程实践和利用各种编程语言的优势。grpc支持客户端负载均衡,例如有多个计算模块实例,grpc服务器会自动将任务分配给各个实例,从而实现负载均衡。grpc支持异步通信,任务可以异步执行,从而提高系统的吞吐量。grpc支持服务注册与发现,这使得动态服务发现和配置管理变得更加容易,并可以在运行时动态地添加或移除服务实例。grpc支持流控制和安全特性,如http/2流量控制和tls/ssl加密通信,这有助于控制数据流量和保护数据的安全。grpc还提供了丰富的错误处理和调试信息,这使得问题排查和系统维护变得更加容易。
1.一种用于医院内网环境的联邦学习系统,其特征在于,包括:中心协调方和多个参与方;
2.如权利要求1所述的联邦学习系统,其特征在于,所述中心协调方包括:任务接收模块、任务队列模块和多个任务执行模块;
3.如权利要求2所述的联邦学习系统,其特征在于,任务接收模块,还用于:
4.如权利要求3所述的联邦学习系统,其特征在于,还包括协调参与方;
5.如权利要求2所述的联邦学习系统,其特征在于,所述计算模块还包括:计算控制模块;
6.如权利要求5所述的联邦学习系统,其特征在于,所述计算节点,还用于:
7.如权利要求6所述的联邦学习系统,其特征在于,计算控制模块,还用于:
8.如权利要求7所述的联邦学习系统,其特征在于,所述任务分发模块,还用于:
9.如权利要求8所述的联邦学习系统,其特征在于,所述流程交互模块,还用于:
10. 如权利要求2-9任一所述的联邦学习系统,其特征在于,所述任务接收模块、任务分发模块、计算模块均采用基于grpc service实现的grpc服务器。
