本技术涉及计算机,特别涉及一种模型训练、故障预测方法、设备、介质及程序产品。
背景技术:
1、微服务系统(microservice system)中包括众多独立的微服务(即微服务实例),这些微服务构成一个完整的应用程序。一般情况下,一个微服务独占一个容器,不同微服务之间存在调用关系。由于微服务系统中各微服务众多且调用关系复杂,导致微服务系统的故障多样,故障原因和故障表现也各不相同,常存在故障的误报和漏报;并且,故障可能沿着调用关系级联传播,导致难以实现准确的故障定位。
2、因此,如何提高微服务系统的故障检测效率和准确率,是本领域技术人员需要解决的问题。
技术实现思路
1、有鉴于此,本技术的目的在于提供一种模型训练、故障预测方法、设备、介质及程序产品,以提高微服务系统的故障检测效率和准确率。其具体方案如下:
2、第一方面,本技术提供了一种模型训练方法,包括:
3、获取微服务系统包括的各个微服务中的运行数据、日志统计数据以及调用延时信息;
4、利用数据处理模块处理各个微服务的运行数据、日志统计数据和调用延时信息,得到各个微服务分别对应的融合信息;
5、将各个微服务形成的调用图结构和各个微服务分别对应的融合信息输入老师模块,以使所述老师模块针对各个微服务输出用于表示各个微服务运行情况的含图结构知识的第一状态信息;
6、将各个微服务分别对应的融合信息输入学生模块,以使所述学生模块针对各个微服务输出用于表示各个微服务运行情况的未含图结构知识的第二状态信息;
7、利用故障预测模块处理所述第一状态信息,以预测得到各个微服务分别对应的故障预测结果;
8、通过各个微服务分别对应的融合信息的融合信息损失、所述第一状态信息和所述第二状态信息之间的状态信息损失以及所述故障预测结果的预测结果损失,计算得到综合损失;
9、若所述综合损失不符合预设的模型收敛条件,则利用所述综合损失迭代更新所述数据处理模块、所述老师模块、所述学生模块和所述故障预测模块的模块参数,并在所述综合损失符合所述模型收敛条件时,将当前数据处理模块、当前学生模块和当前故障预测模块构建为故障预测模型。
10、可选地,获取微服务系统包括的各个微服务中的运行数据、日志统计数据以及调用延时信息,包括:
11、按照预设间隔采集并记录各个微服务中的计算资源占用信息,得到各个微服务中的运行数据;
12、统计不同日志模板在各个微服务中的出现频次,得到各个微服务中的日志统计数据;
13、确定一段时间内各个微服务调用其他微服务的延时信息,得到各个微服务中的调用延时信息。
14、可选地,统计不同日志模板在各个微服务中的出现频次,得到各个微服务中的日志统计数据,包括:
15、针对各个微服务执行:根据当前微服务中的原始日志数据确定固定不变的各个日志模板;统计一段时间内各个日志模板在所述原始日志数据中的出现频次,得到当前微服务中的日志统计数据。
16、可选地,统计一段时间内各个日志模板在所述原始日志数据中的出现频次之前,还包括:
17、丢弃各个日志模板中出现频次靠前的前n个日志模板。
18、可选地,所述数据处理模块包括:运行数据处理子模块、日志处理子模块、调用延时处理子模块和融合子模块;
19、相应地,利用数据处理模块处理各个微服务的运行数据、日志统计数据和调用延时信息,得到各个微服务分别对应的融合信息,包括:
20、利用所述数据处理子模块将各个微服务的运行数据转换为对应的第一嵌入向量;
21、利用所述日志处理子模块将各个微服务的日志统计数据转换为对应的第二嵌入向量;
22、利用所述调用延时处理子模块将各个微服务的调用延时信息转换为对应的第三嵌入向量;
23、利用所述融合子模块使各个微服务的第一嵌入向量、第二嵌入向量和第三嵌入向量相乘,得到各个微服务分别对应的融合信息。
24、可选地,按照第一公式计算各个微服务分别对应的融合信息的融合信息损失;
25、其中,所述第一公式为:;表示所述融合信息损失,表示所述第一嵌入向量的转置矩阵,表示所述第二嵌入向量的转置矩阵,表示所述第三嵌入向量,表示预设的超参数。
26、可选地,按照第二公式计算第一状态信息和所述第二状态信息之间的状态信息损失;
27、其中,所述第二公式为:;表示所述状态信息损失,表示所述第二状态信息,表示所述第一状态信息,表示矩阵范数。
28、可选地,按照第三公式计算所述故障预测结果的预测结果损失;
29、其中,所述第三公式为:;表示所述预测结果损失,表示所述故障预测结果与故障标签之间的监督损失,为模型输出的根因实例数目,为模型输出的无故障实例数目,该数值被优化约束为。
30、可选地,通过各个微服务分别对应的融合信息的融合信息损失、所述第一状态信息和所述第二状态信息之间的状态信息损失以及所述故障预测结果的预测结果损失,计算得到综合损失,包括:
31、对所述融合信息损失、所述状态信息损失以及所述预测结果损失进行加权融合,得到所述综合损失。
32、可选地,通过各个微服务分别对应的融合信息的融合信息损失、所述第一状态信息和所述第二状态信息之间的状态信息损失以及所述故障预测结果的预测结果损失,计算得到综合损失,包括:
33、计算所述融合信息损失、所述状态信息损失以及所述预测结果损失的平均值,将所述平均值作为所述综合损失。
34、可选地,还包括:
35、将所述故障预测模型部署于各个微服务中。
36、第二方面,本技术提供了一种故障预测方法,应用于微服务系统包括的各个微服务,包括:
37、利用自身中部署的故障预测模型实时进行故障预测和告警;
38、其中,所述故障预测模型基于前述任一项所述的模型训练方法获得。
39、第三方面,本技术提供了一种电子设备,包括:
40、存储器,用于存储计算机程序;
41、处理器,用于执行所述计算机程序,以实现前述公开的方法。
42、第四方面,本技术提供了一种非易失性存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述公开的方法。
43、第五方面,本技术提供了一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现前述公开的方法的步骤。
44、可见,本技术的有益效果为:以微服务系统中各个微服务的运行数据、日志统计数据和调用延时信息为基础,通过这三种信息的多模态融合得到各个微服务分别对应的融合信息,之后以多模态融合信息和各个微服务形成的调用图结构训练老师模块,能够捕捉不同模态数据之间的共性和差异,也使得复杂的调用关系渗入故障预测过程;以多模态融合信息训练学生模块,为实现高效故障检测提供了基础;在损失计算中对比老师模块的输出结果和学生模块的输出结果,以此通过对比学习完成了有效知识蒸馏,这有助于防止老师模块过拟合。在综合损失符合模型收敛条件时,将当前数据处理模块、当前学生模块和当前故障预测模块构建为故障预测模型,简化了模型结构和模型应用过程,使得故障预测模型能够综合各微服务间调用关系和多模态数据,提高微服务系统的故障检测效率和准确率。
45、相应地,本技术提供的一种模型训练、故障预测装置、设备、介质及程序产品,也同样具有上述技术效果。