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

一种隐私保护分布式机器的学习调试方法及调试系统

2022-10-13 07:26:02 来源:中国专利 TAG:


1.本发明属于分布式机器学习调试领域,尤其涉及一种隐私保护分布式机器的学习调试方法及调试系统。


背景技术:

2.目前对于联邦学习训练,在专利cn 114638377 a 提供了一种基于联邦学习的模型训练方法、装置和电子设备,该方法包括:使用密钥对外部中间数据和本地特征数据进行处理,以得到初始密态数据,该密钥从中央节点中获取,该外部中间数据从其它训练节点中获取;将该初始密态差值发送给中央节点,并接收该中央节点发送的筛选后的索引,该初始密态数据用于确定出该筛选后的索引;根据该筛选后的索引和该初始密态数据,确定出更新密态差值;使用该更新密态差值和该更新密态差值对应的训练子集,确定出密态梯度值;将该密态梯度值发送给中央节点,并接收该中央节点发送的目标梯度值;使用该目标梯度值对当前模型进行更新。而此联邦学习算法只考虑模型如何在联邦学习环境中如何进行训练,没有考虑到除了当模型训练出现问题时如何调试模型的训练问题,提升模型效果。
3.在专利cn 111796811 a 提供了一种联邦学习中实现支持断点调试的流控制引擎系统, 包括流图生成模块在后端生成逻辑流图;调度队列模块用于遍历逻辑流图的节点;运行容器模块用于给每次任务创建任务id,并传输至生命周期管理器;断点管理模块用于将运行容器的状态设置并触发断点触发暂停状态和继续运行状态;生命周期管理器用于管理容器中的节点运行状态,并控制容器运行过程的完整生命周期;上下文管理器用于在节点状态下保存当前运行的中间结果。采用了本发明的联邦学习中实现支持断点调试的流控制引擎系统,用断点模式运行,系统在运行到融合之后,会暂停下来,并且可以查看到当前已经运行后的一些中间结果,便于联邦学习建模人员进行调试。而此联邦学习调试只能在训练过程中通过断点暂停训练以供调试人员直接查看模型训练过程中的静态数据,一方面无法对模型出现的训练问题进行自动检测,另一方面对于训练完成后模型的问题没有办法进行分析和溯源。
4.在非独立同分布训练中,专利cn 114580651 a 实施例公开了一种联邦学习方法、装置、设备、系统及计算机可读存储介质该方法包括:首先,各个第二设备分别获得数据分布信息并向第一设备发送该数据分布信息。之后,第一设备接收参与联邦学习的多个第二设备发送的数据分布信息,从而根据多个第二设备发送的数据分布信息选择匹配的联邦学习策略。接着,第一设备向多个第二设备 中的至少一个第二设备发送联邦学习对应的参数上报策略。其中,接收到参数上报策略的第二 设备用于根据该参数上报策略以及当前训练样本获得第二增益信息,第二增益信息用于获得该第二设备的第二模型。本技术降低了数据的非独立同分布现象所造成的干扰,能够得到性能较好的第二模型。而此专利通过获取数据分布选择合适的联邦学习策略降低数据的非独立同分布现象对联邦学习模型训练的干扰,但是联邦学习调试存在的问题远不止数据的非独立同分布,对于其他的数据预处理、特征工程或者训练过程中的其他问题,该专利不能对其进行检测。
5.在机器学习调试中,专利cn 114503132 a 公开了用于机器学习模型训练的调试和剖析的方法、系统和计算机可读介质。机器学习分析系统接收与机器学习模型的训练相关联的数据。所述数据由机器学习训练集群收集。所述机器学习分析系统执行对与所述机器学习模型的所述训练相关联的所述数据的分析。所述机器学习分析系统至少部分地基于所述分析来检测与所述机器学习模型的所述训练相关联的一个或多个状况。所述机器学习分析系统生成描述与所述机器学习模型的所述训练相关联的所述一个或多个状况的一个或多个警报。而此专利通过收集机器学习模型的训练过程中的相关数据,对收集到的数据进行自动检测和警报,但是其无法直接应用于联邦学习。
6.在数据收集上,专利cn 114066314 a 提供了一种数据追踪方法、装置、服务器及存储介质,该方法包括在检测到配置启动操作时,接收用户输入的待追踪指标及待追踪指标的指标类型;根据指标类型,显示与指标类型对应的主交互界面,以及接收用户在主交互界面输入的、针对待追踪指标的预警信息;根据预警信息,获取多个目标数据,以及根据多个目标数据对应的目标运算关系,对多个目标数据进行运算处理,得到运算结果;按照运算结果确定预警触发状态,以及在预警触发状态指示需要触发预警时,按照预警信息中的预警方式对待追踪指标进行预警追踪。本技术可以通过信息配置的方式实现对待追踪指标进行追踪,有助于提高追踪效率。而此专利在数据追踪方式实现了根据用户输入指定对变量进行追踪、收集、分析的功能。但是并不能用于联邦学习。


