首页> 中国专利> 一种基于模板序列或词序列的BERT异常检测方法及设备

一种基于模板序列或词序列的BERT异常检测方法及设备

摘要

本发明公开了一种基于模板序列或词序列的BERT异常检测方法及设备,本发明首先将原始日志消息转换为模板序列或词序列,通过模板序列或词序列作为BERT模型的输入,实现BERT模型的训练,最后利用训练完成后的BERT模型实现对待检测模板序列或词序列的异常检测,只需要较少的训练标签就能实现好的异常检测效果,相较于现有技术,极大的缩短了训练成本,提高了异常检测效果。

著录项

  • 公开/公告号CN113111908A

    专利类型发明专利

  • 公开/公告日2021-07-13

    原文格式PDF

  • 申请/专利权人 长沙理工大学;

    申请/专利号CN202110232515.4

  • 申请日2021-03-03

  • 分类号G06K9/62(20060101);G06F40/186(20200101);G06F40/284(20200101);G06N3/08(20060101);

  • 代理机构44205 广州嘉权专利商标事务所有限公司;

  • 代理人伍传松

  • 地址 410000 湖南省长沙市天心区万家丽南路二段960号

  • 入库时间 2023-06-19 11:49:09

说明书

技术领域

本发明涉及日志检测技术领域,特别涉及一种基于模板序列或词序列的BERT异常检测方法及设备。

背景技术

以往有监督方法需要大量的标签数据去对模型进行训练,因此为了得到一个好的分类模型,标签数据的数量就显得尤为重要。在一定范围内,标签数据的数量越多,训练出来的分类模型就越好。因此,理想的有监督分类模型必须由大量的标签数据训练得到。

无监督的分类模型与有监督的分类模型在模型训练时,都需要大量的训练数据去进行训练。当训练数据较少时,训练得到的分类模型效果也是不理想的。所以,无监督分类模型的效果也是由训练数据的数量决定的。

如果当训练数据较少时,分类模型采用这些数据进行训练后,可以明显知道该模型在分类时取得的效果是不理想的。只有当训练数据足够,模型才能从这些数据中充分学习到这些数据的特征并进行分类,此时,分类模型的效果才能达到理想状态。不管是采用无监督的方法还是有监督的方法进行分类时都需要通过对大量的数据进行训练才能得到较好的分类模型。目前,训练一个好的模型,都是需要大量训练数据的支撑。因此,在训练模型时,成本高,且花费的时间多。如果只需要少量的训练数据就能训练出好的模型,那将明显减少了成本损耗。

综上所述,申请人发现在日志异常检测领域中,日志异常检测都需要大量的数据集去训练异常检测模型,当训练数据标签较少的时候,通过训练得到的异常检测模型往往不能达到较好的检测效果。

发明内容

本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明提出一种基于模板序列或词序列的BERT异常检测方法及设备,能够极大缩短训练成本,提高异常检测效果。

本发明的第一方面,提供了一种基于模板序列的BERT异常检测方法,包括以下步骤:

获取多条原始日志消息;

对获取的每条所述原始日志消息进行日志解析,以得到解析后的每条所述原始日志消息对应的日志事件;

通过窗口划分方法将所有所述日志事件划分为对应数量的模板序列;

将划分后的所有所述模板序列输入至预设的BERT模型进行训练;

通过训练完成后的所述BERT模型对待检测对象进行日志异常检测。

根据本发明的实施例,至少具有如下技术效果:

首先将原始日志消息转换为模板序列,通过模板序列作为BERT模型的输入,实现BERT模型的训练,最后利用训练完成后的BERT模型实现对待检测模板序列的异常检测,本方法结合模板序列和BERT模型,只需要较少的训练标签就能实现好的异常检测效果,相较于现有技术,极大的缩短了训练成本,提高了异常检测效果。

本发明的第二方面,提供了一种基于词序列的BERT异常检测方法,包括以下步骤:

获取多条原始日志消息;

对获取的每条所述原始日志消息进行日志解析,以得到解析后的每条所述原始日志消息对应的日志事件;

通过窗口划分方法将所有所述日志事件划分为对应数量的词序列;

将划分后的所有所述词序列输入至预设的BERT模型进行训练;

通过训练完成后的所述BERT模型对待检测对象进行日志异常检测。

根据本发明的实施例,至少具有如下技术效果:

首先将原始日志消息转换为词序列,通过词序列作为BERT模型的输入,实现BERT模型的训练,最后利用训练完成后的BERT模型实现对待检测词序列的异常检测,本方法结合词序列和BERT模型,只需要较少的训练标签就能实现好的异常检测效果,相较于现有技术,极大的缩短了训练成本,提高了异常检测效果。

本发明的第三方面,提供了一种BERT异常检测设备,包括至少一个控制处理器和用于与所述至少一个控制处理器通信连接的存储器;所述存储器存储有可被所述至少一个控制处理器执行的指令,所述指令被所述至少一个控制处理器执行,以使所述至少一个控制处理器能够执行如本发明第一方面所述的一种基于模板序列的BERT异常检测方法和/或本发明第二方面所述的一种基于词序列的BERT异常检测方法。

本发明的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如本发明第一方面所述的一种基于模板序列的BERT异常检测方法和/或本发明第二方面所述的一种基于词序列的BERT异常检测方法。

本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:

图1为本发明实施例提供的一种基于词序列的BERT异常检测方法的流程示意图;

图2为本发明实施例提供的BERT异常检测框架示意图;

图3为本发明实施例提供的BERT模型的结构示意图;

图4为本发明实施例提供的BERT微调模型的结构示意图;

图5为本发明实施例提供的一种基于模板序列的BERT异常检测方法的流程示意图;

图6为本发明实施例实验结果提供的准确率的性能示意图;

图7为本发明实施例实验结果提供的召回率的性能示意图;

图8为本发明实施例实验结果提供的F1-分数的性能示意图;

图9为本发明实施例提供的BERT异常检测设备的结构示意图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。

申请人发现,发现在日志异常检测领域中,日志异常检测都需要大量的数据集去训练异常检测模型,当训练数据标签较少的时候,通过训练得到的异常检测模型往往不能达到较好的检测效果。

为了解决上述技术问题,本发明提供以下实施例:

第一实施例;

参照图1至图4,本发明的一个实施例,提供了一种基于词序列的BERT异常检测方法,包括以下步骤:

步骤S101、获取多条原始日志消息;

日志消息通过插件收集,如.net平台的log4net,java平台主流的log4j、slf4j。如图2所示,图2中的左起第一块框图中示出了9个原始日志消息,例如:第三条日志消息是“-1117848119 2005.06.03R16-M1-N2-C:J17-U012005-06-03-18.21.59.871925R16-M1-N2-C:J17-U01 RAS KERNEL INFO CE SYM2,AT 0X0B85EEE0,MASK0X05”。

步骤S102、对每条原始日志消息进行日志解析,以得到解析后的每条原始日志消息对应的日志事件;

在本实施例中,使用的是Drain日志解析工具进行对获取的全部原始日志消息进行日志解析,获取每条原始日志消息对应的日志事件,Drain以流方式实时解析日志,不仅如此,Drain还使用了固定深度的解析树,能加快解析过程。每条原始日志消息都被映射到对应的日志事件中,这里还可以使用其余日志解析方法替换Drain日志解析工具,例如基于聚类的方法和基于启发式的方法。需要说明的是,在本领域中,日志事件的概念为:反应系统进行了什么操作的消息,也可以称为日志模板。

例如图2中第三条日志消息是“-1117848119 2005.06.03R16-M1-N2-C:J17-U012005-06-03-18.21.59.871925R16-M1-N2-C:J17-U01 RAS KERNEL INFO CE SYM 2,AT0X0B85EEE0,MASK0X05”。其中时间戳是1117848119,日期为2005.06.03,节点为R16-M1-N2-C:J17-U01,具体时间为2005-06-03-18.21.59.871925,重复节点为R16-M1-N2-C:J17-U01,该条日志消息的类型为RAS,消息生成的位置为KERNEL,该条日志消息对应的等级是INFO,该条日志消息的内容为CE SYM 2,AT 0X0B85EEE0,MASK 0X05。

