用于集群故障预测的方法
未命名
09-22
阅读:114
评论:0
1.本发明涉及深度学习技术领域,具体涉及一种用于集群故障预测的方法。
背景技术:
2.针对集群系统故障预测的研究大部分是基于系统日志的故障预测方法,这种方法通过追踪和分析反映系统状态变化过程的系统日志来达到故障预测的目的,更适合于大规模集群系统的可靠性主动管理,是目前的主要研究方向。
3.有关技术人员利用apriori-lis和apriori-similis算法来挖掘日志事件之间的关联,并提出事件关联图来表示事件规则和预测故障事件,之后又进一步完善了上述方法中的规则提取部分,增加了基于公共事件的频繁事件序列聚类和因果关系重构等步骤,大大提升了预测正确率。但是,这种方法大部分没有综合考虑事件之间的时间相关性,在数据特征挖掘阶段,大部分方法没有综合考虑事件之间的时间相关性,缺乏故障之间的因果关系(如故障传播)对预测性能的影响,缺乏一种通用而有效的方法来量化和评估故障的时间相关性。在面向更细粒度的故障类型的预测时,通常不能够有效的区分。
4.近些年基于统计的机器学习和基于神经网络的深度学习方法也被用于故障预测领域,有关技术人员首先针对ibm的bluegene/l集群系统日志进行了研究,采用基于规则挖掘的分类算法ripper、支持向量机(svm)、k-近邻(knn)和自定义最近邻方法分别构建了故障预测模型进行二分类预测;在此基础上进一步优化了日志特征提取和分类器的选择部分,利用两级时间窗口提取各类事件的统计特征,使用贝叶斯网络、随机森林、adaboostsvm自适应提升算法等构建分类预测模型;还有人提出了一个基于arima时间序列和机器学习的故障预测模型,或基于长短期记忆循环神经网络的故障预测方法。这些方法通过挖掘事件之间的时序特征,提高了模型对故障预测的精度。但面对长时间序列时,存在着因部分关键信息丢失导致梯度消失或爆炸等问题,降低了后续的故障预测精度。
技术实现要素:
5.本发明提供一种用于集群故障预测的方法,以解决现有故障预测中长时间序列预测精度低的技术问题。
6.为解决上述技术问题,本发明采用如下技术方案:
7.设计一种用于集群故障预测的方法,包括:
8.数据预处理,获取集群系统的系统日志作为原始数据,将该原始数据的多元特征映射到初始向量序列;
9.将所述初始向量序列输入bigru模型,输出特征向量序列;
10.将bigru模型输出的特征向量序列输入transformer模型进行二次提取,输出状态序列;
11.故障预测,将transformer模型生成的状态序列输入到全连接神经网络,并转换为需要预测的时间长度的状态序列,最终得到预测结果;其中,bigru模型和transformer模型
构成tbgru模型,tbgru模型的训练包括以下步骤:
12.首先为tbgru模型的每个参数定义了一个有限的值集。其中重要的网络参数为:训练过程中的滑动窗口步长(l)、神经元数量(n)、隐藏层层数(h)、学习速率(η)、batch size(b)、epoch(e)等参数。输入是一个原始的故障数据集的时间序列:一个长度为l的滑动窗口步长集,一个包含隐藏层h的数目的有限集。保持其他参数不变,通过算法,运用类似网格的搜索机制找到最优性能时滑动窗口步长l的参数。同理,通过算法,找到最优性能时隐藏层层数h的参数。最后,输出适合模型的滑动窗口贺隐藏层层数的最优参数。
13.进一步的,数据预处理阶段包括以下步骤:
14.过滤冗余的数据信息,保留事件类型、故障级别和时间戳三个方面的信息;
15.对过滤后的信息进行标记化,将事件类型、故障级别分别分类并进行两个维度的信息融合;
16.分别用不同的向量表示在不同时间内每种事件的发生,并对不同的向量进行数据标准化处理,消除量纲的影响。
17.进一步的,采用最大最小标准化的方法进行标准化处理,对原始数据进行归一化使原始数据都映射到[0,1]之间,即
[0018][0019]
其中,为原始数据,xi为归一化后的数据,为原始数据中的最大值,为原始数据中的最小值。
[0020]
进一步的,所述bigru模型包括前向传播层和反向传播层,对于t时刻的输入序列x
t
,经过bigru处理后可得到对应的输出
[0021]ut
=sigmoid(x
t
wz+h
t-1
uz)
[0022]rt
=sigmoid(x
t
wr+h
t-1
ur)
[0023][0024]ht
=(1-u
t
)h
t-1
+u
t
*tanh(x
t
wh+(h
t-1rt
)*uh)
[0025][0026]
其中,r
t
为复位门,u
t
为更新门,x
t
为t时刻的输入向量,h
t-1
表示t-1时刻的状态信息,表示候选隐藏状态,h
t
表示隐藏状态,w
z,r,h
,u
z,r,h
为需要训练的权值矩阵。
[0027]
进一步的,所述transformer模型包括多头自注意力网络和前馈网络,计算公式如下:
[0028]
multihead(q,k,v)=concat(att1,att2,
…
,attn)
[0029][0030]
其中,q、k、v分别表示查询、键和值,它们都是输入矩阵,dk表示键的维数,n等于正面的个数,n=2;
[0031]
使用从bigru模型得到的特征向量序列作为q、k、v,输出
[0032][0033]
[0034][0035]
范数为归一层,前馈网络ffn由两个线性变换和一个relu组成:
[0036][0037]
进一步的,在故障预测阶段,使用全连接神经网络对transformer模型输出的结果h∈rn×
t
进行线性变化处理,
[0038][0039]
其中,t是预测的时间长度,δ(
·
)表示线性神经网络的激活函数,wf∈r
2d
×
t
是全连接神经网络的权重矩阵,bf是偏置项。
[0040]
进一步的,采用软动态时间规整soft-dtw算法作为损失函数,对于任意节点xi的预测值和真实标签值损失值计算过程为:
[0041][0042]
其中,表示欧几里得损失值的取值范围,为长度均为t序列上的校准矩阵集合,a∈a
t,t
代表一条路径。
[0043]
与现有技术相比,本发明的有益技术效果在于:
[0044]
1、本发明集合了transformer的全局特征提取能力和双向循环模型bigru的特性处理序列的局部特征,同时捕获局部的时间依赖性和整体时间内事件的时序关系并抓取长时的依赖信息,更适用于集群系统故障的长时间序列预测。
[0045]
2、在实验部分,使用blue gene/l集群系统日志数据对该模型有效性进行了验证,结果表明,tbgru与其他模型的最佳效果相比,正确率和f-1值均提高了2-3%,有更好的故障预测精度。
附图说明
[0046]
图1为本发明tbgru模型的结构示意图。
[0047]
图2为本发明数据预处理归一化过程示意图。
[0048]
图3为本发明bigru模型的结构示意图。
[0049]
图4为本发明transformer模型的结构示意图。
[0050]
图5为本发明全连接神经网络的结构示意图。
[0051]
图6为本发明对比实验结果示意图。
[0052]
图7为本发明对比实验效果分析示意图。
具体实施方式
[0053]
下面结合附图和实施例来说明本发明的具体实施方式,但以下实施例只是用来详细说明本发明,并不以任何方式限制本发明的范围。
[0054]
实施例1:一种用于集群故障预测的方法,采用transformer和bigru相结合的tbgru模型。在该模型中,transformer的多头自注意力机制和残差连接能更好的处理长时间序列信息特征丢失的问题,同时双向gru叠加的设计使得每个gru单元在当前输入的基础上,能够更好的获得当前时间点的上下文信息并学习其中的因果关系,可以更好地解决深层次的特征挖掘的问题。
[0055]
集群系统中的故障预测问题被描述为:通过输入时长为s的历史时刻日志中事件的实时数据来预测接下来t时刻内的集群实时状态。选择一个长度为l的滑动窗口来定义原始序列x的特征序列:x=(x1,x2,
…
,xn),历史值或真实值由y给出:y=(y1,y2,
…
,y
n-1
),其中,r是实数,dl代表某个滑动窗口,目标是预测接下来一段时间内表示的值。通过将时间序列特征x经过tbgru模型的训练来预测得到估计值上述集群系统状态包含故障、可恢复故障和非故障等一系列信息,使用系统日志中的实时状态作为集群系统是否故障的一种表示方式。
[0056]
tbgru模型由四个部分组成:数据预处理层,bigru层,transformer层和故障预测层,如图1,首先,通过数据预处理将原始数据的关键信息进行向量化。然后,将序列数据输入到bigru中,通过双向的信息传递获得日志上下文时序特征的动态变化,以捕获汲取日志事件中的局部的时间依赖性和时序数据的因果关系。再由transformer对处理后的特征序列信息进行再处理,获得序列信息中的全局时序特征。最后,以transformer的最终状态作为分类的输入,输出到全连接神经网络层继而得到预测概率。该方法可以同时抓取时序序列的局部时间依赖性和全局时间依赖性,使每个处理后的向量由整个输入向量序列确定,由于处理后的向量具有全局信息,可以更好地处理长时间序列信息丢失的问题。
[0057]
在数据预处理阶段,如图2,将原始数据的多元特征映射到向量序列x=(x1,x2,
…
,xn),其中r表示实数,dr表示维度,n为数据数量,dr为表示的维数。原始数据到特征向量主要由三部分组成:过滤、标记化和表示。由于原始数据通常包含大量冗余的记录和与故障症状无关的正常系统记录,影响故障估测的效率和准确性。因此,在数据预处理阶段,主要完成以下三个任务,一是过滤冗余的数据信息,原始数据包含一些与故障预测无关的数据信息,如事件的描述,事件发生的地点等信息。本实施例中只保留了事件类型,故障级别和时间戳三个方面的信息;二是对于原始数据进行标记化,由于复杂的集群环境和故障症状,将事件类别分为六类:app(应用程序)、hardware(硬件)、kernel(内核,一般与内存或网络相关)、linkcard(中间件通信)、discovery(资源更新和初始配置)、monitor(电源、温度等异常监控)。将故障级别分为三类:无故障、可自愈的轻微故障和严重故障,并且将事件类型和故障级别两个维度的信息进行融合;三是对处理好的数据进行向量化表示,分别用不同的向量表示在不同时间内每种事件的发生。不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果,为了消除指标之间的量纲影响,需要进行数据标准化处理,以解决数据指标之间的可比性。本实施例中采用最大最小标准化(min-max normalization)的方法,如式(1)所示对原始数据进行归一化使原始数据都映射到[0,1]之间:
[0058][0059]
式(1)中,为原始数据;xi为归一化后的数据;为原始数据中的最大值;为
原始数据中的最小值。接下来,使用向量来表示这些标记,将每种故障类型作为输入,向量序列x=(x1,x2,
…
,xn)作为输出。
[0060]
经过上述处理后,将原始的数据转换为矢量序列x,继而输出给bigru层提取它们的时序特征信息。
[0061]
bigru模型是通过引入第二隐藏层(back hidden layer和forwardhidden layer)来扩展传统gru网络,并且能够获得过去和未来的上下文信息。该结构可以捕获序列的正向扫描和反向扫描,并且具有对输入向量的依赖性小,复杂度低,响应时间快的优点。bigru的网络架构图如图3所示,对于t时刻的输入序列x
t
,(其中x
t
∈x),经过bigru处理后可得到对应的输出
[0062]ut
=sigmoid(x
t
wz+h
t-1
uz)
ꢀꢀꢀ
(2)
[0063]rt
=sigmoid(x
t
wr+h
t-1
ur)
ꢀꢀ
(3)
[0064][0065]ht
=(1-u
t
)h
t-1
+u
t
*tanh(x
t
wh+(h
t-1rt
)*uh)
ꢀꢀ
(5)
[0066][0067]
其中r
t
为复位门,u
t
为更新门,x
t
为t时刻的输入向量,h
t-1
表示t-1时刻的状态信息,表示候选隐藏状态,h
t
表示隐藏状态,w
z,r,h
,u
z,r,h
为需要训练的权值矩阵。
[0068]
将经过bigru处理后得到的特征向量序列作为transformer模型的输入,生成状态序列h=(h1,h2,
…
,hn)。如图4所示,变换编码器主要分为多头自注意力网络和前馈网络,计算公式如式(7)-(8):
[0069]
multihead(q,k,v)=concat(att1,att2,...,attn)
ꢀꢀꢀꢀ
(7)
[0070][0071]
其中q、k、v分别表示查询、键和值,它们都是输入矩阵,dk表示键的维数,n等于正面的个数,在模型中设置n=2。在这里,使用从bigru层得到的特征向量序列作为q、k、v,然后输出
[0072][0073][0074][0075]
范数为归一层,ffn由两个线性变换和一个relu组成:
[0076][0077]
其中,内部层的大小为2048。最后,生成状态序列h=(h1,h2,
…
,hn)。接下来,使用最终状态hn作为transformer的输出,然后输入到全连接神经网络来实现故障预测分类。
[0078]
为了实现多分类故障预测,使用全连接神经网络对时间卷积层输出的结果h∈rn×
t
进行线性变化处理,即将时间序列的维度转换成需要预测的时间长度。此过程可用式(13)表示:
[0079][0080]
其中t是预测的时间长度,δ(
·
)表示线性神经网络的激活函数,
是全连接神经网络的权重矩阵,bf是偏置项。
[0081]
为了进一步优化预测结果,本实施例采用软动态时间规整(soft-dtw)算法作为模型的损失函数。即,软动态时间规整算法可以根据两个时间序列的特征找到合适的匹配来计算两个序列的相似性,然后,通过反向传播不断校正模型,最终达到最优的预测结果。对于任意节点xi的预测值和真实标签值损失值计算过程如式(14)所示:
[0082][0083]
其中表示欧几里得损失值的取值范围,为长度均为t序列上的校准矩阵集合,a∈a
t,t
代表一条路径。此外,这里的分类简单地由一个linear层和logsoftmax组成。最终,将transformer层得到的状态序列h=(h1,h2,
…
,hn)作为输入,最终输出模型预测的接下来一段时间集群系统的状态
[0084]
对上述tbgru模型进行训练时,由于神经网络参数和超参数多种多样,本技术为tbgru模型的每个参数定义了一个有限的值集。其中重要的网络参数为:训练过程中的滑动窗口步长(l)、神经元数量(n)、隐藏层层数(h)、学习速率(η)、batchsize(b)、epoch(e)等参数。在本搜索实验中,为了演示该模型的更好性能,执行了类似网格的搜索机制。这个机制是一种实现双目标的算法,即调整超参数:bigru和transformer的隐藏层层数和搜索滑动窗口时间步长,以便更好地验证和预测集群故障。该算法的输入是一个原始的故障数据集的时间序列:一个长度为l的滑动窗口步长集,一个包含隐藏层h的数目的有限集,输出为两者最佳的数值。本实施例对tbgru网络的输入层神经元的数目、激活函数、批处理窗口的大小、epoch的数目、隐藏层层数、优化函数和损失函数进行了初始化。其中,每个参数的范围是:第一层神经元n∈{16、32、64,128,256}、滑动窗口步长l∈{3、6、12、18、24}、隐藏层层数h∈{16、32、64,128,256}和学习率η∈{0.1,0.2,0.5,0.8,1.0}。在这些实验中的tbgru模型使用的参数分别是:激活层函数:relu,损失函数:soft-dtw,优化器函数:adam,最后一层激活层:sigmoid和batch size:64和64。
[0085]
通过实验证明tbgru模型的有效性。参见图6,第一个实验验证了tbgru模型相对于其他基线模型提高了模型性能和预测精度。参见图7,第二个实验验证了tbgru在预测长时间序列时相对于其他模型有着更精准的特征抓取能力,最后我们通过消融实验,证明了tbgru模型各个模块的有效性。使用blue gene/l集群系统日志数据对该模型有效性进行了验证,结果表明,tbgru与其他模型的最佳效果相比,正确率和f-1值均提高了2-3%,有更好的故障预测效果。
[0086]
上面结合附图和实施例对本发明作了详细的说明,但是,所属技术领域的技术人员能够理解,在不脱离本发明宗旨的前提下,还可以对上述实施例中的各个具体参数进行变更,形成多个具体的实施例,均为本发明的常见变化范围,在此不再一一详述。
技术特征:
1.一种用于集群故障预测的方法,其特征在于,包括:数据预处理,获取集群系统的系统日志作为原始数据,将该原始数据的多元特征映射到初始向量序列;将所述初始向量序列输入bigru模型,输出特征向量序列;将bigru模型输出的特征向量序列输入transformer模型进行二次提取,输出状态序列;故障预测,将transformer模型生成的状态序列输入到全连接神经网络,并转换为需要预测的时间长度的状态序列,最终得到预测结果;其中,bigru模型和transformer模型构成tbgru模型,tbgru模型的训练包括以下步骤:首先为tbgru模型的每个参数定义了一个有限的值集,该值集包括训练过程中的滑动窗口步长(l)、神经元数量(n)、隐藏层层数(h)、学习速率(η)、batch size(b)、epoch(e);然后,输入集群系统日志的时间序列,即一个长度为l的滑动窗口步长集和一个包含隐藏层h的数目的有限集;保持其他参数不变,找到最优性能时滑动窗口步长l的参数以及最优性能时隐藏层层数h的参数;最后,输出适合模型的滑动窗口的隐藏层层数的最优参数。2.根据权利要求1所述的用于集群故障预测的方法,其特征在于,数据预处理阶段包括以下步骤:过滤冗余的数据信息,保留事件类型、故障级别和时间戳三个方面的信息;对过滤后的信息进行标记化,将事件类型、故障级别分别分类并进行两个维度的信息融合;分别用不同的向量表示在不同时间内每种事件的发生,并对不同的向量进行数据标准化处理,消除量纲的影响。3.根据权利要求2所述的用于集群故障预测的方法,其特征在于,采用最大最小标准化的方法进行标准化处理,对原始数据进行归一化使原始数据都映射到[0,1]之间,即其中,为原始数据,x
i
为归一化后的数据,为原始数据中的最大值,为原始数据中的最小值。4.根据权利要求1所述的用于集群故障预测的方法,其特征在于,所述bigru模型包括前向传播层和反向传播层,对于t时刻的输入序列x
t
,经过bigru处理后可得到对应的输出u
t
=sigmoid(x
t
w
z
+h
t-1
u
z
)r
t
=sigmoid(x
t
w
r
+h
t-1
u
r
)h
t
=(1-u
t
)h
t-1
+u
t
*tanh(x
t
w
h
+(h
t-1
r
t
)*u
h
)其中,r
t
为复位门,u
t
为更新门,x
t
为t时刻的输入向量,h
t-1
表示t-1时刻的状态信息,
表示候选隐藏状态,h
t
表示隐藏状态,w
z,r,h
,u
z,r,h
为需要训练的权值矩阵。5.根据权利要求1所述的用于集群故障预测的方法,其特征在于,所述transformer模型包括多头自注意力网络和前馈网络,计算公式如下:multihead(q,k,v)=concat(att1,att2,
…
,att
n
)其中,q、k、v分别表示查询、键和值,它们都是输入矩阵,d
k
表示键的维数,n等于正面的个数,n=2;使用从bigru模型得到的特征向量序列作为q、k、v,输出输出输出输出范数为归一层,前馈网络ffn由两个线性变换和一个relu组成:6.根据权利要求1所述的用于集群故障预测的方法,其特征在于,在故障预测阶段,使用全连接神经网络对transformer模型输出的结果h∈r
n
×
t
进行线性变化处理,其中,t是预测的时间长度,δ(
·
)表示线性神经网络的激活函数,w
f
∈r
2d
×
t
是全连接神经网络的权重矩阵,b
f
是偏置项。7.根据权利要求6所述的用于集群故障预测的方法,其特征在于,采用软动态时间规整soft-dtw算法作为损失函数,对于任意节点x
i
的预测值和真实标签值损失值计算过程为:其中,表示欧几里得损失值的取值范围,为长度均为t序列上的校准矩阵集合,a∈a
t,t
代表一条路径。
技术总结
本发明公开了一种用于集群故障预测的方法,以解决现有故障预测中长时间序列预测精度低的技术问题。本发明包括:数据预处理,获取集群系统的系统日志作为原始数据,将该原始数据的多元特征映射到初始向量序列;将所述初始向量序列输入BiGRU模型,输出特征向量序列;将BiGRU模型输出的特征向量序列输入Transformer模型进行二次提取,输出状态序列;故障预测,将Transformer模型生成的状态序列输入到全连接神经网络,并转换为需要预测的时间长度的状态序列,最终得到预测结果。本发明的有益技术效果在于:提取特征全面,预测故障精确。精确。精确。
技术研发人员:姬莉霞 张庆开 张晗 李鹏 王新宇 周洪鑫 马俊波
受保护的技术使用者:郑州大学
技术研发日:2022.09.09
技术公布日:2023/9/20
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/