技术实现要素:

7.本发明的目的在于提供一种隐私保护分布式机器的学习调试方法及调试系统,旨在解决背景技术中存在的技术问题。
8.本发明是这样实现的,一种隐私保护分布式机器的学习调试方法及调试系统,所述学习调试方法包括以下步骤:步骤s1:首先数据分析师建好分布式机器学习pipeline,并将分布式机器学习pipeline分发至联邦各个客户端使用本地数据进行训练;步骤s2:在本地客户端训练过程中,客户端非侵入式元数据收集模块自动解析分布式机器学习pipeline脚本,收集其中与调试相关的元数据,并通过客户端调试模块异步读取调试元数据并根据分布式机器学习调试算法计算中间值,再在本地训练一轮结束后随着模型一起传送至服务端;步骤s3:服务端接收来自本地训练的模型和计算的调试中间值,一方面,使用联邦学习算法聚合各个客户端模型,并测试本轮训练的全局模型效果,另一方面,服务端使用服务端非侵入式元数据收集模型收集此过程中的调试元数据;步骤s4:服务端调试模块根据分布式机器学习调试算法基于服务端收集的调试元数据和各个客户端传送的调试中间值对本轮联邦训练进行检测,如果检测出训练问题,则通过调试反馈模块向数据分析师告警,数据分析师根据告警信息调试分布式机器学习pipeline,否则进入下一轮联邦训练;步骤s5:联邦训练结束后,输出本次训练的调试报告。
9.本发明的进一步技术方案是:所述步骤s2中的客户端非侵入式元数据收集模块自动解析分布式机器学习pipeline脚本,收集其中与调试相关的元数据,包括以下步骤:
步骤s21:代码分析阶段;步骤s22:元数据获取阶段。
10.本发明的进一步技术方案是:所述步骤s21还包括以下步骤:步骤s211:根据源代码获取抽象语法树;步骤s212:遍历抽象语法树,获取程序的函数调用和变量信息,形成数据流图。
11.本发明的进一步技术方案是:所述步骤s22还包括以下步骤:步骤s221:识别目标数据;步骤s222:获取目标数据。
12.本发明的进一步技术方案是:所述步骤s211具体步骤为将代码通过抽象语法树的结构呈现,通过编程语言的接口获取抽象语法树对象。
13.本发明的进一步技术方案是:所述步骤s212具体步骤为对于抽象语法树对象,通过对应接口对其遍历,遍历后获得程序中的函数调用以及变量信息,变量和函数有输入输出关系,以此关系将函数和变量交错连接,形成数据流图。
14.本发明的进一步技术方案是:所述步骤s221具体步骤为目标数据分为两类:一类是与机器学习的具体框架紧密相关的模型参数及输入输出,成为框架相关元数据;另一类是由模型开发者自定义。
15.本发明的进一步技术方案是:所述步骤s222具体包括在代码运行过程中变量有独一无二的变量名,如果变量名在目标元数据列表中,那么将该变量加入元数据收集字典中,多轮训练以后字典会收集变量数据的多轮数据值。
16.本发明的另一目的在于提供一种隐私保护分布式机器的学习调试方法的调试系统,所述调试系统包括服务端,若干连接所述服务端的客户端,及连接所述服务端的调试反馈模块。
17.本发明的进一步技术方案是:所述服务端包括模型聚合,连接所述模型聚合的服务端非侵入式元数据收集模块,连接所述服务端非侵入式元数据收集模块的服务器元数据存储,及连接所述服务器元数据存储的服务器调试模块,所述调试反馈模块与所述服务器调试模块连接;所述客户端包括连接所述模型聚合的本地训练,连接所述本地训练的客户端非侵入式元数据收集模块,连接所述客户端非侵入式元数据收集模块的客户端元数据存储,及分别连接所述客户端元数据存储与所述服务器调试模块的客户端调试模块。
18.本发明的有益效果是:本技术有如下优点:自动检测联邦学习等隐私保护分布式机器学习训练过程中的训练问题,帮助数据分析师调试这些问题提升模型效果,通过非侵入式元数据收集方法,无需在机器学习训练脚本中嵌入任何数据收集代码,针对当前常见的分布式训练问题,提出一系列分布式机器学习调试规则,用于在分布式训练过程中检测和调试机器学习模型,提升模型效果。
附图说明
19.图1是本发明实施例提供的系统框图;图2是本发明实施例提供的非侵入式元数据收集的整体流程图;图3是本发明实施例提供的深度学习示例代码;图4是本发明实施例提供的示例代码数据流图;
图5是本发明实施例提供的分布式机器学习调试图。
具体实施方式
20.数据作为新型生产要素蕴涵巨大价值,数据安全成为数据价值释放过程中的一大“拦路虎”。联邦学习因其可以在保护数据隐私的同时释放数据价值而受到了广泛研究。联邦学习本质上是一个分布式机器学习框架,多个客户端节点在中央服务器的协调下协同训练一个深度学习模型,模型在各个参与方本地训练,本地训练后共享模型梯度或参数,不共享数据,从而在隐私保护下实现数据价值挖掘。然而,联邦学习这种数据可用不可见地安全理念在保护数据的同时,也带来新的问题。即在机器学习训练过程中,当模型测试表现下降或训练不收敛,由于训练数据和训练过程不可接触,如何在隐私保护下调试机器学习成为一个挑战。
21.数据分析师在联邦学习等分布式机器学习训练系统中训练机器学习任务,机器学习pipeline被分发至各个客户端使用真实数据训练。在客户端本地训练时,非侵入式元数据收集模块解析机器学习pipeline脚本,在机器学习训练脚本运行时获取训练元数据(模型权值、梯度、输入和输出等),此过程对数据分析师完全透明,不需要数据分析师在训练代码中嵌入任何分析脚本。本地客户端调试模块计算获取的元数据得到调试中间值,这些中间结果发送至服务端进行聚合。在服务端,全局模型聚合和测试时,非侵入式元数据收集模块收集此过程的元数据(模型权值或梯度),服务端调试模块基于收集的元数据和各个客户端的中间值对该轮分布式训练进行调试问题检测。如果发现训练问题,则向数据分析师告警,数据分析师根据告警问题调试机器学习pipeline。
22.如图1示出了本发明提供的一种隐私保护分布式机器的学习调试方法的调试系统,所述调试系统包括服务端,若干连接所述服务端的客户端,及连接所述服务端的调试反馈模块。
23.所述服务端包括模型聚合,连接所述模型聚合的服务端非侵入式元数据收集模块,连接所述服务端非侵入式元数据收集模块的服务器元数据存储,及连接所述服务器元数据存储的服务器调试模块,所述调试反馈模块与所述服务器调试模块连接;所述客户端包括连接所述模型聚合的本地训练,连接所述本地训练的客户端非侵入式元数据收集模块,连接所述客户端非侵入式元数据收集模块的客户端元数据存储,及分别连接所述客户端元数据存储与所述服务器调试模块的客户端调试模块。
24.一种隐私保护分布式机器的学习调试方法,所述学习调试方法包括以下步骤:步骤s1:首先数据分析师建好分布式机器学习pipeline,并将分布式机器学习pipeline分发至联邦各个客户端使用本地数据进行训练;客户端本地训练过程对数据分析师完全透明。
25.步骤s2:在本地客户端训练过程中,客户端非侵入式元数据收集模块自动解析分布式机器学习pipeline脚本,收集其中与调试相关的元数据,并通过客户端调试模块异步读取调试元数据并根据分布式机器学习调试算法计算中间值,再在本地训练一轮结束后随着模型一起传送至服务端。
26.所述步骤s2中的客户端非侵入式元数据收集模块自动解析分布式机器学习pipeline脚本,收集其中与调试相关的元数据,包括以下步骤:
步骤s21:代码分析阶段;所述步骤s21还包括以下步骤:步骤s211:根据源代码获取抽象语法树;具体步骤为将代码通过抽象语法树的结构呈现,通过编程语言的接口获取抽象语法树对象。
27.步骤s212:遍历抽象语法树,获取程序的函数调用和变量信息,形成数据流图;具体步骤为对于抽象语法树对象,通过对应接口对其遍历,遍历后获得程序中的函数调用以及变量信息,变量和函数有输入输出关系,以此关系将函数和变量交错连接,形成数据流图。
28.步骤s22:元数据获取阶段。
29.所述步骤s22还包括以下步骤:步骤s221:识别目标数据;具体步骤为目标数据分为两类:一类是与机器学习的具体框架紧密相关的模型参数及输入输出,成为框架相关元数据;另一类是由模型开发者自定义。
30.步骤s222:获取目标数据。具体包括在代码运行过程中变量有独一无二的变量名,如果变量名在目标元数据列表中,那么将该变量加入元数据收集字典中,多轮训练以后字典会收集变量数据的多轮数据值。
31.步骤s3:服务端接收来自本地训练的模型和计算的调试中间值,一方面,使用联邦学习算法聚合各个客户端模型,并测试本轮训练的全局模型效果,另一方面,服务端使用服务端非侵入式元数据收集模型收集此过程中的调试元数据。
32.步骤s4:服务端调试模块根据分布式机器学习调试算法基于服务端收集的调试元数据和各个客户端传送的调试中间值对本轮联邦训练进行检测,如果检测出训练问题,则通过调试反馈模块向数据分析师告警,数据分析师根据告警信息调试分布式机器学习pipeline,否则进入下一轮联邦训练。
33.步骤s5:联邦训练结束后,输出本次训练的调试报告。
34.以数据分析师使用联邦学习训练结核病基因数据,根据患者基因数据预测患者是否患有结核病任务为例:1、数据分析师使用pytorch等深度学习框架编写深度学习训练脚本,随后将脚本在联邦学习系统上联合多家医院的基因数据进行训练。
35.2、在训练过程中,调试反馈模块警报检测到全局模型发生过拟合错误,同时检测到若干个客户端模型存在过拟合错误,以及各个参与方数据分布非独立同分布错误等。
36.3、数据分析师停止联邦训练,处理检测的问题,调整机器学习pipeline,重新进行分布式训练。
37.非侵入式元数据收集。为了让数据分析师专注于机器学习本身,无需在机器学习代码中嵌入任何调试信息收集代码,本发明提出费侵入式元数据收集方法,在机器学习训练脚本运行过程中自动收集目标调试元数据(如模型权值、梯度、输入和输出等)。非侵入元数据收集方法由代码分析和元数据获取两部分组成:首先对机器学习训练代码进行解析,通过语法分析模块对源代码进行分析,构建抽象语法树,遍历抽象语法树生成机器学习训练数据流图。随后,结合对应机器学习框架语法定位目标元数据数在数据流图中的位置。最后,在程序运行阶段收集这些元数据的值。
38.非侵入式元数据收集的整体流程如图2所示:在代码分析阶段:1、根据源代码获取抽象语法树。现代编程语言在编译运行的过程中将代码通过抽象语法树的结构呈现,可以通过编程语言的接口获取抽象语法树对象。
39.2、遍历抽象语法树,获取程序的函数调用和变量信息,形成数据流图。对于抽象语法树对象,我们可以通过对应接口对其遍历。遍历后获得程序中的函数调用以及变量信息,变量和函数有输入输出关系,以此关系将函数和变量交错连接,形成数据流图。
40.在元数据获取阶段:1、识别目标数据。目标数据分为两类:一种是与机器学习的具体框架紧密相关的例如模型参数、输入输出等,成为框架相关元数据。另一种是由模型开发者自定义,例如训练准确率的元数据。使用下述过程对上面两种数据中需要收集的数据名进行识别:

按照深度优先搜索算法对数据流图构建搜索列表;

按照搜索列表顺序判断数据流图中数据节点是否为开发者指定收集的元数据或者其是否为对应函数的输出数据,是则加入目标元数据列表;

返回目标元数据列表。
41.2、获取目标数据。代码运行过程中变量有独一无二的变量名,如果变量名在目标元数据列表中,那么将该变量加入元数据收集字典中,多轮训练以后字典会收集变量数据的多轮数据值。
42.以pytorch编写的卷积神经网络模型训练脚本进行元数据收集为例:如图3一个最简单的卷积神经网络包含一个卷积层、一个全连接层、一个激活层,进入神经网络的数据按照固定顺序经过上述各层得到输出的过程称为前向传播过程。除了前向传播以外还需要一定的损失函数帮助模型进行训练,损失函数由模型开发者自定义。
43.在代码分析阶段:对神经网络部分的源代码建立语法树,调用编程语言内置的接口便利语法树形成数据流图,上述简单的深度卷积神经网络的数据流图如图4所示。图4中黑色块对应代码中的函数调用,白色块对应代码中的变量,函数调用之间通过变量联系在一起形成完整的神经网络工作流。
44.在元数据获取阶段:卷积过程的结果对模型的训练的效果有重要影像,模型开发者指定卷积层输出和神经网络输出为待查看元数据。开始进行元数据识别过程确定在训练进行的过程中需要获取的数据名:按照深度优先搜索算法对数据流图构建搜索列表,按照列表顺序遍历数据流图中数据节点,发现“输出”数据节点是开发者指定收集的元数据,将“输出”变量信息加入目标元数据列表。同时“卷积层”是用户指定的目标函数,其输出“数据”(这里的“数据”并不是真实的变量名)被加入目标数据列表,遍历完成获得目标元数据列表之后卷积神经网络训练开始训练,训练过程中每当运行到卷积层已经得到输出时,程序会将其对应数据添加到元数据收集字典的对应位置。
45.在分布式机器学习训练过程中,机器学习模型在各个客户端使用隐私数据进行训练,然后将模型参数传送至服务端进行聚合。为了有效调试分布式训练过程中机器学习pipeline发生的各种问题,该方法主要分为客户端调试和服务端调试模块两部分。受限于隐私限制,客户端收集的调试元数据不能直接集中到服务端进行分析,因此,需要在客户端
对本地调试元数据进行分析,计算一部分中间值,将无隐私的中间值发送至服务端进行训练问题检测。服务端调试模块结合服务端调试元数据和各个客户端调试中间值检测全局模型的训练问题,训练问题示例如表1所示。当检测到训练问题时向数据分析师反馈。
46.分布式调试方法如图5所示,客户端调试模块主要分析本地调试元数据,并计算一些无隐私的调试中间值,例如,本地模型训练准确率和本地模型训练损失值。这些调试中间值发送至服务端,服务端调试模块中包含内置和预先自定义的分布式调试规则,基于全局模型调试元数据和各个客户端传送的调试中间值根据规则计算是否满足如表1所示调试问题,如果匹配到这些问题,则通过调试反馈模块将调试问题反馈给数据分析师。数据分析师再根据反馈的问题调整机器学习pipeline。
47.表1 调试问题示例表以在分布式训练过程中调试过拟合问题为例:机器学习模型过拟合是指训练误差远远低于测试误差,形式化表示为:
或者。其中表示训练损失值,表示训练准确率,即训练损失值远远低于测试损失值,或者训练测试准确率超过测试准确率一定阈值。在分布式训练过程中,模型训练在各个客户端,而模型测试在服务端,因此,使用本发明所提的分布式调试方法工作流程如下:1、各个客户端的客户端调试模块计算本地训练的准确率和本地训练的损失值,统计本地数据样本数,并将这些中间结果发送至服务端;2、服务端计算模型测试损失值和测试准确率;同时,根据各个客户端传送的中间值计算训练损失值和训练准确率;3、服务端调试模块根据过拟合规则检测本轮训练是否过拟合:或者。如果满足条件则表示全局模型发生了过拟合,向数据分析师报告;否则,进入下一轮分布式训练。
48.本技术有如下优点:自动检测联邦学习等隐私保护分布式机器学习训练过程中的训练问题,帮助数据分析师调试这些问题提升模型效果,通过非侵入式元数据收集方法,无需在机器学习训练脚本中嵌入任何数据收集代码,针对当前常见的分布式训练问题,提出一系列分布式机器学习调试规则,用于在分布式训练过程中检测和调试机器学习模型,提升模型效果。
49.以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献