经过Drain日志解析后,日志模板显示在下表1(以第三条日志消息为例)中的最后一行。如表1,半结构化的原始日志消息被转换为结构化日志事件。日志消息中的变量部分由通配符来进行替换,而日志消息中的常量部分则保持不变。每个日志消息都有一个唯一对应的日志事件或者日志模板。第三条原始日志消息的日志模板(也称日志事件)是“CESYM<*>,AT<*>,MASK<*>”,其日志模板序号为E

表1

步骤S103、通过窗口划分方法将所有日志事件划分为对应数量的词序列;

需要说明的是,在本领域中,日志序列的概念为:表示同一窗口内的日志消息。本实施例使用由词组成的日志序列形式,即词序列,词序列是指将窗口内所有日志模板的内容由词进行拼接形成的序列形式。原始的半结构日志消息转换为结构化的日志事件后,步骤S103采用固定窗口技术将日志切分为词序列的形式,具体为:

如图2左起的第三个框图内容所示,将固定窗口大小W设置为3,则9条原始日志消息被划分为3条词序列。例如:第一条词序列LSE

步骤S104、将划分后的所有词序列输入至预设的BERT模型进行训练;

BERT(Bidirectional Encoder Representations from Transformers)是一种双向的语言模型,BERT模型采用了双向TRANSFORMER进行编码,这种编码方式在构建模型时采用的是注意力机制,预测词的时候采用双向的方式考虑上下文特征。因此能够更加准确得到词之间的关系。需要说明的是,步骤S104中包括BERT模型的训练过程和测试过程,本实施例仅描述训练过程。

如图3,BERT模型的框架分为:预训练模型和微调模型。在预训练数据期间,通过不同的预训练任务对未标记的数据执行模型训练。因为BERT模型采用双向的TRANSFORMER架构进行编码,所以每个单词权值都会给传输给上下文的单词,其单词与上下文的单词都存在一定的关联性。经过预训练模型后,BERT模型会输出所输入句子的向量。为了执行下一步的微调操作,需要使用预训练的参数来初始化BERT微调模型,然后再使用来自下游任务的标记数据对所有参数进行微调。即输入一个句子到BERT模型中,BERT模型会吐出句子的向量,然后在根据训练的线性分类器进行分类。其微调模型如图4所示,其中CLS表示该特征可以作为分类模型,TOK代表不同TOKEN的情况,TOKEN可以理解为词或者字。例如对于给定的一句话“我今天去上学”,采用词为作为TOKEN的方法得到的结果就是“我”、“今”、“天”、“去”、“上”、“学”,而采用字作为TOKEN的方法得到的结果是“我”,“今天”、“去”、“上学”。两者最后得到的结果是不一样的。E代表嵌入的向量,TI代表第I个TOKEN在经过BERT的处理过程之后得到的特征向量。C则是一个线性分类器,输出分类结果。由于日志序列的形式不同,因此有两种形式用于表示日志序列:词序列和模板序列,其中模板序列将于第二实施例中进行介绍。

BERT模型最直接的方式是采用词序列作为输入方式来训练异常检测模型,但是系统日志的规模庞大,一条日志由多个词构成。用词序列表示时,其序列长度会发生膨胀,词序列长度是日志序列长度的几倍甚至几十倍,而且长度不一致。例如,BGL数据集的每一条日志消息的内容长度大约为3到95。那么,长度为3的日志序列所对应的词序列长度可能会达到9到285。如图2中第三块框图所示,LSE

为了使输入序列长度一致,BERT模型采用MAXLEN参数保证每一条输入数据的长度一致。当输入数据的长度大于MAXLEN时会发生截断,即将超出MAXLEN的部分移除。而当输入数据的长度小于MAXLEN时会对输入数据进行补齐。当超过MAXLEN或小于MAXLEN时均会对数据进行处理,这样将会增加计算复杂度以及时间上的损耗。MAXLEN越长,模型需要的算力、内存越大,而且训练时间越长。因此,作为一种可选的实施方式,MAXLEN参数的最大长度设置不超过512,用于减少计算复杂度以及时间上的损耗。

基于上述实施例,为了选择合适的MAXLEN,本实施例通过日志加权单词长度来估计词序列的长度。对每一条日志消息进行统计,即获取每条日志消息中单词的个数,以及日志消息出现的次数。假设日志消息中单词的个数为x,而总的日志消息数量为N,出现单词个数为x的日志消息数量为B。则最终所取日志加权单词长度len计算公式如下式(1)所示:

取加权单词长度作为每一条日志消息的长度。因此词序列的MAXLEN等于日志加权单词长度与日志序列长度的积。日志序列的长度取决于固定窗口大小W,所以词序列MAXLEN的取值,可以根据下式(2)计算:

步骤S105、通过训练完成后的BERT模型对待检测对象进行日志异常检测。

通过训练完成后的BERT模型对待检测的词序列进行日志异常检测。

本发明实施例的有益效果:

以往的日志异常检测都需要大量的数据集去训练异常检测模型,当训练数据标签较少的时候,通过训练得到的异常检测模型往往不能达到较好的检测效果。而BERT模型的预训练模型与下游任务是紧密结合的,其次BERT模型将大量语料库用于语言模型的预训练,所以使用少量带标签的语料进行微调就能实现文本的分类。因此本实施例首先将原始日志消息转换为词序列,通过词序列作为BERT模型的输入,实现BERT模型的训练,最后利用训练完成后的BERT模型实现对待检测词序列的异常检测,本方法结合词序列和BERT模型,只需要较少的训练标签就能实现好的异常检测效果,相较于现有技术,极大的缩短了训练成本,提高了异常检测效果。

第二实施例;

参照图2至图5,本发明的一个实施例,提供了一种基于模板序列的BERT异常检测方法,包括以下步骤:

步骤S201、获取多条原始日志消息;

步骤S202、对每条原始日志消息进行日志解析,以得到解析后的每条原始日志消息对应的日志事件;

步骤S201与步骤S202的详细介绍可参照第一实施例,此处不再赘述。

步骤S203、通过窗口划分方法将所有日志事件划分为对应数量的模板序列;

原始的半结构日志消息转换为结构化的日志事件后,步骤S203采用固定窗口技术将日志切分为日志序列的形式。需要说明的是,在本领域中,日志序列的概念为:表示同一窗口内的日志消息。本实施例使用由模板组成的日志序列形式,将模板序列作为BERT模型中预训练模型的输入数据。

如图2左起的第三个框图内容所示,将固定窗口大小W设置为3,则9条原始日志消息被划分为3条日志序列。例如:第一条模板序列表示为LSE

步骤S204、将划分后的所有模板序列输入至预设的BERT模型进行训练;

这里不再对BERT模型进行介绍,可参见第一实施例。

相较于第一实施例的内容,将词序列输入至BERT模板中,其序列长度会发生膨胀,词序列长度是日志序列长度的几倍甚至几十倍,而且长度不一致。本实施例提出采用模板序列作为BERT模型的输入,模板序列与日志序列长度相等,所有模板序列具有一致的序列长度。在相同日志序列长度下,模板序列长度比词序列长度短。在BERT模型相同处理长度下,模板序列可表示的日志内容远大于词序列。例如,模板序列的LSE

由上述分析可知,相比于词序列,模板序列的长度取决于固定窗口大小W,因此作为一种可选的实施方式,模板序列的MAXLEN设置为固定窗口大小,即MAXLEN=W。此时,模型能够完全捕获模板序列中所有日志信息。这样模型将不需要对日志序列进行额外的处理,例如,截断或补齐。因此从输入形式来看,模板序列比词序列要好,不仅体现在MAXLEN的取值方便,还体现在其训练时间等方面。

步骤S205、通过训练完成后的BERT模型对待检测对象进行日志异常检测。

通过训练完成后的BERT模型对待检测的模板序列进行日志异常检测。

本发明实施例的有益效果:

以往的日志异常检测都需要大量的数据集去训练异常检测模型,当训练数据标签较少的时候,通过训练得到的异常检测模型往往不能达到较好的检测效果。而BERT模型的预训练模型与下游任务是紧密结合的,其次BERT模型将大量语料库用于语言模型的预训练,所以使用少量带标签的语料进行微调就能实现文本的分类。因此本实施例首先将原始日志消息转换为模板序列,通过模板序列作为BERT模型的输入,实现BERT模型的训练,最后利用训练完成后的BERT模型实现对待检测模板序列的异常检测,只需要较少的训练标签就能实现好的异常检测效果,相较于现有技术,极大的缩短了训练成本,提高了异常检测效果。

而且相较于第一实施例提供的基于词序列的BERT异常检测方法,本实施例方法采用模板序列作为处理对象,由于模板序列长度等于日志序列长度。不会出现长度不一致以及膨胀的问题,其次,模板序列的输入规模明显少于词序列,因此在训练异常检测模型时所需要的训练成本明显少于词序列。

第三实施例;

参照图6至图8,本实施例采用了在LAWRENCE LIVERMORE NATIONAL LABS(LLNL)的BLUEGENE/L超级计算机系统中产生的BGL数据集。下表2显示了BGL数据集的一些基本信息。BGL数据集中包含有4,747,963条原始日志消息,其中异常日志消息的数量为348,460条。因此正常日志消息的数量为4399503。所有实验均在GOOGLE COLAB云平台(HTTPS://COLAB.RESEARCH.GOOGLE.COM)上运行,该平台提供了8核

表2

为了验证本发明的合理性以及先进性,将该异常检测方法分别与DEEPLOG、LOGANOMALY进行比较。DEEPLOG是一种无监督的日志异常检测方法,其采用日志模板作为输入并搭配LSTM模型构建而成。通过结合三种异常检测来综合判断整个系统异常,一是执行路径异常检测;二是参数和性能异常检测;三是工作流异常检测。而LOGANOMALY是另一种无监督的系统日志异常检测方法,也是采用日志模板作为输入并搭配LSTM模型构建的,并通过滑动窗口来提取其原始日志序列的特征以及窗口的计数特征送入LSMT网络中输出下一个窗口中模板的概率分布。其日志模板的构建考虑了正反义词之间的关系,类似于打开此文件就必定对应有关闭此文件。以上这两种模型的参数均设置为实现其最优效果的参数。

将BGL数据集按1:9、2:8、3:7、4:6、5:5、6:4、7:3、8:2、9:1比例划分,通过划分的数据集分别进行构建模型比较其性能。

通过以上实验结果,可以看出基于模板序列的BERT异常检测方法只需要训练较少的数据集就能获得理想的异常检测模型,明显减少了模型的训练成本。

为了证实合理性,将词序列与模板序列分别作为BERT模型的输入进行实验,判断不同输入对BERT模型在异常检测中的影响。

如图2所示,在第三块框图的内容中。分别将词序列和模板序列作为BERT模型的输入。为了验证本发明的合理性,下表3为词序列和模板序列作为BERT模型的输入的实验结果比较。所有实验均在GOOGLE COLAB云平台上运行,该平台提供了8核

表3

综上实验结果,基于模板序列的BERT异常检测方法,以及基于词序列的BERT异常检测方法都具备合理性;通过结果比较发现,模板序列作为输入的形式要明显优于词序列的形式。

第四实施例;

参照图9,本发明的一个实施例,提供了一种BERT异常检测设备,该BERT异常检测设备可以是任意类型的智能终端,例如手机、平板电脑、个人计算机等。

具体地,该BERT异常检测设备包括:一个或多个控制处理器和存储器。控制处理器和存储器可以通过总线或者其他方式连接。

存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态性计算机可执行程序以及模块,如本发明实施例中的BERT异常检测设备对应的程序指令/模块。控制处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而执行电缆接头的导体温度计算系统的各种功能应用以及数据处理,即实现上述方法实施例的一种基于模板序列的BERT异常检测方法和/或一种基于词序列的BERT异常检测方法。

存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据电缆接头的导体温度计算系统的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于控制处理器远程设置的存储器,这些远程存储器可以通过网络连接至该BERT异常检测设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

所述一个或者多个模块存储在所述存储器中,当被所述一个或者多个控制处理器执行时,执行上述方法实施例中的一种基于模板序列的BERT异常检测方法和/或一种基于词序列的BERT异常检测方法。

本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个控制处理器执行,可使得上述一个或多个控制处理器执行上述方法实施例中的一种基于模板序列的BERT异常检测方法和/或一种基于词序列的BERT异常检测方法。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

通过以上的实施方式的描述,本领域技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现。本领域技术人员可以理解实现上述实施例方法中的全部或部分流程是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示意性实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号