CN115766518A - 云边端系统的异常检测模型训练、异常检测方法及系统 - Google Patents
云边端系统的异常检测模型训练、异常检测方法及系统 Download PDFInfo
- Publication number
- CN115766518A CN115766518A CN202211474687.3A CN202211474687A CN115766518A CN 115766518 A CN115766518 A CN 115766518A CN 202211474687 A CN202211474687 A CN 202211474687A CN 115766518 A CN115766518 A CN 115766518A
- Authority
- CN
- China
- Prior art keywords
- sequence
- training
- model
- anomaly detection
- vector representation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明提供可一种云边端系统的异常检测模型训练、异常检测方法及系统,模型训练方法包括:各边端对第一样本日志序列进行特征提取,获得第一向量表示序列,并将第一向量表示序列以及对应的异常标注信息发送至云端;云端基于各边端发送的第一向量表示序列以及对应的异常标注信息,对初始分类模型进行有监督训练,获得预训练分类模型并发送至各边端;各边端在预训练分类模型中增加适配层作为迁移模型,并对第二样本日志序列进行特征提取,获得第二向量表示序列;各边端基于第二向量表示序列以及对应的异常标注信息,对迁移模型进行有监督训练,获得各边端对应的异常检测模型。本发明实现了高效地针对海量的终端应用进行异常检测模型的训练和适配。
Description
技术领域
本发明属于自然语言处理与智能运维技术领域,更具体地,涉及一种云边端系统的异常检测模型训练、异常检测方法及系统。
背景技术
随着5G(The 5th Generation Mobile Communication Technology,第五代移动通信系统)与IoT(Internet of Things,物联网)连网装置的快速发展,传统云计算架构无法满足海量终端设备的计算需求,而云边端协同系统能够发挥云计算效率高,边缘计算低时延的特点,是未来数字化转型的重要架构。随着系统越来越庞大、终端设备越来越复杂,运维智能化的要求越来越高。
传统的异常检测方法在很大程度上依赖于系统规则和领域知识,大量耗费人力且通用性较差。利用机器学习算法自动地从海量运维数据中不断地学习、提炼并总结规则,将过去人工总结运维规则的过程变成自动学习的过程,即智能运维,是运维技术发展必然的趋势。然而,无监督学习准确度较差;有监督学习的方法训练模型时又需要大量的标注数据。实际情景中,获取标注的代价往往非常高,且传统的云计算平台无法高效地针对海量的终端应用进行模型的训练和适配。
发明内容
针对现有技术的缺陷,本发明的目的在于提供一种云边端系统的异常检测模型训练、异常检测方法及系统,旨在解决现有技术无法高效地针对海量的终端应用进行异常检测模型的训练的问题。
为实现上述目的,第一方面,本发明提供了一种云边端系统的异常检测模型训练方法,包括:
S101各边端对第一样本日志序列进行特征提取,获得第一向量表示序列,并将所述第一向量表示序列以及对应的异常标注信息发送至云端;
S102云端基于所述各边端发送的第一向量表示序列以及对应的异常标注信息,对初始分类模型进行有监督训练,获得预训练分类模型并发送至各边端;
S103各边端在所述预训练分类模型中增加适配层作为迁移模型,并对第二样本日志序列进行特征提取,获得第二向量表示序列;
S104各边端基于所述第二向量表示序列以及对应的异常标注信息,对迁移模型进行有监督训练,获得各边端对应的异常检测模型。
在一个可选的示例中,步骤S101之前还包括:
云端基于第三样本日志序列,对预训练模型进行自监督训练,获得特征提取模型并发送至各边端;
各边端对第一样本日志序列进行特征提取,获得第一向量表示序列,包括:
各边端基于所述特征提取模型,对第一样本日志序列进行特征提取,获得第一向量表示序列。
在一个可选的示例中,各边端对第一样本日志序列进行特征提取,获得第一向量表示序列,包括:
各边端对所述第一样本日志序列中的各条日志进行分词,获得分词结果,并基于预设的词汇表将分词结果转化为子词序列;
各边端对所述子词序列进行编码,获得向量序列,并将向量序列中的各个向量取平均获得向量表示;
各边端将所述各条日志的向量表示组成第一向量表示序列。
在一个可选的示例中,所述适配层包括第一投影层,第二投影层以及所述第一投影层和所述第二投影层之间的激活层。
第二方面,本发明提供一种云边端系统的异常检测方法,所述方法应用于各边端,所述方法包括:
S601对终端上报的日志序列进行特征提取,获得向量表示序列;
S602将所述向量表示序列输入至异常检测模型,获得所述日志序列的异常检测结果并发送至云端;
其中,所述异常检测模型是基于如第一方面所述的云边端系统的异常检测模型训练方法训练得到的。
第三方面,本发明提供一种云边端系统的异常检测模型训练系统,所述系统包括各边端和云端;
所述各边端用于对第一样本日志序列进行特征提取,获得第一向量表示序列,并将所述第一向量表示序列以及对应的异常标注信息发送至云端;
所述云端用于基于所述各边端发送的第一向量表示序列以及对应的异常标注信息,对初始分类模型进行有监督训练,获得预训练分类模型并发送至各边端;
所述各边端还用于在所述预训练分类模型中增加适配层作为迁移模型,并对第二样本日志序列进行特征提取,获得第二向量表示序列;
所述各边端还用于基于所述第二向量表示序列以及对应的异常标注信息,对迁移模型进行有监督训练,获得各边端对应的异常检测模型。
在一个可选的示例中,所述云端还用于基于第三样本日志序列,对预训练模型进行自监督训练,获得特征提取模型并发送至各边端;
所述各边端具体用于基于所述特征提取模型,对第一样本日志序列进行特征提取,获得第一向量表示序列。
在一个可选的示例中,所述各边端具体用于对所述第一样本日志序列中的各条日志进行分词,获得分词结果,并基于预设的词汇表将分词结果转化为子词序列;对所述子词序列进行编码,获得向量序列,并将向量序列中的各个向量取平均获得向量表示;以及,将所述各条日志的向量表示组成第一向量表示序列。
在一个可选的示例中,所述各边端所增加的所述适配层包括第一投影层,第二投影层以及所述第一投影层和所述第二投影层之间的激活层。
第四方面,本发明提供一种云边端系统的异常检测系统,所述系统应用于各边端,所述系统包括:
特征提取模块,用于对终端上报的日志序列进行特征提取,获得向量表示序列;
异常检测模块,用于将所述向量表示序列输入至异常检测模型,获得所述日志序列的异常检测结果并发送至云端;
其中,所述异常检测模型是基于如第一方面所述的云边端系统的异常检测模型训练方法训练得到的。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下有益效果:
本发明提供一种云边端系统的异常检测模型训练、异常检测方法及系统,针对云边端系统日志序列,通过云边协同,采用预训练加迁移学习的训练方法最终得到适合每个边端的异常检测模型,可以实现高效地针对海量的终端应用进行模型的训练和适配,在仅有少量标注数据或标注数据不完善的情况下也能训练效果较好的异常检测模型,同时能够满足规模越发庞大的云边端协同系统异常检测的准确度和实时性的要求。
附图说明
图1是本发明实施例提供的异常检测模型训练方法的流程示意图;
图2是本发明实施例提供的云边端系统的架构图;
图3是本发明实施例提供的日志文本的向量表示的示意图;
图4是本发明实施例提供的初始分类模型的架构图;
图5是本发明实施例提供的迁移模型的架构图;
图6是本发明实施例提供的异常检测方法的流程示意图;
图7是本发明实施例提供的异常检测模型训练系统的架构图;
图8是本发明实施例提供的异常检测系统的架构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
云边端系统主要包括:云平台层、通信网络层、边缘计算层和终端层;其中云平台层包括云计算服务器中心、数据库、和云端文件存储系统,具备较高的计算效率;网络通信层包括多种网络通信方式,负责云平台层、边缘层和终端设备的信息传递;边缘计算层包括边缘设备和本地文件存储系统;终端层包括多种接入设备与服务。随着系统越来越庞大、终端设备越来越复杂,运维智能化的要求越来越高。
近年来,许多基于日志的自动异常检测方法被提出,主要分为日志解析、特征提取、异常检测这几个步骤。日志解析的代表方法有Drain、Spell等,目的是将各种不同格式的非结构化日志文本转化为结构化日志模板。特征提取和异常检测使用的方法主要分为无监督学习方法和有监督学习方法。无监督学习方法通常使用聚类、PCA(PrincipalComponentAnalysis,主成分分析)等机器学习方法,无需额外的正常日志或异常日志的标注;有监督学习方法一般根据异常日志的标注学习日志的异常模式,从而达到异常检测的目的,通常采用CNN(Convolutional Neural Networks,卷积神经网络)、LSTM(Long Short-Term Memory,长短期记忆网络)等深度学习方法,近年来也出现了一些基于自然语言处理的方法。
上述方法通常无法满足海量日志实时处理的效率和准确度的要求。简单来说:首先,无监督学习准确度较差;有监督的方法训练模型时又需要大量的标注数据。实际情景中,获取标注的代价往往非常高,且传统的云计算平台无法高效地针对海量的终端应用进行模型的训练和适配,同时传统的迁移学习的方法在当前复杂种类的IOT系统中的表现效果并不是很好。现有技术无法满足规模越发庞大的云边端协同系统异常检测的准确度和实时性的要求。
为克服现有技术的不足,本发明提供一种云边端系统的异常检测模型训练方法,通过云边协同,在仅有少量标注数据或标注数据不完善的情况下也能训练效果较好的异常检测模型,从而能够及时、主动地从日志信息中发现系统或应用程序等的服务异常,以便及时采取应对措施,提高系统的稳定性。
图1是本发明实施例提供的异常检测模型训练方法的流程示意图,如图1所示,该方法具体包括:
步骤S101,各边端对第一样本日志序列进行特征提取,获得第一向量表示序列,并将第一向量表示序列以及对应的异常标注信息发送至云端;
步骤S102,云端基于各边端发送的第一向量表示序列以及对应的异常标注信息,对初始分类模型进行有监督训练,获得预训练分类模型并发送至各边端;
步骤S103,各边端在预训练分类模型中增加适配层作为迁移模型,并对第二样本日志序列进行特征提取,获得第二向量表示序列;
步骤S104,各边端基于第二向量表示序列以及对应的异常标注信息,对迁移模型进行有监督训练,获得各边端对应的异常检测模型。
此处,样本日志序列即多条连续的样本日志组成的序列,此处的样本日志即作为模型训练样本的历史日志文本。每条日志文本经过特征提取之后都会获得相应的向量表示,由此即可组成向量表示序列。第一向量表示序列用于异常检测分类模型的预训练,第二向量表示序列用于异常检测分类模型的迁移学习。
具体地,图2是本发明实施例提供的云边端系统的架构图,如图2所示,云边端系统的架构包括依次通信连接的终端、边端1-N和云端,终端与边端均安装在同一本地网段,云端安装在远程网段。终端生成日志文本,并传递给边端;边端接收日志文本,并传递给云端。
各个边端采用预先构建的特征提取模型对部分本地日志文本组成的第一样本日志序列进行特征提取,得到第一向量表示序列,并对第一样本日志序列进行异常标注得到异常标注信息,将第一向量表示序列和对应的异常标注信息传递给云端。云端随后根据所有边端发送的第一向量表示序列和对应的异常标注信息,对多层transformer结构的初始分类模型进行有监督预训练,得到预训练分类模型,并将预训练分类模型分发到各个边端。
在系统的迁移学习阶段,各个边端接收云端传递的预训练分类模型,在模型中增加少量参数的适配层得到迁移模型,并对采集到的少量本边缘域日志文本组成的第二样本日志序列进行异常标注,采用特征提取模型对第二样本日志序列进行特征提取,根据获得的第二向量表示序列以及对应的异常标注信息进行模型迁移训练得到各个边端独立的异常检测模型。最后,各个边端可以使用特征提取模型和异常检测模型对实时采集的日志序列进行特征提取和异常值判断,并将检测结果反馈给云端进行管理和存储。
需要说明的是,由于一条日志是否判定为异常,与它本身的内容有关,同时也与它的前后日志有关,因此本发明实施例基于日志序列进行异常检测模型的训练,可以提高异常检测模型的准确性,进而可以提高云边端系统的异常检测准确性。另外,边端进行模型迁移训练时,各个边缘域独立进行训练,且训练时仅迭代适配层的参数,模型其他参数均固定保持不变。
针对云边端系统日志序列,首先利用云端的计算效率进行预训练得到各个边端通用的用于日志异常检测任务的预训练分类模型,再在此基础上进行模型迁移,得到各个边端独立的异常检测模型,可以提升异常检测模型的训练效率和可靠性,并且,通过采用预训练加迁移学习的训练方法,可以实现利用现有标签,仅需额外获取少量标签即可进行模型迁移。
本发明实施例提供的方法,针对云边端系统日志序列,通过云边协同,采用预训练加迁移学习的训练方法最终得到适合每个边端的异常检测模型,可以实现高效地针对海量的终端应用进行模型的训练和适配,在仅有少量标注数据或标注数据不完善的情况下也能训练效果较好的异常检测模型,同时能够满足规模越发庞大的云边端协同系统异常检测的准确度和实时性的要求。
基于上述实施例,步骤S101之前还包括:
云端基于第三样本日志序列,对预训练模型进行自监督训练,获得特征提取模型并发送至各边端;
步骤S101中,各边端对第一样本日志序列进行特征提取,获得第一向量表示序列,包括:
各边端基于特征提取模型,对第一样本日志序列进行特征提取,获得第一向量表示序列。
具体地,为了保证特征提取模型在日志特征提取任务上的应用效果,本发明实施例中特征提取模型需要根据大量多样性的日志文本数据即第三样本日志序列,对预训练模型进行自监督训练得到,而又由于此训练需要较高的计算效率和大量多样性的日志数据,作为优选,此步骤在云端进行,即云端接收各边端传递的大量日志文本,进行特征提取模型的训练,并将特征提取模型分发到各个边端进行边缘域日志特征提取。
此处,预训练模型可以是RoBERTa模型。在对预训练模型进行自监督训练时可以使用动态掩码机制,即随机从输入的文本内容中掩码掉一些子词,使模型通过上下文内容来预测该子词。
在各个边端接收到特征提取模型之后,可以采用特征提取模型,对第一样本日志序列中的各条日志进行特征提取,获得各条日志的向量表示并由此组成第一向量表示序列,并发送给云端,用于后续分类模型的预训练。类似地,各个边端还可以采用特征提取模型,对第二样本日志序列中的各条日志进行特征提取,获得各条日志的向量表示并由此组成第二向量表示序列,用于后续迁移模型的训练。
本发明实施例提供的方法,针对云边端系统日志,首先采用一级预训练获得特征提取模型,再基于特征提取模型所得到的向量表示序列,去完成分类模型的预训练以及迁移学习,从而利用现有无标签数据和现有标签,采用两级预训练加迁移学习的训练方法得到异常检测模型,进一步保证了在仅有少量标注数据或标注数据不完善的情况下也能训练效果较好的异常检测模型。
基于上述任一实施例,各边端对第一样本日志序列进行特征提取,获得第一向量表示序列,包括:
各边端对第一样本日志序列中的各条日志进行分词,获得分词结果,并基于预设的词汇表将分词结果转化为子词序列;
各边端对子词序列进行编码,获得向量序列,并将向量序列中的各个向量取平均获得向量表示;
各边端将各条日志的向量表示组成第一向量表示序列。
具体地,图3是本发明实施例提供的日志文本的向量表示的示意图。特征提取模型(即图3中的日志语言模型)可以由分词器和多层Transformer编码器组成,完成第一样本日志序列中的各条日志文本的特征提取。对于一条长度为L的日志文本,通过分词器对该条日志文本进行分词,获得分词结果并基于预先设置的子词粒度的词汇表Z将分词结果转化为长度为M的子词序列(L小于等于M),再由多层Transformer编码器,转化为M个维度长度均为D的向量序列,最终可以实现将输入的每条日志文本,转化为一个蕴含日志语义信息的多维向量,同时可以很好地保留和表示日志文本内容的上下文信息。这M个向量序列是上下文相关的,即向量序列里的每个向量数值的大小都受到其余向量的影响。取这M个向量的平均值,作为这条日志文本的向量表示xi。
子词相比于单词,可以更好地规避超出词汇表(Out Of Vocabulary)问题,平衡了词汇量和语义独立性。进一步地,为了保证词汇表适用于日志领域,本发明实施例中云端将各个边端转发的来自不同域和终端设备的日志文本构建日志语料库,对日志语料库采用字节对编码的方法生成子词粒度的词汇表A,并与原始的RoBERTa模型使用的子词粒度的词汇表B合并,作为日志专用的词汇表Z并传输给各个边端,其中Z=A∪B。
需要说明的是,现有的深度学习方法通常会首先使用日志解析的方法,但日志解析的过程本身会带来解析误差,进而影响后续异常检测的准确性,对此,本发明实施例并没有将原始日志解析为固定模板,而是直接把原始日志输入到网络,通过分词器切分为一个个子词token,Transformer将一个个token转化为上下文相关的特征向量,因而最终可以实现将输入的每条日志文本,转化为一个蕴含日志语义信息的多维向量,从而通过采用非解析的一套日志分析方法,避免了因解析带来的误差,进一步提升了异常检测模型的准确性。
基于上述任一实施例,云端将第一向量表示序列X和对应的异常标注信息输入到包含多层Transformer编码器的初始分类模型中进行监督学习训练,得到预训练分类模型。
考虑到一条日志是否判定为异常,与它本身的内容有关,同时也与它的前后日志的顺序有关。图4是本发明实施例提供的初始分类模型的架构图,如图4所示,本发明实施例中云端对接收的第一向量表示序列X,按照每条日志的向量表示xi在X中的位置i的sin和cos函数,应用正弦编码器来生成位置编码向量pi,然后将对应位置的xi和pi相加并输入到初始分类模型中进行参数训练。
初始分类模型是由E个Transformer编码器组成,典型的E的取值范围为2-20;对于单个的Transformer编码器,多头注意力层为每个具有不同注意力模式的日志消息计算注意力得分矩阵。注意力分数是通过训练注意力层的Q和K矩阵来计算的。不同的关注模式是通过多头注意力获得的,这使模型能够考虑哪个注意力分数是显著的,功能类似CNN每一层中使用的多个卷积核,注意头的数量典型值为5-20。多头注意力层后接全连接网络,网络大小的典型值是1000-5000。
多层Transformer编码器输出到池化层、dropout层和一个全连接层,使用softmax方法来计算异常概率值,如图4所示。初始学习率可以设置为3e-4,小批量大小和dropout率可以分别设置为64和0.1;使用交叉熵作为损失函数。
类似地,各个边端在进行模型迁移训练时,也需要将第二向量表示序列以及对应的位置编码序列一起输入到迁移模型中进行参数训练。
基于上述任一实施例,适配层包括第一投影层,第二投影层以及第一投影层和第二投影层之间的激活层。
具体地,在系统边缘域的部署阶段进行异常检测分类模型的迁移学习。图5是本发明实施例提供的迁移模型的架构图,各个边端接收云端分发的预训练分类模型作为基础模型,固定模型中的网络参数不变,在预训练分类模型的每个Transformer编码器结构中新增适配层(即图5中的适配器)作为迁移模型,此处的适配层包括第一投影层(即图5中的上投影层),第二投影层(即图5中的下投影层)以及第一投影层和第二投影层之间的激活层。
其中,上、下投影层的维度与Transformer编码器中多头注意力层的维度一致,记为d,激活层的维度记为m,m/d的值在0.5-8%之间;适配层的输出如下式所示:h为适配层的输入,Wup和Wdown分别配上下投影层的权重参数;每个边端增加的适配层结构不变。
h′=Wuptanh(Wdownh)+h
边端1-N分别使用各自采集到的少量本边缘域日志文本组成第二样本日志序列,进行异常标注,并经过前述的特征提取模型,完成第二样本日志序列的特征提取并输出第二向量表示序列。随后采用监督学习的方法,将第二向量表示序列和对应的异常标注信息输入到迁移模型中,用于适配层参数的训练,最终得到各个边缘域更加适用的异常检测模型。
基于上述任一实施例,本发明还提供一种云边端系统的异常检测方法。图6是本发明实施例提供的异常检测方法的流程示意图,如图6所示,该方法应用于各边端,该方法具体包括:
步骤S601,对终端上报的日志序列进行特征提取,获得向量表示序列;
步骤S602,将向量表示序列输入至异常检测模型,获得日志序列的异常检测结果并发送至云端;
其中,异常检测模型是基于上述任一实施例提供的云边端系统的异常检测模型训练方法训练得到的。
具体地,日志序列即多条连续的日志文本组成的序列。边端实时采集终端上报的日志数据,每条日志文本经过特征提取之后都会获得相应的向量表示,由此即可组成向量表示序列。
随即,根据上述任一实施例提供的云边端系统的异常检测模型训练方法训练得到的异常检测模型,将向量表示序列输入到异常检测模型中得到日志序列的异常检测结果,并反馈给云端进行管理和存储。
本发明实施例提供的方法,通过云边协同,采用预训练加迁移学习的训练方法最终得到适合每个边端的异常检测模型,完成日志数据的实时、准确的异常检测,从而能够及时、主动地从日志信息中发现系统或应用程序等的服务异常,以便及时采取应对措施,提高系统的稳定性。
基于上述任一实施例,步骤S601可以是边端采用上述实施例提供的特征提取模型完成的,对于日志序列中的每一条日志文本,通过分词器对该条日志文本进行分词,获得分词结果,并根据预先设置的子词粒度的词汇表Z将分词结果转化为子词序列,再由多层Transformer编码器转化为蕴含日志语义信息的固定维度的向量序列。将向量序列中的各个向量取平均,作为这条日志文本的向量表示。通过此种方式,即可获得日志序列中所有日志文本的向量表示,组成向量表示序列。
需要说明的是,现有的深度学习方法通常会首先使用日志解析的方法,但日志解析的过程本身会带来解析误差,进而影响后续异常检测的准确性,对此,本发明实施例并没有将原始日志解析为固定模板,而是直接把原始日志输入到网络中,通过分词器切分为一个个子词token,Transformer将一个个token转化为上下文相关的特征向量,因而最终可以实现将输入的每条日志文本,转化为一个蕴含日志语义信息的多维向量,从而通过采用非解析的一套日志分析方法,避免了因解析带来的误差,进一步提升了后续异常检测的准确性。
基于上述任一实施例,各个边端可以应用正弦编码器,对向量表示序列中各个向量表示进行位置编码,由此得到各个位置编码向量并组成位置编码序列。随即将向量表示序列和对应的位置编码序列相加并输入到异常检测模型中,经过多层Transformer编码器输出到池化层、dropout层和一个全连接层,再使用softmax层来计算异常概率值,最终获得日志序列的异常检测结果,并反馈给云端进行管理和存储。
基于上述任一实施例,本发明提供一种基于日志特征提取的云边端系统故障诊断方法,该方法包括:
(1)特征提取模型的预训练部分:
1.1云端接收大量不同边端采集的现有日志序列,作为日志语料库。日志序列是由单条日志组成的序列,例如:
“L1:081109 203521 146 INFO dfs.DataNode$PacketResponder:PacketResponder for block blk_7503483334202473044 terminating
L2:081109 203521 146 INFO dfs.DataNode$PacketResponder:Received blockblk_7503483334202473044 of size 233217 from/10.251.71.16
L3:081109 203521 148 INFO dfs.DataNode$PacketResponder:PacketResponder 2 for block blk_7503483334202473044 terminating”
L4:1117838570 2005.06.03 R02-M1-N0-C:J12-U11 2005-06-03-15.42.50.363779 R02-M1-N0-C:J12-U11 RAS KERNEL INFO instruction cache parityerror corrected
L5:1117979336 2005.06.05 R02-M0-NC-C:J04-U01 2005-06-05-06.48.56.695380 R02-M0-NC-C:J04-U01 RAS KERNEL INFO generating core.1415
L6:1118538740 2005.06.11 R30-M0-N9-C:J16-U01 2005-06-11-18.12.20.931990 R30-M0-N9-C:J16-U01 RAS KERNEL FATAL data TLB error interrupt“
L7:1104566421 2005.01.01 sadmin1 Jan 1 00:00:21sadmin1/sadmin1kernel:hda:drive not ready for command
L8:1104566421 2005.01.01sadmin1 Jan 1 00:00:21sadmin1/sadmin1 kernel:hda:status error:status=0x00{}
L9:1104566423 2005.01.01 sn209 Jan 1 00:00:23sn209/sn209 sendmail[17795]:unable to qualify my own domain name(sn209)--using short name”
分别是来自三个不同边端采集到的日志,其中L1-L3来自于边端1,L4-L6来自于边端2,L7-L9来自于边端3。日志语料库经过日志文本预处理后随机组合形成。预处理主要指的是使一条日志独占一行文本,将大写字母全部转换为小写字母等。
1.2基于上节所述的日志语言的语料库,云平台服务器即云端采用字节对编码的方法,使用日志文本生成子词词汇表。该方法使用bytes作为基础的子词单元,将最常出现的子词对合并,目标是把输入的日志文本,切分成一个个子词,每个子词相对地具有语言含义。子词相比于单词,可以更好地规避超出词汇表(Out Of Vocabulary)问题,平衡了词汇量和语义独立性。
1.3将1.2节所述的子词词汇表记为集合X,将原始的RoBERTa模型使用的子词词汇表记为集合A,将二者合并生成日志语言专用的子词词汇表B,其中Z=A∪B。
1.4使用1.1节日志语料库对原始的RoBERTa模型继续进行自监督预训练,得到新的适应日志领域的RoBERTa模型,即特征提取模型。RoBERTa模型相比其前身BERT模型,主要改变在于使用了bytes级的字节对编码方法,使用动态MASK机制,以及去除了NSP(Next-Sentence-Prediction)任务等。MASK机制指的是在对模型进行训练的时候,随机从输入的文本内容中掩码掉一些子词,使模型通过上下文内容来预测该子词。
需要说明的是,原始的Roberta模型是自然语言处理的现有预训练模型,它的语料库包含庞大的无标签号文本语料库和图书语料库,它的分词器、子词词汇表、Transformer编码器都不具备日志语言的特性。日志语言与自然语言有共同点和不同点,此步骤的目的是利用共同点,减少预训练工作量,同时加入不同点,训练出更适应日志领域的Roberta模型。另外,由于基于日志语料库的训练需要较高的计算效率和大量多样性的日志数据,此步骤在云端进行。
(2)日志文本的特征提取部分:
云端将步骤(1)得到的特征提取模型分别传递到各个边端1-N。边端将单条日志文本进行数据清洗,并输入到特征提取模型中,获得单条日志文本的向量表示,如图3所示。随后利用滑动窗口技术对数据进行裁剪,降低数据复杂度;实现针对日志序列的特征提取。
特征提取模型包括分词器和多层Transformer。其中分词器实现日志文本到token的切分,因此本方法采用的是非解析的方法,本方法并没有将原始日志解析为固定模板(此处存在解析误差),而是直接把原始日志输入到网络,通过分词器切分为一个个token。Transformer架构采用了注意力机制,实现了编码器(encoder)的功能,即embedding(将一个个token转化为上下文相关的特征向量),因而最终可以实现将输入的每条日志文本,转化为一个蕴含日志语义信息的多维向量,同时可以很好地保留和表示日志文本内容的上下文信息。
如一条长度为L的日志文本,通过分词器和子词词汇表Z转化为长度为M的子词序列(L小于等于M),再由多层Transformer架构,转化为M个维度长度均为D的向量序列。这M个向量序列是上下文相关的,即向量序列里的每个向量数值的大小都受到其余向量的影响。取这M个向量的平均值,作为这条日志文本的向量表示xi。D的取值取决于特征提取模型,通常为768或1024。
(3)分类模型的预训练部分:
3.1边端1-N对历史日志文本数据进行部分异常标注得到源日志数据,同时使用上述的特征提取模型,对源日志数据进行时间和状态两个维度的特征提取,得到输入的向量表示序列x1,x2,…,xn;每一条日志对应一个向量表示xi(i∈[1,n]);选取n个连续向量表示组成向量表示序列X=[x1,x2,…,xn],n为选取的窗口长度,即n条连续日志的向量表示为一个向量表示序列,取值范围一般为10-100,并将向量表示序列和对应的异常标注信息传递到云端进行汇总和模型训练。
3.2云端将向量表示序列X和对应的异常标注信息输入到包含多层Transformer编码器的初始分类模型中进行监督学习训练,得到预训练分类模型。
考虑到一条日志是否判定为异常,与它本身的内容有关,同时也与它的前后日志的顺序有关,如图3所示,云端对接收的向量表示序列X,按照每条日志的向量表示xi在向量表示序列X中的位置i的sin和cos函数,应用正弦编码器来生成位置编码向量pi,然后将对应位置的xi和pi相加并输入到初始分类模型中进行参数训练。
初始分类模型是由E个Transformer编码器组成,典型的E的取值范围为2-20;对于单个的Transformer编码器,多头注意力层为每个具有不同注意力模式的日志消息计算注意力得分矩阵。注意力分数是通过训练注意力层的Q和K矩阵来计算的。不同的关注模式是通过多头注意力获得的,这使模型能够考虑哪个注意力分数是显著的,功能类似CNN每一层中使用的多个卷积核,注意头的数量典型值为5-20。多头注意力层后接全连接网络,网络大小的典型值是1000-5000。
多层Transformer编码器输出到池化层、dropout层和一个全连接层,并使用softmax方法来计算异常概率值,如图4所示。将计算得到的异常概率结果与数据对应的标注信息对比并计算损失函数,迭代进行模型参数的训练;云端将得到的预训练分类模型分发到各个边端。初始学习率可以设置为3e-4,小批量大小和dropout率可以分别设置为64和0.1;使用交叉熵作为损失函数。
需要说明的是,云端不具备判断日志是否异常的专业领域知识,因此对于日志数据的标注是在边端执行的。
(4)迁移学习与异常检测部分:
4.1云端将步骤(3)预训练好的预训练分类模型分别传递到各个边端1-N。同时各个边端分别采集少量本边缘域的终端设备的日志数据,并进行少量异常标注作为目标数据库1-N。每个边端使用的目标数据库互相独立。采用步骤(2)的方法对目标数据库的日志文本进行特征提取得到向量表示序列。
4.2各个边端对4.1接收的预训练分类模型固定模型中的网络参数不变,在图5所示的Transformer编码器的结构中增加含有少量参数的适配层作为迁移模型,此处的适配层由一个下投影层、一个激活层和一个上投影层组成。其中,上、下投影层的维度与Transformer编码器中多头注意力层的维度一致,记为d,激活层的维度记为m,m/d的值在0.5-8%之间;适配层的输出如下式所示:h为适配层的输入,Wup和Wdown分别配上下投影层的权重参数;每个边端增加的适配层结构不变。
h′=Wuptanh(Wdownh)+h
4.3边端1-N分别使用4.1得到的目标数据库1-N,采用监督学习的方法,将向量表示序列和标注信息输入到迁移模型中,用于适配层参数的训练,最终得到各个边缘域独立的异常检测模型。
4.4各个边端实时采集终端上报的日志数据,采用步骤(2)的日志特征提取方法得到对应的向量表示序列,将向量表示序列输入到各自的异常检测模型中得到其异常检测结果,并反馈给云端进行管理和存储。
本发明在系统的初始阶段,首先进行特征提取模型的训练和异常检测分类模型的预训练,在系统边缘域的部署阶段进行异常检测分类模型的迁移学习,最终得到各个边端独立的异常检测模型,在此基础上,各个边端即可利用特征提取模型和异常检测模型,针对实时采集的日志数据,完成异常检测,本发明与现有技术相比,减少了网络带宽的压力,同时提升了系统异常检测效率和可靠性。
基于上述任一实施例,本发明实施例提供了一种云边端系统的异常检测模型训练系统。图7是本发明实施例提供的异常检测模型训练系统的架构图,如图7所示,该系统包括各边端710和云端720;
各边端710用于对第一样本日志序列进行特征提取,获得第一向量表示序列,并将第一向量表示序列以及对应的异常标注信息发送至云端;
云端720用于基于各边端发送的第一向量表示序列以及对应的异常标注信息,对初始分类模型进行有监督训练,获得预训练分类模型并发送至各边端;
各边端710还用于在预训练分类模型中增加适配层作为迁移模型,并对第二样本日志序列进行特征提取,获得第二向量表示序列;
各边端710还用于基于第二向量表示序列以及对应的异常标注信息,对迁移模型进行有监督训练,获得各边端对应的异常检测模型。
本发明实施例提供的系统,针对云边端系统日志序列,通过云边协同,采用预训练加迁移学习的训练方法最终得到适合每个边端的异常检测模型,可以实现高效地针对海量的终端应用进行模型的训练和适配,在仅有少量标注数据或标注数据不完善的情况下也能训练效果较好的异常检测模型,同时能够满足规模越发庞大的云边端协同系统异常检测的准确度和实时性的要求。
基于上述任一实施例,本发明实施例提供了一种云边端系统的异常检测系统。图8是本发明实施例提供的异常检测系统的架构图,如图8所示,该系统应用于各边端,该系统具体包括:
特征提取模块810,用于对终端上报的日志序列进行特征提取,获得向量表示序列;
异常检测模块820,用于将所述向量表示序列输入至异常检测模型,获得所述日志序列的异常检测结果并发送至云端;
其中,所述异常检测模型是基于如上述任一实施例提供的云边端系统的异常检测模型训练方法训练得到的。
本发明实施例提供的系统,通过云边协同,采用预训练加迁移学习的训练方法最终得到适合每个边端的异常检测模型,完成日志数据的实时、准确的异常检测,从而能够及时、主动地从日志信息中发现系统或应用程序等的服务异常,以便及时采取应对措施,提高系统的稳定性。
可以理解的是,上述各个模块的详细功能实现可参见前述方法实施例中的介绍,在此不做赘述。
另外,本发明实施例提供了另一种云边端系统的异常检测模型训练装置,其包括:存储器和处理器;
所述存储器,用于存储计算机程序;
所述处理器,用于当执行所述计算机程序时,实现上述实施例中的异常检测模型训练方法。
此外,本发明实施例提供了另一种云边端系统的异常检测装置,其包括:存储器和处理器;
所述存储器,用于存储计算机程序;
所述处理器,用于当执行所述计算机程序时,实现上述实施例中的异常检测方法。
本发明还提供了一种计算机可读存储介质,所述存储介质上存储有计算机程序,当所述计算机程序被处理器执行时,实现上述实施例中的方法。
基于上述实施例中的方法,本发明实施例提供了一种计算机程序产品,当计算机程序产品在处理器上运行时,使得处理器执行上述实施例中的方法。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种云边端系统的异常检测模型训练方法,其特征在于,包括:
S101各边端对第一样本日志序列进行特征提取,获得第一向量表示序列,并将所述第一向量表示序列以及对应的异常标注信息发送至云端;
S102云端基于所述各边端发送的第一向量表示序列以及对应的异常标注信息,对初始分类模型进行有监督训练,获得预训练分类模型并发送至各边端;
S103各边端在所述预训练分类模型中增加适配层作为迁移模型,并对第二样本日志序列进行特征提取,获得第二向量表示序列;
S104各边端基于所述第二向量表示序列以及对应的异常标注信息,对迁移模型进行有监督训练,获得各边端对应的异常检测模型。
2.根据权利要求1所述的异常检测模型训练方法,其特征在于,步骤S101之前还包括:
云端基于第三样本日志序列,对预训练模型进行自监督训练,获得特征提取模型并发送至各边端;
各边端对第一样本日志序列进行特征提取,获得第一向量表示序列,包括:
各边端基于所述特征提取模型,对第一样本日志序列进行特征提取,获得第一向量表示序列。
3.根据权利要求1或2所述的异常检测模型训练方法,其特征在于,各边端对第一样本日志序列进行特征提取,获得第一向量表示序列,包括:
各边端对所述第一样本日志序列中的各条日志进行分词,获得分词结果,并基于预设的词汇表将分词结果转化为子词序列;
各边端对所述子词序列进行编码,获得向量序列,并将向量序列中的各个向量取平均获得向量表示;
各边端将所述各条日志的向量表示组成第一向量表示序列。
4.根据权利要求3所述的异常检测模型训练方法,其特征在于,所述适配层包括第一投影层,第二投影层以及所述第一投影层和所述第二投影层之间的激活层。
5.一种云边端系统的异常检测方法,其特征在于,所述方法应用于各边端,所述方法包括:
S601对终端上报的日志序列进行特征提取,获得向量表示序列;
S602将所述向量表示序列输入至异常检测模型,获得所述日志序列的异常检测结果并发送至云端;
其中,所述异常检测模型是基于如权利要求1至4所述的云边端系统的异常检测模型训练方法训练得到的。
6.一种云边端系统的异常检测模型训练系统,其特征在于,所述系统包括各边端和云端;
所述各边端用于对第一样本日志序列进行特征提取,获得第一向量表示序列,并将所述第一向量表示序列以及对应的异常标注信息发送至云端;
所述云端用于基于所述各边端发送的第一向量表示序列以及对应的异常标注信息,对初始分类模型进行有监督训练,获得预训练分类模型并发送至各边端;
所述各边端还用于在所述预训练分类模型中增加适配层作为迁移模型,并对第二样本日志序列进行特征提取,获得第二向量表示序列;
所述各边端还用于基于所述第二向量表示序列以及对应的异常标注信息,对迁移模型进行有监督训练,获得各边端对应的异常检测模型。
7.根据权利要求6所述的异常检测模型训练系统,其特征在于,所述云端还用于基于第三样本日志序列,对预训练模型进行自监督训练,获得特征提取模型并发送至各边端;
所述各边端具体用于基于所述特征提取模型,对第一样本日志序列进行特征提取,获得第一向量表示序列。
8.根据权利要求6或7所述的异常检测模型训练系统,其特征在于,所述各边端具体用于对所述第一样本日志序列中的各条日志进行分词,获得分词结果,并基于预设的词汇表将分词结果转化为子词序列;对所述子词序列进行编码,获得向量序列,并将向量序列中的各个向量取平均获得向量表示;以及,将所述各条日志的向量表示组成第一向量表示序列。
9.根据权利要求8所述的异常检测模型训练系统,其特征在于,所述各边端所增加的所述适配层包括第一投影层,第二投影层以及所述第一投影层和所述第二投影层之间的激活层。
10.一种云边端系统的异常检测系统,其特征在于,所述系统应用于各边端,所述系统包括:
特征提取模块,用于对终端上报的日志序列进行特征提取,获得向量表示序列;
异常检测模块,用于将所述向量表示序列输入至异常检测模型,获得所述日志序列的异常检测结果并发送至云端;
其中,所述异常检测模型是基于如权利要求1至4所述的云边端系统的异常检测模型训练方法训练得到的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211474687.3A CN115766518A (zh) | 2022-11-23 | 2022-11-23 | 云边端系统的异常检测模型训练、异常检测方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211474687.3A CN115766518A (zh) | 2022-11-23 | 2022-11-23 | 云边端系统的异常检测模型训练、异常检测方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115766518A true CN115766518A (zh) | 2023-03-07 |
Family
ID=85336029
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211474687.3A Pending CN115766518A (zh) | 2022-11-23 | 2022-11-23 | 云边端系统的异常检测模型训练、异常检测方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115766518A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117194992A (zh) * | 2023-11-01 | 2023-12-08 | 支付宝(杭州)信息技术有限公司 | 一种模型训练、任务执行方法、装置、存储介质及设备 |
CN117436496A (zh) * | 2023-11-22 | 2024-01-23 | 深圳市网安信科技有限公司 | 基于大数据日志的异常检测模型的训练方法及检测方法 |
-
2022
- 2022-11-23 CN CN202211474687.3A patent/CN115766518A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117194992A (zh) * | 2023-11-01 | 2023-12-08 | 支付宝(杭州)信息技术有限公司 | 一种模型训练、任务执行方法、装置、存储介质及设备 |
CN117194992B (zh) * | 2023-11-01 | 2024-04-19 | 支付宝(杭州)信息技术有限公司 | 一种模型训练、任务执行方法、装置、存储介质及设备 |
CN117436496A (zh) * | 2023-11-22 | 2024-01-23 | 深圳市网安信科技有限公司 | 基于大数据日志的异常检测模型的训练方法及检测方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yang et al. | Semantic communications for future internet: Fundamentals, applications, and challenges | |
WO2022088672A1 (zh) | 基于bert的机器阅读理解方法、装置、设备及存储介质 | |
CN115766518A (zh) | 云边端系统的异常检测模型训练、异常检测方法及系统 | |
CN109034368B (zh) | 一种基于dnn的复杂设备多重故障诊断方法 | |
CN113094200B (zh) | 一种应用程序的故障预测方法和装置 | |
CN113051374B (zh) | 一种文本匹配优化方法及装置 | |
US20220358292A1 (en) | Method and apparatus for recognizing entity, electronic device and storage medium | |
CN114722839B (zh) | 人机协同对话交互系统及方法 | |
CN112883193A (zh) | 一种文本分类模型的训练方法、装置、设备以及可读介质 | |
CN111091004B (zh) | 一种语句实体标注模型的训练方法、训练装置及电子设备 | |
CN113158671B (zh) | 一种结合命名实体识别的开放域信息抽取方法 | |
CN116502162A (zh) | 边缘算力网络中的异常算力联邦检测方法、系统及介质 | |
CN114971530A (zh) | 基于自然语言处理的协同运维方法及装置 | |
CN115905187B (zh) | 一种面向云计算工程技术人员认证的智能化命题系统 | |
CN112686040A (zh) | 一种基于图循环神经网络的事件事实性检测方法 | |
TWI734085B (zh) | 使用意圖偵測集成學習之對話系統及其方法 | |
CN115630652A (zh) | 客服会话情感分析系统、方法及计算机系统 | |
CN114969334A (zh) | 异常日志检测方法、装置、电子设备及可读存储介质 | |
CN108959253A (zh) | 核心短语的提取方法、装置及可读存储介质 | |
CN114461816A (zh) | 基于知识图谱的信息补充语义通信系统的实现方法 | |
US11907673B1 (en) | Enhancing chatbot recognition of user intent through graph analysis | |
CN117892701B (zh) | 一种云制造业务协同系统 | |
CN117829819B (zh) | 故障处理方法、设备及计算机可读存储介质 | |
CN117371748B (zh) | 一种智能化产品数据管理系统及方法 | |
WO2023119496A1 (ja) | 抽出装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |