CN115269304A - 日志异常检测模型训练方法、装置及设备 - Google Patents
日志异常检测模型训练方法、装置及设备 Download PDFInfo
- Publication number
- CN115269304A CN115269304A CN202110699643.XA CN202110699643A CN115269304A CN 115269304 A CN115269304 A CN 115269304A CN 202110699643 A CN202110699643 A CN 202110699643A CN 115269304 A CN115269304 A CN 115269304A
- Authority
- CN
- China
- Prior art keywords
- log
- anomaly detection
- word
- detection model
- training
- 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
- 238000001514 detection method Methods 0.000 title claims abstract description 283
- 238000012549 training Methods 0.000 title claims abstract description 163
- 238000000034 method Methods 0.000 title claims abstract description 101
- 238000012545 processing Methods 0.000 claims abstract description 79
- 239000013598 vector Substances 0.000 claims description 245
- 230000011218 segmentation Effects 0.000 claims description 13
- 230000000873 masking effect Effects 0.000 claims description 8
- 238000013473 artificial intelligence Methods 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 37
- 230000006870 function Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 15
- 230000002159 abnormal effect Effects 0.000 description 14
- 230000000694 effects Effects 0.000 description 14
- 230000001537 neural effect Effects 0.000 description 8
- 238000004590 computer program Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000005856 abnormality Effects 0.000 description 4
- 230000004913 activation Effects 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- PEDCQBHIVMGVHV-UHFFFAOYSA-N Glycerine Chemical compound OCC(O)CO PEDCQBHIVMGVHV-UHFFFAOYSA-N 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 150000001875 compounds Chemical class 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000126 substance Substances 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004576 sand Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3034—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
- G06F11/3072—Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3344—Query execution using natural language analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Quality & Reliability (AREA)
- Databases & Information Systems (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Software Systems (AREA)
- Bioinformatics & Computational Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Fuzzy Systems (AREA)
- Medical Informatics (AREA)
- Probability & Statistics with Applications (AREA)
- Debugging And Monitoring (AREA)
Abstract
公开了日志异常检测模型训练方法、装置及设备,应用于人工智能领域,方法包括:获取第一日志样本集,并通过第一日志样本集对初始日志异常检测模型进行预训练,得到预训练的日志异常检测模型,然后获取第二日志样本,通过第二日志样本集对预训练的日志异常检测模型进行微调,即可得到训练好的日志异常检测模型,其中,第一日志样本集是对目标对象的日志数据进行处理得到,第二日志样本集是对目标子对象的日志数据进行处理得到,目标子对象属于目标对象。该方法能够解决现有技术存在的训练得到的日志异常检测模型泛化能力低,导致用户在实现对相似对象生成的日志进行异常检测时,需要训练得到新模型,会耗费大量人力和时间成本,效率低的问题。
Description
技术领域
本申请涉及人工智能领域,尤其涉及一种日志异常检测模型训练方法、装置及设备。
背景技术
硬盘(hard disk drive,HDD)、网络设备(如路由器、交换机等)和处理器等在运行过程中都会产生各类日志用于记录自身的状态以及重要事件,日志包含丰富的运行动态信息,异常信息能通过日志表现出来,因此日志可以用于异常检测和故障诊断。
目前,如图1所示,用户若想实现对某个特定对象(如某个厂家生产的某种型号的内存)生成的日志进行异常检测,主要是通过获取该特定对象生成的历史日志作为训练样本,对初始日志异常检测模型进行训练,得到针对该特定对象的日志具有较好检测效果的训练好的日志异常检测模型,然后利用训练好的模型实现对该特定对象生成的日志进行异常检测。
但是,上述方法训练得到的日志异常检测模型存在泛化能力较低的问题,导致用户在实现对相似特定对象(如另一厂家生产的另一型号的内存)生成的日志进行异常检测时,用户无法利用已经训练得到的日志异常检测模型,只能重新获取相似特定对象生成的历史日志作为训练样本对初始日志异常检测模型进行训练,得到针对相似特定对象生成的日志具有较好检测效果的日志异常检测模型,针对不同特定对象,重新训练得到新模型的过程通常会耗费大量的人力和时间成本,效率较低。
发明内容
本申请提供了日志异常检测模型训练方法、装置及设备,可以解决现有技术存在的训练得到的日志异常检测模型泛化能力较低,导致用户在实现对相似特定对象生成的日志进行异常检测时,需要训练得到针对该特定对象的新的日志异常检测模型,会耗费大量人力和时间成本,效率低的问题。
第一方面,提供一种日志异常检测模型训练方法,所述方法包括:
获取第一日志样本集,其中,所述第一日志样本集是对所述目标对象的日志数据进行处理得到的;
通过所述第一日志样本集对初始日志异常检测模型进行预训练,得到预训练的日志异常检测模型;
获取第二日志样本集,其中,所述第二日志样本集是对目标子对象的日志数据进行处理得到的,所述目标子对象属于目标对象;
通过所述第二日志样本集对所述预训练的日志异常检测模型进行微调,得到训练好的日志异常检测模型。
上述方案中,通过来自目标对象的第一日志样本集对初始日志异常检测模型进行预训练,可以得到具有优质的模型参数以及较强的泛化能力的预训练的日志异常检测模型,在用户获取针对目标子对象的训练好的日志异常检测模型时,使用来自目标子对象的第二日志样本集,对具有优质的模型参数以及较强的泛化能力的预训练的日志异常检测模型进行微调即可,相较于现有技术,本申请提供的模型训练方法可以解决现有技术存在的训练得到的日志异常检测模型泛化能力较低,导致用户在实现对相似特定对象生成的日志进行异常检测时,需要针对该特定对象重新训练得到新的日志异常检测模型,会耗费大量人力和时间成本,效率低的问题。
在一种可能的实现方式中,所述目标对象包括如下子对象中的至少一种:硬盘、内存、闪存、网络设备和处理器,所述目标子对象为所述目标对象中的任意一种类型的子对象。
在一种可能的实现方式中,所述第一日志样本集包括m个日志样本,m为大于1的自然数,所述通过所述第一日志样本集对初始日志异常检测模型进行预训练,得到预训练的日志异常检测模型,包括:
分别对所述m个日志样本进行分词,得到所述m个日志样本对应的m个词序列;
通过所述m个词序列,对初始日志异常检测模型进行预训练,得到预训练的日志异常检测模型。
在一种可能的实现方式中,所述通过所述m个词序列,对初始日志异常检测模型进行预训练,得到预训练的日志异常检测模型,包括:
分别对所述m个词序列中预设比例的词进行掩码处理,得到掩码处理后的m个词序列;
通过所述掩码处理后的m个词序列,对初始日志异常检测模型进行预训练,得到预训练的日志异常检测模型。
上述方案中,通过掩码处理后的m个词序列,对初始日志异常检测模型进行预训练,得到预训练的日志异常检测模型,可以使得更好地学习到被掩码的词的上下文信息,从而使得预训练的日志异常检测模型学习到每个词序列的语义信息,便于后续得到的训练好的日志异常检测模型可以根据待检测日志的语义信息检测待检测日志是否异常。
在一种可能的实现方式中,所述通过所述掩码处理后的m个词序列,对初始日志异常检测模型进行预训练,得到预训练的日志异常检测模型,包括:
分别获取所述掩码处理后的m个词序列中的每个词对应的词嵌入向量和位置嵌入向量,其中,所述每个词对应的词嵌入向量为用于表示所述每个词的多维向量,所述每个词对应的位置嵌入向量表示所述每个词在其所属的词序列中的位置;
分别根据所述掩码处理后的m个词序列中的每个词对应的词嵌入向量和位置嵌入向量,获取所述掩码处理后的m个词序列对应的m个第一行向量;
使用所述m个第一行向量,对初始日志异常检测模型进行预训练,得到预训练的日志异常检测模型。
在一种可能的实现方式中,所述使用所述m个第一行向量,对初始日志异常检测模型进行预训练,得到所述预训练的日志异常检测模型,包括:
分别将所述m个第一行向量,输入初始日志异常检测模型进行训练,得到m个第二行向量;
获取所述m个第二行向量到初始聚类中心的损失;
根据所述m个第二行向量到所述初始聚类中心的损失,训练初始日志异常检测模型,得到所述预训练的日志异常检测模型以及目标聚类中心。
在一种可能的实现方式中,所述方法还包括:
获取所述m个第二行向量到所述目标聚类中心的损失对应的百分位数;
根据所述m个第二行向量到所述目标聚类中心的损失对应的百分位数确定分类阈值,其中,所述分类阈值用于所述训练好的日志异常检测模型对所述待检测日志进行异常检测,得到检测结果。
在一种可能的实现方式中,所述获取所述m个第二行向量到初始聚类中心的损失的公式为:
其中,Vi表示所述m个第二行向量中的第i个第二行向量,c表示所述初始聚类中心,loss(c,Vi)表示所述第i个第二行向量到所述初始聚类中心的损失,i为自然数。
第二方面,提供一种日志异常检测模型训练装置,所述装置包括:
获取模块,用于获取第一日志样本集,其中,所述第一日志样本集是对所述目标对象的日志数据进行处理得到的;
训练模块,通过所述第一日志样本集对初始日志异常检测模型进行预训练,得到预训练的日志异常检测模型;
所述获取模块,还用于获取第二日志样本集,其中,所述第二日志样本集是对目标子对象的日志数据进行处理得到的,所述目标子对象属于目标对象;
所述训练模块,还用于通过所述第二日志样本集对所述预训练的日志异常检测模型进行微调,得到训练好的日志异常检测模型。
在一种可能的实现方式中,所述目标对象包括如下子对象中的至少一种:硬盘、内存、闪存、网络设备和处理器,所述目标子对象为所述目标对象中的任意一种类型的子对象。
在一种可能的实现方式中,所述第一日志样本集包括m个日志样本,m为大于1的自然数,所述训练模块,具体用于:
分别对所述m个日志样本进行分词,得到所述m个日志样本对应的m个词序列;
通过所述m个词序列,对初始日志异常检测模型进行预训练,得到预训练的日志异常检测模型。
在一种可能的实现方式中,所述训练模块,具体用于:
分别对所述m个词序列中预设比例的词进行掩码处理,得到掩码处理后的m个词序列;
通过所述掩码处理后的m个词序列,对初始日志异常检测模型进行预训练,得到预训练的日志异常检测模型。
在一种可能的实现方式中,所述训练模块,具体用于:
分别获取所述掩码处理后的m个词序列中每个词对应的词嵌入向量和位置嵌入向量,其中,所述每个词对应的词嵌入向量为用于表示所述每个词的多维向量,所述每个词对应的位置嵌入向量表示所述每个词在其所属的词序列中的位置;
分别根据所述掩码处理后的m个词序列中每个词对应的词嵌入向量和位置嵌入向量,获取所述掩码处理后的m个词序列对应的m个第一行向量;
使用所述m个第一行向量,对初始日志异常检测模型进行预训练,得到预训练的日志异常检测模型。
在一种可能的实现方式中,所述训练模块,具体用于:
分别将所述m个第一行向量,输入初始日志异常检测模型进行训练,得到m个第二行向量,其中,所述m个第二行向量与所述掩码处理后的m个词序列存在一一对应关系,所述m个第二行向量中的每个第二行向量包括与其对应的掩码处理后的词序列的语义信息;
获取所述m个第二行向量到初始聚类中心的损失;
根据所述m个第二行向量到所述初始聚类中心的损失,训练初始日志异常检测模型,得到预训练的日志异常检测模型以及目标聚类中心。
在一种可能的实现方式中,所述训练模块,还用于:
获取所述m个第二行向量到所述目标聚类中心的损失对应的百分位数;
根据所述m个第二行向量到所述目标聚类中心的损失对应的百分位数确定分类阈值,其中,所述分类阈值用于所述训练好的日志异常检测模型对所述待检测日志进行异常检测,得到检测结果。
在一种可能的实现方式中,所述获取所述m个第二行向量到初始聚类中心的损失的公式为:
其中,Vi表示所述m个第二行向量中的第i个第二行向量,c表示所述初始聚类中心,loss(c,Vi)表示所述第i个第二行向量到所述初始聚类中心的损失,i为自然数。
第三方面,提供了一种非瞬态计算机可读存储介质,所述非瞬态计算机可读介质存储有指令,所述指令用于实现如上述第一方面或者第一方面的任意可能的实现方式提供的方法。
第四方面,提供了一种计算设备,所述计算机设备包括处理器和存储器;所述处理器用于执行所述存储器存储的指令,使得所述计算设备实现如上述第一方面或者第一方面的任意可能的实现方式提供的方法。
第五方面,提供了一种计算机程序产品,包括计算机程序,当所述计算机程序被计算设备读取并执行时,使得所述计算设备执行如上述第一方面或者第一方面的任意可能的实现方式提供的方法。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
图1是本申请涉及的一种现有技术的示意图;
图2是本申请涉及的一种语言遮蔽模型(masked language model,MLM)方法对输入序列中的词进行掩码处理的示意图;
图3是本申请提供的一种日志异常检测模型训练方法的原理示意图;
图4是本申请提供的一种日志异常检测模型训练方法的流程示意图;
图5是本申请提供的一种获取第i个第一日志样本对应的词序列的示意图;
图6是本申请提供的一种获取掩码处理后的词序列对应的第一行向量和第二行向量的示意图;
图7是本申请提供的一种示例性的词嵌入向量和位置嵌入向量的示意图;
图8是本申请提供的一种示例性的词向量的示意图;
图9是本申请提供的一种训练得到预训练的日志异常检测模型的流程示意图;
图10是本申请涉及的使用m个第一行向量对初始日志异常检测模型进行预训练得到m个第二行向量以及目标聚类中心的示意图;
图11是本申请涉及的一种日志异常检测方法的流程示意图;
图12是本申请涉及的对待检测序列对应的第一行向量x进行异常检测得到异常检测结果的示意图;
图13是本申请提供的一种日志异常检测模型训练装置的结构示意图;
图14是本申请提供的一种计算设备的结构示意图。
具体实施方式
下面结合本申请实施例中的附图对本申请实施例进行描述。
本申请实施例中的术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。
本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下中的至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a、b、c、a-b、a-c、b-c或a-b-c,其中a、b、c可以是单个,也可以是多个。
为了便于本领域技术人员对本申请实施例的理解,先对本申请涉及的相关概念或者术语等进行介绍。
(1)日志,是硬盘、网络设备、处理器等对象生成的记录,用来表明硬盘、网络设备、处理器等的状态以及发生了哪些事件。例如,硬盘在故障发生或在认为将会发生故障的情况下生成日志。
日志一般以日志文件的方式保存在设备中,日志文件可以是可直接阅读的文本文件或者是机器可读的二进制文件,或其他形式存在的文件,本申请不做具体限制。每个日志文件由一行行的日志记录组成,一条或连续的几条记录描述某次独立的事件,描述某次独立的事件的日志记录可以称为一个日志条目。一个日志文件包括多个日志条目。一个日志条目通常包含事件发生时间、事件内容、事件类型、事件级别等等。
通常,不同的对象生成的日志条目格式不同,例如,设备A生成的日志条目的格式为:事件发生时间、访问设备A的设备的标识和事件内容,设备A生成的一个日志条目包含20个字符,设备B生成的日志条目的格式为:访问设备B的设备的标识、事件发生时间和事件内容,设备B生成的一个日志包含50个字符。
(2)神经网络,可以是由神经单元(也称为神经元)组成的,神经单元可以是指以变量xs和截距b为输入的运算单元,该运算单元的输出可以为:
其中,s=1、2、……n,n为大于1的自然数,Ws为xs的权重,b为神经单元的偏置。f为神经单元的激活函数(activation functions),用于将非线性特性引入神经网络中,来将神经单元中的输入信号转换为输出信号。该激活函数的输出信号可以作为下一层卷积层的输入。激活函数可以是sigmoid函数以及其他函数,在此不做限定。神经网络是将许多个上述单一的神经单元联结在一起形成的网络,即一个神经单元的输出可以是另一个神经单元的输入。每个神经单元的输入可以与前一层的局部接受域相连,来提取局部接受域的特征,局部接受域可以是由若干个神经单元组成的区域。
(3)损失函数,在训练模型的过程中,因为希望模型的输出尽可能的接近真正想要预测的值,所以可以通过比较当前模型的预测值和真正想要的目标值,再根据两者之间的差异情况来更新模型中的每一层神经网络的权重向量(当然,在第一次更新之前通常会有初始化过程,即为模型中的各层预先配置参数),比如,如果模型的预测值高了,就调整权重向量让它预测低一些,不断的调整,直到模型能够预测出真正想要的目标值或与真正想要的目标值非常接近的值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数(loss function)或目标函数(objective function),它们是用于衡量预测值和目标值的差异的重要函数。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么模型的训练过程就变成了尽可能缩小这个loss的过程。
(4)预训练(pre-training),指一种通过使用大型数据集对初始模型进行训练,使初始模型学习到识别大型数据集中的通用特征的过程,预训练得到模型(以下简称为预训练模型)具有较强的泛化能力,其可以为后续模型在特定数据集上训练提供优质的模型参数,能够适应多种特定数据集。
(5)微调(fine-tuning),指一种使用特定数据集对预训练模型进行进一步训练,得到应用于该特定数据集的训练好(trained)的模型的过程。通常情况下,微调阶段使用的特定数据集的数据量小于预训练阶段使用的大型数据集的数据量,例如,微调阶段使用的特定数据集的数据量与预训练阶段使用的大型数据集的数据量的比值为1:100、1:500、1:1000等,在此不做具体限定;微调阶段使用特定数据集对预训练模型进行训练的次数小于预训练阶段使用大型数据集对初始模型进行训练的次数,例如,为了得到预训练模型,在预训练阶段设置使用大型数据集对初始模型进行训练的次数为100次,为了得到训练好的模型,在微调阶段设置使用特定数据集对预训练模型进行训练的次数为20次。
(6)MLM方法,一种模型的预训练方法,该方法训练的模型可以学习到输入序列的语义信息,该语义信息保存在模型输出的与输入序列中的“CLS”这个词对应的向量中。这是由于MLM对输入序列进行掩码处理的策略与传统的预训练方法(如屏蔽序列到序列(maskedsequence to sequence,MASS))进行掩码处理的策略不同,在MLM中,输入序列中的词会被随机选中15%的词,用特殊符号MASK替换随机选中的15%的词中80%的词,用随机词替换随机选中的15%的词中10%的词,剩下的10%不做替换操作。
举例来讲,如图2所示,输入序列为<CLS><举><头><望><明><月><低><头><思><故><乡>,该输入序列包括11个词,MLM从输入序列中随机选中的15%的词为输入序列中的第三个词“头”和第七个词“低”,MLM用特殊符号MASK替换掉了随机选中的输入序列中的第三个词“头”,用随机词“人”替换掉了随机选中的输入序列中的第七个词“低”。
在对模型进行预训练时,对输入到模型中进行训练的序列进行掩码处理的好处是可以提高预训练得到的模型的容错能力和推理准确率。
举例来讲,若在对模型进行预训练时,输入的第一序列为<CLS><举><头><望><明><月><低><头><思><故><乡>,即没有进行掩码处理的序列,使用模型对该第一序列进行学习,由于该第一序列中的每个词都没有被掩码,也就是说,第一序列中的每个词都是已知的,因此,模型仅需对第一序列中的词进行学习,无需对第一序列中的词的上下文进行学习,便可学习到第一序列的语义信息是“举头望明月低头思故乡”,因此,得到的预训练的模型通常不具有根据序列中词的上下文推理该序列的语义信息的能力。若后续使用该预训练的模型对第二序列<CLS><举><望><明><月><头><思><乡>的语义信息进行推理,可以看出,第二序列相比第一序列,缺少<头><低><故>这三个词,由于预训练的模型不具有根据序列中的词的上下文推理序列的语义信息的能力,因此,模型推理得到第二序列的语义信息是“举头望明月低头思故乡”的可能性较小,其推理得到第二序列的语义信息是“思乡”或者“望明月思乡”的可能性较大,模型的容错能力以及准确率较低。
若在对模型进行预训练时,输入的第一序列为<CLS><举><MASK><望><MASK><月><低><头><思><故><MASK>,即掩码处理后的序列,使用模型对该第一序列进行学习,由于该第一序列中部分词(即<头><明><乡>)被掩码,也就是说,第一序列中部分词是未知的,另一部分词是已知的,因此,模型不仅需要对第一序列中已知的词进行学习,还要根据第一序列中被掩码的词的上下文对被掩码的词进行学习,学习到被掩码的词之后,才能学习到第一序列的语义信息是“举头望明月低头思故乡”,因此,得到的预训练的模型通常具有根据序列中词的上下文推理该序列的语义信息的能力。若后续使用该预训练的模型对第二序列<CLS><举><望><明><月><头><思><乡>的语义信息进行推理,可以看出,第二序列相比第一序列,缺少<低><故>这两个词,多了<明><乡>这两个词,由于预训练的模型具有根据序列中词的上下文推理该序列的语义信息的能力,因此,模型推理得到第二序列的语义信息是“举头望明月低头思故乡”的可能性较大,其推理得到第二序列的语义信息是“思乡”或者“望明月思乡”的可能性较小,模型的容错能力以及准确率较高。
(7)日志异常检测,指对日志条目中包括的事件信息进行检测,确定日志条目中包括的事件信息是否为生成该日志条目的设备异常的信息,在确定日志条目中包括的事件信息为设备异常的信息的情况下,确定设备出现了异常。
(8)初始日志异常检测模型,指未利用日志训练样本进行训练之前的模型(也可以称为算法),利用日志训练样本对初始日志异常检测模型进行训练的目的,是得到能够对日志进行异常检测的模型。
随着***规模的不断增大,很难保证大规模***的稳定性和可靠性。另外,网络环境日益复杂,各类新型攻击不断涌现。而异常检测是保障***安全的支撑技术之一。在***运行过程中,***的硬盘、处理器和为***提供网络服务的网络设备等会产生各类日志文件来记录***运行的状态和发生的事件,日志包含丰富的信息,大量日志数据里蕴藏着巨大信息量为***的异常检测提供了一条途径,使得日志异常检测成为异常检测领域的研究热点。其中,使用日志训练样本训练得到训练好的日志异常检测模型对日志进行异常检测,是目前比较流行的日志异常检测方法。
但是,现有的日志异常检测模型的训练方法训练得到的日志异常检测模型存在泛化能力较低的问题,导致用户在实现对相似特定对象生成的日志进行异常检测时,用户无法利用已经训练得到的日志异常检测模型,只能重新获取相似特定对象生成的历史日志作为训练样本对初始日志异常检测模型进行重新训练,得到针对相似特定对象生成的日志具有较好检测效果的日志异常检测模型,训练得到新模型的过程通常会耗费大量的人力和时间成本,效率较低。
例如,在用户已经训练得到针对硬盘生成的日志具有较好检测效果的训练好的日志异常检测模型A的情况下,若用户想要对内存生成的日志进行异常检测,由于模型A虽然针对硬盘生成的日志具有较好检测效果,但针对内存生成的日志通常检测效果较差,用户即便利用内存生成的历史日志作为训练样本继续对模型A进行训练,由于模型A的泛化能力较低,通常也无法得到针对内存生成的日志具有较好检测效果的日志异常检测模型,用户只能重新获取内存生成的历史日志作为训练样本,使用重新获取的训练样本训练初始日志异常检测模型,得到针对内存生成的日志具有较好检测效果的训练好的日志异常检测模型。
又例如,在用户已经训练得到针对B厂家生产的B型号的硬盘(以下简称为B硬盘)生成的日志具有较好检测效果的训练好的日志异常检测模型B(以下简称为模型B)的情况下,若用户想要对C厂家生产的C型号的硬盘(以下简称为C硬盘)生成的日志进行异常检测,由于模型B虽然针对B硬盘生成的日志具有较好检测效果,但针对C硬盘生成的日志通常检测效果较差,用户即便利用C硬盘生成的历史日志作为训练样本继续对模型B进行训练,由于模型B的泛化能力较低,通常也无法得到针对C硬盘生成的日志具有较好检测效果的日志异常检测模型,用户只能重新获取C硬盘生成的历史日志作为训练样本,使用重新获取的训练样本训练初始日志异常检测模型,得到针对C硬盘生成的日志具有较好检测效果的训练好的日志异常检测模型。
针对上述现有的日志异常检测模型训练方法存在的问题,本申请提供一种日志异常检测模型训练方法,如图3所示,本申请提供的模型训练方法包括预训练和微调两个阶段,预训练阶段可以使用来自目标对象(目标对象包括多个目标子对象)的第一日志样本集,对初始日志异常检测模型进行预训练,得到具有优质的模型参数以及较强的泛化能力的模型,微调阶段使用来自目标子对象(目标子对象属于目标对象)的第二日志样本集,对预训练的日志异常检测模型进行微调即可得到针对目标子对象的训练好的日志异常检测模型,相较于现有技术,本申请提供的模型训练方法可以解决现有技术存在的训练得到的日志异常检测模型泛化能力较低的问题,达到提高模型训练的效率的目的。
其中,目标对象包括但不仅限于如下子对象中的至少一种:硬盘、内存、闪存、网络设备和处理器;目标子对象为所述目标对象中的任意一种类型的子对象。容易理解,上述目标对象和目标子对象,只是一种示例性的举例,本申请不做具体限制。
以目标对象只包括硬盘这一种子对象为例,在目标对象包括硬盘一种子对象的情况下,目标子对象可以为不同型号的硬盘。
以目标对象包括硬盘和内存这两种子对象为例,在目标对象包括硬盘和内存两种子对象的情况下,目标子对象可以为硬盘或者内存。
可以理解,在对模型进行训练时,使用的训练样本越多,往往训练得到的模型的参数越优质,使用的训练样本的来源越广,往往训练得到的模型的泛化能力越强,因此,在本实施例中,目标对象可以包括尽量多的子对象,从目标对象获取的第一日志样本集的数据量也可以尽量大,这样得到的预训练的日志异常检测模型的参数也就越优质,模型的泛化能力也就越强。
为了便于更清楚地理解本申请提供的日志异常检测模型训练方法,下面结合图4所示的流程示意图对本申请提供的方法进行详细描述,如图4所示,该方法包括如下步骤:
S401、计算设备获取包括m个第一日志样本的第一日志样本集,第一日志样本集是对目标对象的日志数据进行处理得到的。
由上文对日志条目的介绍可知,日志条目包含事件发生时间、事件内容、事件类型、事件级别等等,其中,事件内容能够反映发生的事件,通过对事件内容进行分析,可以获知发生的事件是否异常,而事件发生时间、事件类型和事件级别等,对判断事件是否异常的作用比较小。
因此,在一种可能的实现方式中,计算设备可以从大量目标对象的日志数据包括的大量日志条目中获取m个第一事件内容作为m个第一日志样本,删除大量日志条目中除事件内容之外的事件发生时间、事件类型、事件级别等其他部分。其中,大量目标对象的日志数据可以是计算设备从互联网上爬虫得到,或者人工从目标对象收集得到,在此不做限制。
举例来讲,假设目标对象的日志数据包括日志条目A:2021/06/03Thu 18:18:33PD_Vendor Done Check done,0xd ms.Flag 8ALL,其中,2021/06/03Thu 18:18:33为事件发生时间,PD_Vendor Done Check done,0xd ms.Flag 8为事件内容,ALL为事件级别,则计算设备从日志条目A中获取的第一日志样本为PD_Vendor Done Check done,0xdms.Flag 8。
可以理解,从大量目标对象的日志数据中获取m个第一事件内容作为m个第一日志样本,删除大量目标对象的日志数据中除事件内容之外的事件发生时间、事件类型、事件级别等其他部分,可以屏蔽m个第一日志样本的格式之间的差异,达到增加第一日志样本集中的第一日志样本的数量的目的。
可以理解,m的值越大,预训练的日志异常检测模型的参数越优质,模型的泛化能力越强,因此,在具体实现中,计算设备可以获取尽可能多的第一日志样本添加到第一日志样本集。其中,m为大于1的自然数。
需要说明的是,上述从大量目标对象的日志数据中获取m个第一事件内容作为m个第一日志样本仅仅是作为一种示例,不应视为具体限定。在具体实现中,计算设备也可以从大量目标对象的日志数据中选出m个格式相同的日志条目直接作为m个第一日志样本,或者从大量目标对象的日志数据中获取m个预设内容作为m个第一日志样本,其中,预设内容除了包括日志条目中的事件内容之外,还包括日志条目中除事件内容之外的其他内容,如事件级别和/或事件类型。
S402、计算设备分别对m个第一日志样本进行分词,得到m个日志样本对应的m个词序列。
以计算设备对m个第一日志样本中的第i个第一日志样本进行分词为例,计算设备得到第i个第一日志样本对应的词序列的过程包括:
S4021、对第i个第一日志样本进行分词,得到第一词序列。
继续以第i个第一日志样本为PD_Vendor Done Check done,0xd ms.Flag 8为例,计算设备对该日志样本进行分词,得到的第一词序列为:
<PD_VendorDone><Check><done><0xd><ms><Flag><8>,如图5所示。
S4022、在第一词序列包括数字和字符组成的混合词的情况下,将第一词序列中由数字和字符组成的混合词替换成词number,得到第二词序列,在第一词序列不包括混合词的情况下,无需进行替换操作,直接将第一词序列确定为第二词序列。
继续以S4021中所举的例子为例,可以看出,第一词序列<PD_VendorDone><Check><done><0xd><ms><Flag><8>包括混合词0xd,则计算设备对第一词序列<PD_VendorDone><Check><done><0xd><ms><Flag><8>中的混合词0xd进行替换后得到的第二词序列为:
<PD_VendorDone><Check><done><number><ms><Flag><8>,如图5所示。
需要说明的是,上述用number替换混合词仅仅是作为一种示例,在具体实现中,还可以用num或者sep等其他词替换混合词,此处不作具体限定。
S4023、在得到第二词序列后,在第二词序列的句首添加一个特殊的分类标记,即CLS标记,得到第三词序列。
其中,得到的第三次序列句首的CLS标记标志着第三词序列的开始。
继续以S4022中所举的例子为例,计算设备在第二词序列<PD_VendorDone><Check><done><number><ms><Flag><8>的句首添加CLS标记,得到的第三词序列为:
<CLS><PD_VendorDone><Check><done><number><ms><Flag><8>,如图5所示。S4024、在得到第三词序列后,在第三词序列包括的词的数量小于预设阈值的情况下,在第三词序列的句尾添加pad标记得到第四词序列,使得第四词序列包括的词的数量等于预设阈值,在第三词序列包括的词的数量等于预设阈值的情况下,直接将第三词序列确定为第四词序列,在第三词序列包括的词的数量大于预设阈值的情况下,将第三词序列句尾部分的词截掉得到第四词序列,使得第四词序列包括的词的数量等于预设阈值。
继续以S4023中所举的例子为例,假设预设阈值为10,可以看出,第三词序<CLS><PD_VendorDone><Check><done><number><ms><Flag><8>包括的词的数量为8,小于预设阈值10,则计算设备在第三词序列<CLS><PD_VendorDone><Check><done><number><ms><Flag><8>的句尾添加两个pad标记,得到的第四词序列为:
<CLS><PD_VendorDone><Check><done><number><ms><Flag><8><pad><pad>,如图5所示。
需要说明的是,上述用pad替换混合词仅仅是作为一种示例,在具体实现中,还可以用PAD或者pa等其他词替换混合词,此处不作具体限定;上述预设阈值为10仅仅是作为一种示例,在具体实现中,其还可以为20、50等,此处不作具体限定。
S4025、在得到第四词序列后,使用预设词典对第四词序列中的每个词进行转换,得到第五词序列,即第i个第一日志样本对应的词序列。
其中,预设词典包括大量词以及大量词及其对应的令牌(token)标识(identification,简称为ID)之间的对应关系,例如,词“Check”、令牌ID“6”以及词“Check”和令牌ID“6”之间的对应关系。
继续以S4024中所举的例子为例,假设预设词典包括的CLS对应的令牌ID为1,pad对应的令牌ID为0,PD_VendorDone对应的令牌ID为5,Check对应的令牌ID为6,done对应的令牌ID为7,number对应的令牌ID为4,ms对应的令牌ID为8,Flag对应的令牌ID为9,8对应的令牌ID为10,pad对应的令牌ID为0,则计算设备使用预设词典对第四词序列<CLS><PD_VendorDone><Check><done><number><ms><Flag><8><pad><pad>进行转换,得到的第五词序列为:
<1><5><6><7><4><8><9><10><0><0>,如图5所示。
在本申请具体的实施例中,在使用预设词典对第四词序列中的词进行转换时,若预设词典中不存在第四词序列中的某个词以及与该词对应的令牌ID的情况下,可以在预设词典中新增该词以及该词对应的令牌ID。
举例来讲,若预设词典包括的最大的令牌ID为“100000”,预设词典中不包括词“identification”的令牌ID,则可以在预设词典中新增词“identification”以及该词对应的令牌ID“100001”或者“100008”等。
需要说明的是,上述获取第i个第一日志样本对应的词序列的过程仅仅是作为一种示例,在具体实现中,S4023可以在S4022的前面执行,或者,S4024可以在S4022的前面执行,此处不作具体限定。
可以理解,在计算设备对m个第一日志样本中的每个第一日志样本均执行了步骤S4021至步骤S4025的情况下,计算设备可以得到m个词序列,且m个词序列包括的词的数量相等。
S403、计算设备通过m个词序列,对初始日志异常检测模型进行预训练,得到预训练的日志异常检测模型。
在本申请具体的实施例中,计算设备通过m个词序列,对初始日志异常检测模型进行预训练的方法可以为MLM方法或者MASS方法等。在此,不做具体限制。
以采用的预训练方法为MLM方法为例,计算设备对初始日志异常检测模型进行预训练,得到预训练的日志异常检测模型的过程具体可以包括如下步骤:
S4031、计算设备分别对m个词序列中预设比例的词进行掩码处理,获取掩码处理后的m个词序列。
其中,预设比例可以为10%、15%、20%等。
计算设备分别对m个词序列中预设比例的词进行掩码处理的操作可以参考上文对MLM方法的相关描述。
S4032、计算设备通过掩码处理后的m个词序列,对初始日志异常检测模型进行预训练,得到预训练的日志异常检测模型。
在本申请具体的实施例中,计算设备通过掩码处理后的m个词序列,对初始日志异常检测模型进行预训练,得到预训练的日志异常检测模型的具体过程可以包括如下步骤:
S1、计算设备分别获取掩码处理后的m个词序列中的每个词对应的词嵌入向量和位置嵌入向量。
上述每个词对应的词嵌入(word embedding)向量,为用于表示每个词的多维向量。其中,词嵌入向量,是自然语言处理领域中的一组语言建模和特征学习技术的统称,是用来将语言中的词进行数学化的一种方式,顾名思义,它的任务是把一个词转换成一个多维向量。在具体实现中,每个词对应的词嵌入向量可以通过独热编码(one-hot encoding)方式获取,也可以通过词到向量(Word2Vec)模型或者手套(Glove)模型获取,每个词对应的词嵌入向量的维度可以为256维度或者512维度,也可以为更多或者更少维度,此处不作具体限定。
以掩码处理后的第i个词序列为<1><MASK><6><7><4><9><9><10><0><0>为例,如图6所示,假设获取掩码处理后的第i个词序列中的每个词对应的词嵌入向量的方式为Word2Vec模型,词嵌入向量的维度为5维,则获取的掩码处理后的第i个词序列中的“1”这个词可以为5维向量Vi,1(-0.065,-0.035,0.019,-0.026,0.085),“MASK”这个词可以为5维向量Vi,2(0.000,0.000,0.000,0.000,0.000),…,句尾的“0”这个词可以为5维向量Vi,10(-0.027,-0.013,0.006,0.023,0.014),如图7所示。其中,5维向量Vi,t的下标中的t表示每个词在第i个词序列中的位置。
需要说明的是,上述所举例的词嵌入向量中的数值包括三位小数仅仅是作为一种示例,在具体实现中,其可以包括更少或者更多的小数位,在此不做具体限制。
上述每个词对应的位置嵌入(position embedding)向量,用于表示每个词在词序列中的位置,其维度与词嵌入向量的维度相同。
在一种可能的实现方式中,可以通过如下公式获取一个词的位置嵌入向量:
其中,PE()表示位置嵌入向量,pos表示词在词序列中的位置,其取值范围是[0,词序列中包括的词的数量),dmodel表示位置嵌入向量的维度,2j表示位置嵌入向量的偶数维度索引,2j+1表示位置嵌入向量的奇数维度索引,以位置嵌入向量的维度dmodel为5进行举例,在位置嵌入向量的维度dmodel为5的情况下,j分别取0、1、2,在j取0时,计算出的PE(pos,2j)(即PE(pos,0))的值即为该位置嵌入向量的第零维度的数值,PE(pos,2j+1)(即PE(pos,1))的值即为该位置嵌入向量的第一维度的数值,在j取1时,计算出的PE(pos,2j)(即PE(pos,2))的值即为该位置嵌入向量的第二维度的数值,计算出的PE(pos,2j+1)(即PE(pos,3))的值即为该位置嵌入向量的第三维度的数值,在j取2时,计算出的PE(pos,2j)(即PE(pos,4))的值即为该位置嵌入向量的第四维度的数值。
继续以图6所示的掩码处理后的第i个词序列为<1><MASK><6><7><4><9><9><10><0><0>、要获取的位置嵌入向量的维度dmodel为5为例,通过上述公式获取的掩码处理后的第i个词序列中的“1”这个词对应的位置嵌入向量Vi,1'为:
((PE(0,2*0)=sin(0/10000(2*0/5)),(PE(0,2*0+1)=cos(0/10000(2*0/5)),(PE(0,2*1)=sin(0/10000(2*1/5)),(PE(0,2*1+1)=cos(0/10000(2*1/5)),(PE(0,2*2)=sin(0/10000(2*2/5))),即(0.000,1.000,0.000,1.000,0.000),如图7所示;
通过上述公式获取的掩码处理后的第i个词序列中的“MASK”这个词对应的位置嵌入向量Vi,2'为:
((PE(1,2*0)=sin(1/10000(2*0/5)),(PE(1,2*0+1)=cos(1/10000(2*0/5)),(PE(1,2*1)=sin(1/10000(2*1/5)),(PE(1,2*1+1)=cos(1/10000(2*1/5)),(PE(1,2*2)=sin(1/10000(2*2/5))),即(0.842,0.540,0.025,1.000,0.001),如图7所示;…;
句尾的“0”这个对应的位置嵌入向量Vi,10'为:
((PE(9,2*0)=sin(9/10000(2*0/5)),(PE(9,2*0+1)=cos(9/10000(2*0/5)),(PE(9,2*1)=sin(9/10000(2*1/5)),(PE(9,2*1+1)=cos(9/10000(2*1/5)),(PE(9,2*2)=sin(9/10000(2*2/5))),即(0.412,-0.911,0.224,0.975,0.006),如图7所示。
需要说明的是,上述所举例的位置嵌入向量中的数值包括三位小数仅仅是作为一种示例,在具体实现中,其可以包括更少或者更多的小数位,在此不做具体限制。
在另一种可能的实现方式中,可以通过如下公式获取一个词的位置嵌入向量:
S2、计算设备分别根据掩码处理后的m个词序列中的每个词对应的词嵌入向量和位置嵌入向量,获取掩码处理后的m个词序列对应的m个第一行向量。
具体地,计算设备可以通过将每个掩码处理后的词序列中的每个词对应的词嵌入向量和位置嵌入向量进行叠加,得到每个被掩码处理后的词序列中的每个词对应的词向量,从而得到每个掩码处理后的词序列对应的第一行向量,通过词嵌入向量和位置嵌入向量得到第一行向量的其他方式也在本申请的保护范围内,在此不做具体限制。
继续以图6所示的掩码处理后的第i个词序列中的每个词对应的词嵌入向量和位置嵌入向量为例,那么“1”这个词对应的词向量Vi,1"为:
“MASK”这个词对应的词向量Vi,2"为:
句尾的“0”这个词对应的词向量Vi,10"为:
在得到掩码处理后的第i个词序列中的每个词对应的词向量之后,掩码处理后的第i个词序列中的全部词对应的词向量的组合即为掩码处理后的第i个词序列对应的第一行向量Vi'。
在本实施例中,获取掩码处理后的m个词序列中每个词序列对应的第一行向量的过程与上述获取掩码处理后的第i个词序列对应的第一行向量Vi'的过程相类似,具体可以参考上文相关描述,此处不再展开赘述。
S3、计算设备使用m个第一行向量,训练初始日志异常检测模型,得到预训练的日志异常检测模型。
在本申请具体的实施例中,计算设备使用m个第一行向量,训练初始日志异常检测模型,得到预训练的日志异常检测模型的具体过程如图9所示,可以包括如下步骤:
A1、分别将m个第一行向量,输入初始日志异常检测模型进行训练,得到掩码处理后的m个词序列对应的m个第二行向量。
其中,掩码处理后的词序列对应的第二行向量表示包括掩码处理后的词序列的语义信息的向量,每个词序列对应的第二行向量为每个词序列的CLS标记对应的初始日志异常检测模型的输出。
继续以图6所示的掩码处理后的第i个词序列<1><MASK><6><7><4><9><9><10><0><0>中的第一行向量Vi'为例,若将第一行向量Vi'输入初始日志异常检测模型进行训练,可以得到第二行向量Vi,如图6所示,第二行向量Vi包括掩码处理后的第i个词序列的语义信息“供应商信息检查完毕”。
A2、随机获取m个第二行向量中的任意一个第二行向量,作为正常日志类的初始聚类中心c。
A3、分别计算m个第二行向量中每个第二行向量到初始聚类中心c的损失。
在本申请具体的实施例中,可以通过如下损失函数获取第i个第二行向量Vi到初始聚类中心c的损失:
A4、根据第i个第二行向量到初始聚类中心c的损失,确定第i个第二行向量能否归属到正常日志类,在确定第i个第二行向量可以归属到正常日志类的情况下,将第i个第二行向量归属到正常日志类。
具体地,可以在第i个第二行向量到初始聚类中心c的损失loss(c,Vi)小于第一分类阈值的情况下,确定第i个第二行向量可以归属到正常日志类,反之,则确定第i个第二行向量不可以归属到正常日志类。其中,第一分类阈值可以由用户根据实际情况设置。
A5、在将m个第二行向量中可以归属到正常日志类的第二行向量归属到正常日志类之后,重新计算正常日志类的质心,将计算得到的质心确定为正常日志类的新的聚类中心c1。
A6、反复迭代步骤A3至步骤A5,直到达到终止条件,得到预训练的日志异常检测模型。
其中,终止条件可以为最大迭代次数、最小化平方误差、簇中心点变化率等,此处不作具体限定。
在达到终止条件时,正常日志类以及正常日志类的质心不再发生变化,这里,以C表示不再发生变化的正常日志类的质心,即下文所述目标聚类中心。
如图10所示,将m个第一行向量输入初始日志异常检测模型进行训练,得到的m个第二行向量,最终被分成了属于正常日志类的第二行向量(指图10所示圆圈内的向量)和不属于正常日志类的第二行向量(指图10所示圆圈外的向量),正常日志类的质心为C。
虽然预训练的日志异常检测模型已经具有优质的模型参数,但是由于预训练的日志异常检测模型是利用来自目标对象的第一日志样本集进行训练得到的,若直接利用该模型对目标子对象生成的日志进行异常检测,模型的参数不够准确,会造成得到的检测结果的准确性较低,因此可以进一步采用来自目标子对象的训练样本集(即下文所述包括n个第二日志样本的第二日志样本集),对预训练的日志异常检测模型进行微调,得到更准确的模型参数,在模型的参数更准确的情况下,针对目标子对象生成的日志进行异常检测,得到的检测结果也会更准确。
可以理解,由于预训练的日志异常检测模型已经具有优质的模型参数,因此,在使用来自目标子对象的第二训练样本集对预训练的日志异常检测模型进行微调时,第二训练样本集仅需包括少量的第二训练样本即可得到更准确的模型参数,微调得到更准确的模型参数的过程仅需耗费少量的人力和时间成本,模型训练的效率高。
S404、计算设备获取包括n个第二日志样本的第二日志样本集,第二日志样本集是对目标子对象的日志数据进行处理得到的。
其中,大量目标子对象的日志数据可以是目标子对象生成的历史日志。
可以理解,n的值越大,训练好的日志异常检测模型的参数越准确,因此,在具体实现中,计算设备可以获取尽可能多的第二日志样本添加到第二日志样本集。其中,n为大于1的自然数,n通常小于m。
S405、计算设备分别对n个第二日志样本进行分词,得到第二日志n个词序列。
S406、计算设备通过n个词序列,对预训练的日志异常检测模型进行微调,得到训练好的日志异常检测模型。
可以理解,微调得到的训练好的日志异常检测模型的模型参数比预训练的日志异常检测模型的模型参数更准确,后续使用训练好的日志异常检测模型对目标子对象生成的日志进行异常检测,得到的检测结果也会更准确。
在本实施例中,计算设备获取包括n个第二日志样本的第二日志样本集的过程,与S401中计算设备获取包括m个第一日志样本的第一日志样本集的过程相类似,具体可以参考S401中的相关描述;计算设备分别对n个第二日志样本进行分词,得到n个第二日志样本对应的n个词序列的过程,与S402中计算设备对m个第一日志样本进行分词,得到m个第一日志样本对应的m个词序列的过程相类似,具体可以参考S402中的相关描述;计算设备通过n个词序列,对预训练的日志异常检测模型进行微调,得到训练好的日志异常检测模型的过程,与S403中计算设备通过m个词序列,对初始日志异常检测模型进行预训练,得到预训练的日志异常检测模型的过程相类似,具体可以参考S403中的相关描述。
在本申请具体的实施例中,计算设备在获取到目标聚类中心C的情况下,还可以根据目标聚类中心C以及m个第二行向量,计算得到用于训练好的日志异常检测模型对待检测日志进行异常检测的第二分类阈值。
进一步地,计算设备根据目标聚类中心C以及m个第二行向量,计算得到第二分类阈值的过程可以包括:
B1、计算设备获取m个第二行向量到目标聚类中心C的损失。
计算设备获取m个第二行向量到目标聚类中心C的损失的过程与上文所述的获取m个第二行向量到初始聚类中心c的损失的过程相类似,具体可以参考上文相关描述。
B2、计算设备获取m个第二行向量到目标聚类中心C的损失对应的百分位数。
其中,百分位数,是统计学术语,如果将一组数据从小到大排序,并计算相应的累计百分位,则某一百分位所对应数据的值就称为这一百分位的百分位数。如,处于80%位置的值称为第80百分位数。
因此,计算设备获取m个第二行向量到目标聚类中心C的损失对应的百分位数,即计算设备将m个第二行向量到目标聚类中心C的损失从小到大排序,并计算相应的累计百分位。
B3、计算设备根据m个第二行向量到目标聚类中心C的损失对应的百分位数确定目标百分位数。
B4、计算设备根据目标百分位数确定第二分类阈值。
在本申请具体的实施例中,可以通过如下公式确定第二分类阈值T:
T=P·β
其中,P表示处于目标百分位数的值,β用于扩大目标聚类中心C周围的距离,P和β可以根据m个第一日志样本中正常样本的数量与异常样本的数量取值,例如,在m个第一日志样本中正常样本的数量远远大于异常样本的数量(如正常样本的数量与异常样本的数量为10000:1或者5000:1等)的情况下,目标百分位数的取值可以尽量大,如90%、95%等,β的取值可以为1.8、2.0、2.5等,在m个第一日志样本中正常样本的数量接近异常样本的数量(如正常样本的数量与异常样本的数量为500:1或者100:1)的情况下,目标百分位数的取值可以接近50%,如45%、51%等,β的取值可以为1.2、1.5等;第二分类阈值T用于训练好的日志异常检测模型对待检测日志进行异常检测的过程请参见图11中的相关描述。
可以看出,本申请是根据目标聚类中心C以及m个第二行向量,计算得到第二分类阈值T,并且在计算第二分类阈值T时,是在考虑了m个第一日志样本中正常样本的数量与异常样本的数量的基础上取的目标百分位数的值以及β的值,而不是像现有技术中,是由人工根据经验设置分类阈值,人工设置的分类阈值过大或者过小都会对训练好的日志异常检测模型的准确性产生较大的影响,例如,在人工设置的分类阈值过大时,这会使得训练好的日志异常检测模型有很大几率误将异常日志归类为正常日志,在人工设置的分类阈值过小时,这会使得训练好的日志异常检测模型有很大几率误将正常日志归类为异常日志。因此,通过本申请提供的方法确定第二分类阈值T,可以提高训练好的日志异常检测模型进行异常检测的准确性。
在具体实现中,在利用本申请提供的日志异常检测模型训练方法训练得到训练好的日志异常检测模型后,可以将训练好的日志异常检测模型部署到目标子对象,利用训练好的日志异常检测模型对目标子对象生成的待检测日志进行异常检测。
请参见图11,图11为本申请提供的一种示例性的利用训练好的日志异常检测模型对目标子对象的待检测日志进行异常检测的流程示意图,如图11所示,检测过程包括:
S111、获取目标子对象生成的待检测日志条目。
可以理解,这里的待检测日志条目,即上文所述待检测日志。
S112、从待检测日志条目中获取待检测事件内容。
S113、对待检测事件内容进行分词,得到待检测事件内容对应的待检测词序列。
S114、获取待检测词序列对应的第一行向量。
S115、将待检测词序列对应的第一行向量,输入训练好的日志异常检测模型进行异常检测,得到检测结果。
在本申请具体的实施例中,将待检测词序列对应的第一行向量,输入训练好的日志异常检测模型进行异常检测,得到检测结果的具体过程可以包括如下步骤:
S1151、将待检测词序列对应的第一行向量,输入训练好的日志异常检测模型,得到待检测词序列对应的第二行向量。
S1152、获取待检测词序列对应的第二行向量到聚类中心C'的损失loss。
其中,聚类中心C'表示微调阶段得到训练好的日志异常检测模型时,n个第二日志样本对应的n个第二行向量被聚类得到的不再发生变化的正常日志类的质心。
待检测词序列对应的第二行向量到聚类中心C'的损失loss(C',X)可以通过如下公式获取:
其中,X表示待检测词序列对应的第二行向量。
S1153、确定损失loss(C',X)是否小于第二分类阈值T,在确定损失loss(C',X)小于第二分类阈值T的情况下,执行S1154,在确定损失loss(C',X)大于或者等于第二分类阈值T的情况下,执行S1155。
在具体实现中,也可以确定损失loss(C',X)是否小于或者等于第二分类阈值T,在确定损失loss(C',X)小于或者等于第二分类阈值T的情况下,执行S1154,在确定loss(C',X)大于第二分类阈值T的情况下,执行S1155。
S1154、确定待检测日志条目中没有设备异常的信息。其中,所述设备指生成所述待检测日志条目的设备。
S1155、确定待检测日志条目中有设备异常的信息。
如图12所示,将待检测词序列对应的第一行向量x输入训练好的日志异常检测模型进行异常检测,得到的异常检测结果中包括待检测词序列对应的第二行向量X相对聚类中心C'的损失loss(C',X),假设损失loss(C',X)为5,第二分类阈值T为8,损失loss(C',X)小于第二分类阈值T,则训练好的日志异常检测模型会将第二行向量X归属到正常日志类,输出待检测日志条目中没有设备异常信息的检测结果。
需要说明的是,上述所举例子中,训练好的日志异常检测模型输出待检测日志条目中没有设备异常信息的检测结果仅仅是作为一种示例,在具体实现中,输出的检测结果也可以为“设备正常”等,在此不做具体限制。
在本实施例中,待检测词序列、待检测词序列对应的第一行向量等的定义均与图4实施例中的词序列、第一行向量等的定义相同,具体请参见图4所示的实施例中的相关内容,此处不再展开描述。在本实施例中,对待检测事件内容进行分词,得到待检测事件内容对应的待检测词序列的过程,与S402中计算设备对m个第一日志样本进行分词,得到m个第一日志样本对应的m个词序列的过程相类似,具体可以参考S402中的相关描述;获取待检测词序列对应的第一行向量的过程,与S403中计算设备获取掩码处理后的m个词序列对应的m个第一行向量的过程相类似,具体可以参考S403中的相关描述。
需要说明的是,在获取待检测词序列对应的第一行向量时,无需对待检测词序列进行掩码处理,可以直接获取待检测词序列中的每个词对应的词嵌入向量和位置嵌入向量,从而获取到待检测词序列对应的第一行向量。
需要说明的是,虽然上文在对本申请提供的日志异常检测模型训练方法进行描述时,均以计算设备为执行主体,但在具体实现中,本申请提供的日志异常检测模型训练方法的执行主体还可以为包括至少两个计算设备的计算设备集群,所述计算设备集群中的至少两个计算设备可以协同实现本申请提供的日志异常检测模型训练方法,如在计算设备集群包括计算设备A和计算设备B的情况下,步骤S401由计算设备A执行,步骤S402至步骤S406由计算设备B执行,或者步骤S401至步骤S403由计算设备A执行,步骤S404和步骤S406由计算设备A和计算设备B共同执行。
上文详细阐述了本申请提供的一种日志异常检测模型训练方法,基于相同的发明构思,下面继续介绍本申请提供的日志异常检测模型训练装置。
参见图13,图13是本申请提供的一种日志异常检测模型训练装置100的结构示意图,该装置100包括:获取模块110和训练模块120,其中,
获取模块110,用于获取第一日志样本集,其中,所述第一日志样本集是对所述目标对象的日志数据进行处理得到的;
训练模块120,通过所述第一日志样本集对初始日志异常检测模型进行预训练,得到预训练的日志异常检测模型;
所述获取模块110,还用于获取第二日志样本集,其中,所述第二日志样本集是对目标子对象的日志数据进行处理得到的,所述目标子对象属于目标对象;
所述训练模块120,还用于通过所述第二日志样本集对所述预训练的日志异常检测模型进行微调,得到训练好的日志异常检测模型。
在一种可能的实现方式中,所述目标对象包括如下子对象中的至少一种:硬盘、内存、闪存、网络设备和处理器,所述目标子对象为所述目标对象中的任意一种类型的子对象。
在一种可能的实现方式中,所述第一日志样本集包括m个日志样本,m为大于1的自然数,所述训练模块120,具体用于:
分别对所述m个日志样本进行分词,得到所述m个日志样本对应的m个词序列;
通过所述m个词序列,对初始日志异常检测模型进行预训练,得到预训练的日志异常检测模型。
在一种可能的实现方式中,所述训练模块120,具体用于:
分别对所述m个词序列中预设比例的词进行掩码处理,得到掩码处理后的m个词序列;
通过所述掩码处理后的m个词序列,对初始日志异常检测模型进行预训练,得到预训练的日志异常检测模型。
在一种可能的实现方式中,所述训练模块120,具体用于:
分别获取所述掩码处理后的m个词序列中每个词对应的词嵌入向量和位置嵌入向量,其中,所述每个词对应的词嵌入向量为用于表示所述每个词的多维向量,所述每个词对应的位置嵌入向量表示所述每个词在其所属的词序列中的位置;
分别根据所述掩码处理后的m个词序列中每个词对应的词嵌入向量和位置嵌入向量,获取所述掩码处理后的m个词序列对应的m个第一行向量;
使用所述m个第一行向量,对初始日志异常检测模型进行预训练,得到预训练的日志异常检测模型。
在一种可能的实现方式中,所述训练模块120,具体用于:
分别将所述m个第一行向量,输入初始日志异常检测模型进行训练,得到m个第二行向量,其中,所述m个第二行向量与所述掩码处理后的m个词序列存在一一对应关系,所述m个第二行向量中的每个第二行向量包括与其对应的掩码处理后的词序列的语义信息;
获取所述m个第二行向量到初始聚类中心的损失;
根据所述m个第二行向量到所述初始聚类中心的损失,训练初始日志异常检测模型,得到预训练的日志异常检测模型以及目标聚类中心。
在一种可能的实现方式中,所述训练模块120,还用于:
获取所述m个第二行向量到所述目标聚类中心的损失对应的百分位数;
根据所述m个第二行向量到所述目标聚类中心的损失对应的百分位数确定分类阈值,其中,所述分类阈值用于所述训练好的日志异常检测模型对所述待检测日志进行异常检测,得到检测结果。
在一种可能的实现方式中,所述获取所述m个第二行向量到初始聚类中心的损失的公式为:
其中,Vi表示所述m个第二行向量中的第i个第二行向量,c表示所述初始聚类中心,loss(c,Vi)表示所述第i个第二行向量到所述初始聚类中心的损失,i为自然数。
具体地,上述日志异常检测模型训练装置100执行各种操作的具体实现,可参照上述日志异常检测模型训练方法实施例中相关内容中的描述,为了说明书的简洁,这里不再赘述。
应当理解,日志异常检测模型训练装置100仅为本申请实施例提供的一个例子,并且,日志异常检测模型训练装置100可具有比图13示出的部件更多或更少的部件,可以组合两个或更多个部件,或者可具有部件的不同配置实现。
本申请提供的日志异常检测模型训练装置100可以应用于云服务器、个人计算机、终端设备等各种计算设备,也可以应用于包括至少两个计算设备的计算设备集群,下面以应用于一个计算设备为例进行描述。
参见图14,图14是本申请提供的一种计算设备200的结构示意图,该计算设备200包括:处理器210、存储器220以及通信接口230,其中,处理器210、存储器220以及通信接口230之间可以通过总线240相互连接。其中,
处理器210可以读取存储器220中存储的程序代码(包括指令),执行存储器220中存储的程序代码,使得计算设备200执行上述方法实施例提供的日志异常检测模型训练方法中的步骤,或者使得计算设备200部署日志异常检测模型训练装置100。
处理器210可以有多种具体实现形式,例如处理器210可以为中央处理器(centralprocessing unit,CPU)、图形处理器(graphics processing unit,GPU)等,处理器210还可以是单核处理器或多核处理器。处理器210可以由CPU和硬件芯片的组合。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。处理器210也可以单独采用内置处理逻辑的逻辑器件来实现,例如FPGA或DSP等。
存储器220可以存储有程序代码以及程序数据。其中,程序代码包括:获取模块110的代码和训练模块120的代码等,程序数据包括:第一日志样本集、第二日志样本集、掩码处理前的词序列和掩码处理后的词序列等等。
在实际应用中,存储器220可以是非易失性存储器,例如,只读存储器(read-onlymemory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。存储器220也可以是易失性存储器,易失性存储器可以是随机存取存储器(randomaccess memory,RAM),其用作外部高速缓存。
通信接口230可以为有线接口(例如以太网接口)或无线接口(例如蜂窝网络接口或使用无线局域网接口),用于与其他计算节点或装置进行通信。当通信接口230为有线接口时,通信接口230可以采用传输控制协议/网际协议(transmission control protocol/internet protocol,TCP/IP)之上的协议族,例如,远程函数调用(remote function call,RFC)协议、简单对象访问协议(simple object access protocol,SOAP)协议、简单网络管理协议(simple network management protocol,SNMP)协议、公共对象请求代理体系结构(common object request broker architecture,CORBA)协议以及分布式协议等等。
总线240可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。所述总线240可以分为地址总线、数据总线、控制总线等。为便于表示,图14中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
上述计算设备200用于执行上述日志异常检测模型训练方法实施例所描述的方法,与上述方法实施例属于同一构思,其具体实现过程详见上述方法实施例,这里不再赘述。
计算设备200部署日志异常检测模型训练装置100的功能模块,参见图13所示的装置实施例。
应当理解,计算设备200仅为本申请实施例提供的一个例子,并且,计算设备200可具有比图14示出的部件更多或更少的部件,可以组合两个或更多个部件,或者可具有部件的不同配置实现。
本申请还提供一种非瞬态计算机可读存储介质,非瞬态计算机可读存储介质中存储有指令,该指令被运行时可以实现上述实施例中记载的日志异常检测模型训练方法的部分或者全部步骤。
本申请还提供一种计算机程序产品,当计算机程序产品被计算机读取并执行时,可以实现上述方法实施例中记载的日志异常检测模型训练方法的部分或者全部步骤。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
在上述实施例中,可以全部或部分地通过软件、硬件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如软盘、硬盘、磁带)、光介质、或者半导体介质等。
本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并或删减;本申请实施例装置中的单元可以根据实际需要进行划分、合并或删减。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (18)
1.一种日志异常检测模型训练方法,其特征在于,所述方法包括:
获取第一日志样本集,其中,所述第一日志样本集是对所述目标对象的日志数据进行处理得到的;
通过所述第一日志样本集对初始日志异常检测模型进行预训练,得到预训练的日志异常检测模型;
获取第二日志样本集,其中,所述第二日志样本集是对目标子对象的日志数据进行处理得到的,所述目标子对象属于目标对象;
通过所述第二日志样本集对所述预训练的日志异常检测模型进行微调,得到训练好的日志异常检测模型。
2.根据权利要求1所述的方法,其特征在于,
所述目标对象包括如下子对象中的至少一种:硬盘、内存、闪存、网络设备和处理器,所述目标子对象为所述目标对象中的任意一种类型的子对象。
3.根据权利要求1或2所述的方法,其特征在于,所述第一日志样本集包括m个日志样本,m为大于1的自然数,所述通过所述第一日志样本集对初始日志异常检测模型进行预训练,得到预训练的日志异常检测模型,包括:
分别对所述m个日志样本进行分词,得到所述m个日志样本对应的m个词序列;
通过所述m个词序列,对初始日志异常检测模型进行预训练,得到预训练的日志异常检测模型。
4.根据权利要求3所述的方法,其特征在于,所述通过所述m个词序列,对初始日志异常检测模型进行预训练,得到预训练的日志异常检测模型,包括:
分别对所述m个词序列中预设比例的词进行掩码处理,得到掩码处理后的m个词序列;
通过所述掩码处理后的m个词序列,对初始日志异常检测模型进行预训练,得到预训练的日志异常检测模型。
5.根据权利要求4所述的方法,其特征在于,所述通过所述掩码处理后的m个词序列,对初始日志异常检测模型进行预训练,得到预训练的日志异常检测模型,包括:
分别获取所述掩码处理后的m个词序列中的每个词对应的词嵌入向量和位置嵌入向量,其中,所述每个词对应的词嵌入向量为用于表示所述每个词的多维向量,所述每个词对应的位置嵌入向量表示所述每个词在其所属的词序列中的位置;
分别根据所述掩码处理后的m个词序列中的每个词对应的词嵌入向量和位置嵌入向量,获取所述掩码处理后的m个词序列对应的m个第一行向量;
使用所述m个第一行向量,对初始日志异常检测模型进行预训练,得到预训练的日志异常检测模型。
6.根据权利要求5所述的方法,其特征在于,所述使用所述m个第一行向量,对初始日志异常检测模型进行预训练,得到预训练的日志异常检测模型,包括:
分别将所述m个第一行向量,输入初始日志异常检测模型进行训练,得到m个第二行向量,其中,所述m个第二行向量与所述掩码处理后的m个词序列存在一一对应关系,所述m个第二行向量中的每个第二行向量包括与其对应的掩码处理后的词序列的语义信息;
获取所述m个第二行向量到初始聚类中心的损失;
根据所述m个第二行向量到所述初始聚类中心的损失,训练初始日志异常检测模型,得到预训练的日志异常检测模型以及目标聚类中心。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
获取所述m个第二行向量到所述目标聚类中心的损失对应的百分位数;
根据所述m个第二行向量到所述目标聚类中心的损失对应的百分位数确定分类阈值,其中,所述分类阈值用于所述训练好的日志异常检测模型对所述待检测日志进行异常检测,得到检测结果。
9.一种日志异常检测模型训练装置,其特征在于,所述装置包括:
获取模块,用于获取第一日志样本集,其中,所述第一日志样本集是对所述目标对象的日志数据进行处理得到的;
训练模块,通过所述第一日志样本集对初始日志异常检测模型进行预训练,得到预训练的日志异常检测模型;
所述获取模块,还用于获取第二日志样本集,其中,所述第二日志样本集是对目标子对象的日志数据进行处理得到的,所述目标子对象属于目标对象;
所述训练模块,还用于通过所述第二日志样本集对所述预训练的日志异常检测模型进行微调,得到训练好的日志异常检测模型。
10.根据权利要求9所述的装置,其特征在于,
所述目标对象包括如下子对象中的至少一种:硬盘、内存、闪存、网络设备和处理器,所述目标子对象为所述目标对象中的任意一种类型的子对象。
11.根据权利要求8或9所述的装置,其特征在于,所述第一日志样本集包括m个日志样本,m为大于1的自然数,所述训练模块,具体用于:
分别对所述m个日志样本进行分词,得到所述m个日志样本对应的m个词序列;
通过所述m个词序列,对初始日志异常检测模型进行预训练,得到预训练的日志异常检测模型。
12.根据权利要求11所述的装置,其特征在于,所述训练模块,具体用于:
分别对所述m个词序列中预设比例的词进行掩码处理,得到掩码处理后的m个词序列;
通过所述掩码处理后的m个词序列,对初始日志异常检测模型进行预训练,得到预训练的日志异常检测模型。
13.根据权利要求12所述的装置,其特征在于,所述训练模块,具体用于:
分别获取所述掩码处理后的m个词序列中每个词对应的词嵌入向量和位置嵌入向量,其中,所述每个词对应的词嵌入向量为用于表示所述每个词的多维向量,所述每个词对应的位置嵌入向量表示所述每个词在其所属的词序列中的位置;
分别根据所述掩码处理后的m个词序列中每个词对应的词嵌入向量和位置嵌入向量,获取所述掩码处理后的m个词序列对应的m个第一行向量;
使用所述m个第一行向量,对初始日志异常检测模型进行预训练,得到预训练的日志异常检测模型。
14.根据权利要求13所述的装置,其特征在于,所述训练模块,具体用于:
分别将所述m个第一行向量,输入初始日志异常检测模型进行训练,得到m个第二行向量,其中,所述m个第二行向量与所述掩码处理后的m个词序列存在一一对应关系,所述m个第二行向量中的每个第二行向量包括与其对应的掩码处理后的词序列的语义信息;
获取所述m个第二行向量到初始聚类中心的损失;
根据所述m个第二行向量到所述初始聚类中心的损失,训练初始日志异常检测模型,得到预训练的日志异常检测模型以及目标聚类中心。
15.根据权利要求14所述的装置,其特征在于,所述训练模块,还用于:
获取所述m个第二行向量到所述目标聚类中心的损失对应的百分位数;
根据所述m个第二行向量到所述目标聚类中心的损失对应的百分位数确定分类阈值,其中,所述分类阈值用于所述训练好的日志异常检测模型对所述待检测日志进行异常检测,得到检测结果。
17.一种非瞬态计算机可读存储介质,其特征在于,所述非瞬态计算机可读介质存储有指令,所述指令用于实现权利要求1至8任一项所述的方法。
18.一种计算设备,其特征在于,所述计算设备包括处理器和存储器;所述处理器用于执行所述存储器存储的指令,使得所述计算设备实现权利要求1至8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2021/120446 WO2022227388A1 (zh) | 2021-04-29 | 2021-09-24 | 日志异常检测模型训练方法、装置及设备 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2021104712787 | 2021-04-29 | ||
CN202110471278 | 2021-04-29 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115269304A true CN115269304A (zh) | 2022-11-01 |
Family
ID=83745884
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110699643.XA Pending CN115269304A (zh) | 2021-04-29 | 2021-06-23 | 日志异常检测模型训练方法、装置及设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115269304A (zh) |
WO (1) | WO2022227388A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115794465A (zh) * | 2022-11-10 | 2023-03-14 | 上海鼎茂信息技术有限公司 | 一种日志异常检测方法及*** |
CN116055306A (zh) * | 2022-12-30 | 2023-05-02 | 中国联合网络通信集团有限公司 | 运维***的监控处理方法、装置及存储介质 |
CN117077062A (zh) * | 2023-08-31 | 2023-11-17 | 木卫四(北京)科技有限公司 | 汽车指令异常检测方法及装置 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115941357B (zh) * | 2023-01-09 | 2023-05-12 | 北京安帝科技有限公司 | 基于工业安全的流量日志检测方法、装置与电子设备 |
CN115809662B (zh) * | 2023-02-03 | 2023-04-25 | 北京匠数科技有限公司 | 一种文本内容异常检测的方法、装置、设备及介质 |
CN116170300B (zh) * | 2023-02-24 | 2024-01-23 | 山东云天安全技术有限公司 | 用于异常日志信息确定的数据处理方法、电子设备及介质 |
CN117009911B (zh) * | 2023-10-08 | 2023-12-08 | 深圳安天网络安全技术有限公司 | 一种目标事件的异常判定方法、装置、介质及电子设备 |
CN117473225A (zh) * | 2023-10-17 | 2024-01-30 | 杭州智顺科技有限公司 | 日志数据治理方法、装置、电子设备及可读存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108154029A (zh) * | 2017-10-25 | 2018-06-12 | 上海观安信息技术股份有限公司 | 入侵检测方法、电子设备和计算机存储介质 |
US10209974B1 (en) * | 2017-12-04 | 2019-02-19 | Banjo, Inc | Automated model management methods |
CN110210512B (zh) * | 2019-04-19 | 2024-03-26 | 北京亿阳信通科技有限公司 | 一种自动化日志异常检测方法及*** |
CN110321371B (zh) * | 2019-07-01 | 2024-04-26 | 腾讯科技(深圳)有限公司 | 日志数据异常检测方法、装置、终端及介质 |
CN111177095B (zh) * | 2019-12-10 | 2023-10-27 | 中移(杭州)信息技术有限公司 | 日志分析方法、装置、计算机设备及存储介质 |
CN111930597B (zh) * | 2020-08-13 | 2023-09-22 | 南开大学 | 基于迁移学习的日志异常检测方法 |
-
2021
- 2021-06-23 CN CN202110699643.XA patent/CN115269304A/zh active Pending
- 2021-09-24 WO PCT/CN2021/120446 patent/WO2022227388A1/zh active Application Filing
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115794465A (zh) * | 2022-11-10 | 2023-03-14 | 上海鼎茂信息技术有限公司 | 一种日志异常检测方法及*** |
CN115794465B (zh) * | 2022-11-10 | 2023-12-19 | 上海鼎茂信息技术有限公司 | 一种日志异常检测方法及*** |
CN116055306A (zh) * | 2022-12-30 | 2023-05-02 | 中国联合网络通信集团有限公司 | 运维***的监控处理方法、装置及存储介质 |
CN117077062A (zh) * | 2023-08-31 | 2023-11-17 | 木卫四(北京)科技有限公司 | 汽车指令异常检测方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2022227388A1 (zh) | 2022-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115269304A (zh) | 日志异常检测模型训练方法、装置及设备 | |
US10587632B1 (en) | Neural network-based malware detection | |
CN111881983B (zh) | 基于分类模型的数据处理方法、装置、电子设备及介质 | |
TW202139045A (zh) | 基於隱私保護確定目標業務模型的方法及裝置 | |
WO2021151292A1 (zh) | 基于掩码语言模型的语料检测方法、装置、设备及介质 | |
WO2021208727A1 (zh) | 基于人工智能的文本错误检测方法、装置、计算机设备 | |
CN113420122B (zh) | 分析文本的方法、装置、设备及存储介质 | |
CN112686049A (zh) | 文本审核方法、装置、设备及存储介质 | |
CN112948578B (zh) | 一种dga域名开集分类方法、装置、电子设备及介质 | |
CN115905959B (zh) | 基于缺陷因子的电力断路器关联性故障分析方法及装置 | |
CN113065525A (zh) | 年龄识别模型训练方法、人脸年龄识别方法及相关装置 | |
CN113591077A (zh) | 一种网络攻击行为预测方法、装置、电子设备及存储介质 | |
WO2023115875A1 (zh) | 硬件设备维护方法、装置及电子设备 | |
CN111159481B (zh) | 图数据的边预测方法、装置及终端设备 | |
CN114692778B (zh) | 用于智能巡检的多模态样本集生成方法、训练方法及装置 | |
CN115146068A (zh) | 关系三元组的抽取方法、装置、设备及存储介质 | |
CN114266252A (zh) | 命名实体识别方法、装置、设备及存储介质 | |
Rücker et al. | FlexParser—The adaptive log file parser for continuous results in a changing world | |
CN113822684B (zh) | 黑产用户识别模型训练方法、装置、电子设备及存储介质 | |
CN114266269A (zh) | 一种轴承故障诊断方法、***、存储介质及设备 | |
CN112866257A (zh) | 一种域名检测方法、***及装置 | |
US20230419102A1 (en) | Token synthesis for machine learning models | |
CN113449523B (zh) | 异常地址文本的确定方法、装置、电子设备和存储介质 | |
US12026248B2 (en) | Techniques for securing network environments by identifying device attributes based on string field conventions | |
US20240134937A1 (en) | Method, electronic device, and computer program product for detecting model performance |
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 |