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

一种分布式AI系统的防投毒方法和系统与流程

2022-02-22 04:57:31 来源:中国专利 TAG:

一种分布式ai系统的防投毒方法和系统
技术领域
1.本发明涉及分布式ai技术领域,尤其涉及一种分布式ai系统的防投毒系统方法和系统。


背景技术:

2.分布式ai系统的安全性始终受到关注。因为作为一种大型的分布式网络系统,频繁的数据传输,带有终端特征的数据、调整或部分调整过的模型都是网络中实时运行中频繁同步的有用信息。而对于攻击者来说,通过破坏数据和伪造数据也成为可行的手段。以投毒攻击(poisoning)为例:在分布式ai系统中,由于每个客户端都能够接触到模型参数以及训练数据,因此一些恶意的客户端很可能会将被篡改的数据或权重发送给服务器,从而影响全局模型。通常可以将投毒攻击分为三类,分别是数据投毒(data poisoning),模型投毒(model poisoning),数据修改(data modification)。
3.传统的防御方法分为两大类,主动防御(proactive defense)和反应性防御(reactive defense)。主动防御是是猜测会面临到哪些威胁并布置好高效的防御技术的方法,而反应性防御是在发现攻击时进行的操作。但这两大类防御更多是理念而非实操方法,比如很难判定哪些是攻击者的威胁,甚至正常传输的一个数据包根据何种特征判定他是数据投毒、模型投毒。如果降低异常威胁数据的判定标准,则大量的数据需要鉴别或丢弃,造成系统运行时效率低下,如果提高异常威胁数据的判定标准,则可能大量的异常数据会被混入正常业务流程,造成系统运行时模型异常导致业务目标失败。因此,传统的分布式ai系统的防投毒方法识别效率及准确度低。


技术实现要素:

4.鉴于上述的分析,本发明实施例旨在提供一种分布式ai系统的防投毒方法和系统,用以解决现有的分布式ai系统的防投毒方法识别效率及准确度低的问题。
5.一方面,本发明实施例提供了一种分布式ai系统的防投毒方法,包括以下步骤:
6.接收各客户端节点发送的提交数据,基于所述提交数据更新中心模型,根据所述中心模型的误差与预期误差的差距判断当前系统是否存在中毒迹象,若否,则根据预定的策略对中心模型做镜像并通知各客户端节点清空缓存并重新进行数据缓存,缓存数据包括客户端节点的原始数据、处理算法和中间数据;
7.否则,获取上一次模型镜像到当前时刻所有提交数据的客户端节点,并将该客户端节点作为风险节点,根据所述中心模型的误差与预期误差的差距计算风险节点的风险概率,基于所述风险概率获取风险节点的累计风险概率,根据累计风险概率对风险节点进行巡检,若存在中毒节点则将所述中毒节点下线,将中心模型恢复为上一次镜像的模型。
8.基于上述方法的进一步改进,根据所述中心模型的误差与预期误差的差距判断当前系统是否存在中毒迹象,包括,采用测试数据对所述中心模型进行测试,若所述中心模型的误差大于预期误差,并且与预期误差的差值大于第一阈值,则判断当前系统有中毒迹象。
9.上述技术方案的有益效果如下:通过根据中心模型的误差与预期误差的判断系统是否存在中毒迹象,若不存在则根据预定的策略对模型进行镜像,若存在中毒迹象则根据累计风险概率对风险节点进行巡检,当巡检判断风险节点为中毒节点时,将中毒节点强制下线,将模型恢复至上一次镜像,从而快读准确的鉴别投毒攻击,并且不影响模型后续正常运行,提高了防御效率。
10.进一步地,根据累计风险概率对风险节点进行巡检,包括:
11.获取累计风险概率大于第二阈值的所有风险节点,根据累计风险概率对风险节点进行从大到小排序;
12.依次对每个风险节点进行巡检;
13.若巡检判定第i个风险节点为中毒节点,则将该风险节点强制下线,继续对第i 1个到第n个风险节点进行巡检,直至遇到第一个非中毒风险节点,巡检结束。
14.上述技术方案的有益效果如下:在进行巡检时,并非只考虑本次风险概率,而是通过累计风险概率,即将以往的风险概率进行加和,确定需要风险的风险节点。通过考虑各个节点的历史风险概率累计风险概率,累计风险概率越高意味着此节点处于易感染环境中,其投毒的可能性越大,需要额外关注,从而提高了检测的准确性及效率。
15.进一步地,巡检内容包括:
16.获取风险节点缓存的原始数据、中间数据、处理算法以及提交数据;
17.根据所述处理算法对所述原始数据进行处理得到实际中间数据及结果数据,将得到的实际中间数据及结果数据,与风险节点缓存的中间数据及提交数据进行比对,若中间数据或提交数据存在数据缺失、数据错误、数据时间戳或数据校验标记不相符,则判断该风险节点为中毒节点。
18.上述技术方案的有益效果如下:考虑深入巡检的效率和全面性,从数据链下手,从原始数据开始,按照处理算法对数据进行处理,得到实际中间数据及结果数据,通过将得到的实际中间数据及结果数据,与风险节点缓存的中间数据及提交数据进行比对可快算全面的检查出节点是否中毒。同时这种巡检可以排除客户端节点本身中毒的干扰,而且有全面的数据可供检查,检出率高。
19.进一步地,通过以下公式计算中毒节点的下线时间:
20.其中,time
baseline
表示基础下线时间,times
history
表示客户端节点作为风险节点的次数,∑p
degrees
表示累计风险概率,γ为大于1的常数。
21.上述技术方案的有益效果如下:通过根据风险节点的次数和累计风险概率程度越高,此节点的下架时间则大幅延后,从而确保多次被攻击的脆弱节点很快就会成为无限期封禁节点,并通知客户端使用人员进行系统更新或杀毒,只有达到下架时间之后才允许重新接入网络,从而保证系统的正常运行。
22.进一步地,根据所述中心模型的误差与预期误差的差距计算风险节点的风险概率,包括:
23.根据所述中心模型的误差与预期误差的差距确定风险等级值;
24.每个风险节点的风险概率为风险等级值除以风险节点数量。
25.本发明实施例提供了一种分布式ai系统的防投毒系统,包括以下模块:
26.中心模型更新模块,用于接收各客户端节点发送的提交数据,基于所述提交数据更新中心模型,根据所述中心模型的误差与预期误差的差距判断当前系统是否存在中毒迹象,若否,则根据预定的策略对中心模型做镜像并通知各客户端节点清空缓存并重新进行数据缓存;
27.巡检模块,用于当中心模型更新模块判断当前系统存在中毒迹象时,获取上一次模型镜像到当前时刻所有提交数据的客户端节点,并将该客户端节点作为风险节点,根据所述中心模型的误差与预期误差的差距计算风险节点的风险概率,基于所述风险概率获取该风险节点的累计风险概率,根据累计风险概率对风险节点进行巡检,若存在中毒节点则将所述中毒节点下线,将中心模型恢复为上一次镜像的模型。
28.进一步地,所述中心模型更新模块用于根据所述中心模型的误差与预期误差的差距判断当前系统是否存在中毒迹象,包括,采用测试数据对所述中心模型进行测试,若所述中心模型的误差大于预期误差,并且与预期误差的差值大于第一阈值,则判断当前系统有中毒迹象。
29.进一步地,所述巡检模块用于根据累计风险概率对风险节点进行巡检,包括:
30.获取累计风险概率大于第二阈值的所有风险节点,根据累计风险概率对风险节点进行从大到小排序;
31.依次对每个风险节点进行巡检;
32.若巡检判定第i个风险节点为中毒节点,则将该风险节点强制下线,继续对第i 1个到第n个风险节点进行巡检,直至遇到第一个非中毒风险节点,巡检结束。
33.进一步地,所述巡检模块包括:
34.数据获取模块,用于获取风险节点缓存的原始数据、中间数据、处理算法以及提交数据;
35.数据比对模块,用于根据所述处理算法对所述原始数据进行处理得到实际中间数据及提交数据,将得到的实际中间数据及提交数据,与风险节点缓存的中间数据及提交数据进行比对,若中间数据或提交数据存在数据缺失、数据错误、数据时间戳或数据校验标记不相符,则判断该风险节点为中毒节点。
36.本发明中,上述各技术方案之间还可以相互组合,以实现更多的优选组合方案。本发明的其他特征和优点将在随后的说明书中阐述,并且,部分优点可从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过说明书以及附图中所特别指出的内容中来实现和获得。
附图说明
37.附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表示相同的部件。
38.图1为本发明实施例分布式ai系统的防投毒方法的流程图;
39.图2为本发明实施例分布式ai系统的防投毒系统的结构框图。
具体实施方式
40.下面结合附图来具体描述本发明的优选实施例,其中,附图构成本技术一部分,并与本发明的实施例一起用于阐释本发明的原理,并非用于限定本发明的范围。
41.对于分布式ai系统的投毒攻击具有以下特点:
42.伪造数据和模型需要专用的模块,需要常驻1个终端。否则频繁跳跃安装和部署的开销太大,如果进行休眠间隙攻击,则攻击频率和数据量太小,起不到破坏作用,对于攻击者来说成本太高。
43.伪造数据和模型只能在一个或某几个层面的数据包上,无法贯穿整个数据链路。例如,如果采用终端用户交互数据作为提交数据,必然只采集用户在某些界面或时段的交互数据,由于处理数据量大伪造时间太长,数据投毒只对最后发送的交互信息包进行修改,而不可能修改原始的全程数据。
44.伪造数据和模型会导致之后同步的ai模型运行异常,虽然无法定位具体数据包,但是,正常模型与异常ai模型间提交数据中掺毒数据必然存在的置信度是相当高的。
45.基于以上三个特点,本发明的一个具体实施例,公开了一种分布式ai系统的防投毒方法,如图1所示,包括以下步骤:
46.s1、接收各客户端节点发送的提交数据,基于所述提交数据更新中心模型,根据所述中心模型的误差与预期误差的差距判断当前系统是否存在中毒迹象,若否,则根据预定的策略对中心模型做镜像并通知各客户端节点清空缓存并重新进行数据缓存,缓存数据包括客户端节点的原始数据、处理算法和中间数据;
47.s2、否则,获取上一次模型镜像到当前时刻所有提交数据的客户端节点,并将该客户端节点作为风险节点,根据所述中心模型的误差与预期误差的差距计算风险节点的风险概率,基于所述风险概率获取风险节点的累计风险概率,根据累计风险概率对风险节点进行巡检,若存在中毒节点则将所述中毒节点下线,将中心模型恢复为上一次镜像的模型。
48.通过根据中心模型的误差与预期误差的判断系统是否存在中毒迹象,若不存在则根据预定的策略对模型进行镜像,若存在中毒迹象则根据累计风险概率对风险节点进行巡检,当巡检判断风险节点为中毒节点时,将中毒节点强制下线,将模型恢复至上一次镜像,从而快速准确的鉴别投毒攻击,并且由于上一次镜像的模型是未中毒模型,因此不影响模型后续正常运行,提高了防御效率。
49.对ai模型进行训练时会不断降低误差,损失是不断减小的,因此可以根据模型的训练误差与预期误差判断系统是否存在中毒迹象。具体的,根据所述中心模型的误差与预期误差的差距判断当前系统是否存在中毒迹象,包括,采用测试数据对所述中心模型进行测试,若所述中心模型的误差大于预期误差,并且与预期误差的差值大于第一阈值,则判断当前系统有中毒迹象。其中,预期误差可根据模型以往的误差变化速度来确定。
50.若判断不存在中毒迹象,则根据预定的策略对中心模型进行模型镜像。实施时,预定的策略可是定时镜像、或者按照误差下降一定比率来进行模型镜像。模型镜像后,通知各客户端节点清空其缓存,并重新开始数据缓存。客户端节点通过数据缓存,保存上一个无毒的镜像到当前时刻的数据,当判断系统出现中毒迹象时,可根据客户端节点缓存的数据快速准确判断节点是否中毒。
51.若判断当前系统存在中毒迹象,则需要确定是否存在中毒节点,并将中毒节点强
制下线,从而保证模型的准确性。
52.首先根据所述中心模型的误差与预期误差的差距计算风险节点的风险概率,风险概率计算步骤包括:
53.根据所述中心模型的误差与预期误差的差距确定风险等级值;
54.具体的,根据中心模型的误差与预期误差的差距的大小,可将风险划分为不同的等级值,具体等级值划分可根据实际需要进行划分,差距越大说明中毒的风险越高,相应的提交数据的节点的风险概率越大。正常情况下分布式客户端节点提交的一批数据训练对模型的有益影响可以视为独立的(这也是分布式的目的,如果是相关的,则不需要那么多客户端,因为他们提交的数据影响是一样,只有独立影响,才有必要分布式训练),那么每批数据训练的有益影响比如中心模型损失函数的改进幅度服从正态分布例如,因此,可根据标准正太分布划分风险等级值:当模型的误差与期望误差的偏差大于等于2.1%,小于13.5%时,则风险等级值为1;当偏差为大于等于13.5%,小于34%时,则风险等级值为2;若偏差大于等于34%,则划分风险等级值为3。当偏差小于2.1时判断当前为正常状态,无中毒迹象。
55.每个风险节点的风险概率为风险等级值除以风险节点数量。由于还不能确定哪些节点为中毒节点,因此每个风险节点均摊风险概率。
56.在进行巡检时,并非只考虑本次风险概率,而是通过累计风险概率,即将以往的风险概率进行加和,确定需要巡检的风险节点。通过考虑各个节点的历史风险概率累计风险概率,累计风险概率越高意味着此节点处于易感染环境中,其投毒的可能性越大,需要额外关注,从而提高了检测的准确性及效率。
57.具体的,根据累计风险概率对风险节点进行巡检,包括:
58.获取累计风险概率大于第二阈值的所有风险节点,根据累计风险概率对风险节点进行从大到小排序。其中第二阈值可根据实际需要设置,例如可设置为0.5。
59.依次对每个风险节点进行巡检。
60.若巡检判定第i个风险节点为中毒节点,则将该风险节点强制下线,继续对第i 1个到第n个风险节点进行巡检,直至遇到第一个非中毒风险节点,巡检结束。
61.具体的,对风险节点的巡检包括:
62.获取风险节点缓存的原始数据、中间数据、处理算法以及提交数据;
63.根据所述处理算法对所述原始数据进行处理得到实际中间数据及结果数据,将得到的实际中间数据及结果数据,与风险节点缓存的中间数据及提交数据进行比对,若中间数据或提交数据存在数据缺失、数据错误、数据时间戳或数据校验标记不相符,则判断该风险节点为中毒节点。
64.具体的,客户端节点缓存的原始数据为其接受的输入数据,处理算法为其对原始数据进行处理的算法,中间数据为按照处理算法进行数据处理时生成的中间数据,提交数据为客户端节点向服务器提交的数据。
65.考虑深入巡检的效率和全面性,从数据链下手,从原始数据开始,按照处理算法对数据进行处理,得到实际中间数据及结果数据,通过将得到的实际中间数据及结果数据,与风险节点缓存的中间数据及提交数据进行比对可快算全面的检查出节点是否中毒。同时这种巡检可以排除客户端节点本身中毒的干扰,而且有全面的数据可供检查,检出率高。
66.当检查出风险节点为中毒节点时,可将风险节点强制下线。可以使中毒节点永久
下线,也可以根据其作为风险节点的次数和累计风险概率设置下线时间。具体的,可通过以下公式计算中毒节点的下线时间:
67.其中,time
baseline
表示基础下线时间,times
history
表示客户端节点作为风险节点的次数,∑p
degrees
表示累计风险概率,γ为大于1的常数。
68.下线时间time
offline
是基础下线时间time
baseline
的一个可调节倍数,这个倍数由基础底γ和几何级数构成,几何级数包括作为风险节点的次数和累计风险概率的乘积,显然基础底γ必然大于1,而作为风险节点的次数和累计风险概率程度越高,此节点的下线时间则大幅延后,可以由系统管理员进行调控,确保多次被攻击的脆弱节点很快就会成为无限期(比如下线时间超过10年)封禁节点,并通知客户端使用人员进行系统更新或杀毒,只有达到下线时间之后才允许重新接入网络。
69.本发明的一个具体实施例,公开了一种分布式ai系统的防投毒系统,如图2所示,包括以下模块:
70.中心模型更新模块,用于接收各客户端节点发送的提交数据,基于所述提交数据更新中心模型,根据所述中心模型的误差与预期误差的差距判断当前系统是否存在中毒迹象,若否,则根据预定的策略对中心模型做镜像并通知各客户端节点清空缓存并重新进行数据缓存,缓存数据包括客户端节点的原始数据、处理算法和中间数据;
71.巡检模块,用于当中心模型更新模块判断当前系统是否存在中毒迹象时,获取上一次模型镜像到当前时刻所有提交数据的客户端节点,并将该客户端节点作为风险节点,根据所述中心模型的误差与预期误差的差距计算风险节点的风险概率,基于所述风险概率获取风险节点的累计风险概率,根据累计风险概率对风险节点进行巡检,若存在中毒节点则将所述中毒节点下线,将中心模型恢复为上一次镜像的模型。
72.优选的,所述中心模型更新模块用于根据所述中心模型的误差与预期误差的差距判断当前系统是否存在中毒迹象,包括,采用测试数据对所述中心模型进行测试,若所述中心模型的误差大于预期误差,并且与预期误差的差值大于第一阈值,则判断当前系统有中毒迹象。
73.优选的,所述巡检模块用于根据累计风险概率对风险节点进行巡检,包括:
74.获取累计风险概率大于第二阈值的所有风险节点,根据累计风险概率对风险节点进行从大到小排序;
75.依次对每个风险节点进行巡检;
76.若巡检判定第i个风险节点为中毒节点,则将该风险节点强制下线,继续对第i 1个到第n个风险节点进行巡检,直至遇到第一个非中毒风险节点,巡检结束。
77.优选的,所述巡检模块的巡检包括:
78.数据获取模块,用于获取风险节点缓存的原始数据、中间数据、处理算法以及提交数据;
79.数据比对模块,用于根据所述处理算法对所述原始数据进行处理得到实际中间数据及提交数据,将得到的实际中间数据及提交数据,与风险节点缓存的中间数据及提交数据进行比对,若中间数据或提交数据存在数据缺失、数据错误、数据时间戳或数据校验标记
不相符,则判断该风险节点为中毒节点。
80.上述方法实施例和装置实施例,基于相同的原理,其相关之处可相互借鉴,且能达到相同的技术效果。具体实施过程参见方法实施例,此处不再赘述。
81.本领域技术人员可以理解,实现上述实施例方法的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读存储介质中。其中,所述计算机可读存储介质为磁盘、光盘、只读存储记忆体或随机存储记忆体等。
82.以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
再多了解一些

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

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

相关文献