是否有可能应用机器学习算法来预测基于多年系统数据收集的大型HPC系统中的故障?



提供的 CSV 数据集类别如下所示:

日期 |硬件标识符 |失败了什么 |故障描述 |采取的行动

可以使用以下链接从 Dropbox 服务轻松下载完整的数据:数据.csv 数据非常系统,输入非常一致且结构良好。此数据来自计算机故障数据存储库。其他详细信息可以在USENIX:PNNL的此链接上找到

关于数据: 在 4 年内收集的单个故障事件的条目略多于 2800 个。每个事件都由事件发生的确切日期和时间、系统中的哪个节点发生故障、该节点的哪个硬件组件发生故障来描述。

关于系统: 由 980 个节点组成,为分子科学计算设施处理一些繁重的计算。每个节点都由其自己的唯一 ID 指定。

我的问题: 是否有可能在这样的数据集上执行任何有意义的机器学习技术,最终能够预测系统中的未来故障? 例如,是否可以在提供的数据集上训练 ML 算法以预测:

  • 哪个节点可能很快发生故障(基于硬件标识符字段)
  • 什么(硬件
  • 节点)组合可能很快失败(基于硬件标识符和失败内容故障描述字段)
  • 系统中任何位置接下来可能发生的故障类型(基于"失败的内容">字段)

对我来说,这听起来像是一个巨大的分类问题。例如,在(发生故障的硬件节点)的情况下,有数千种不同的可能性(类)。请记住,表中描述的单个故障事件只有 2800 多个,我觉得这行不通。 另外,我对如何将数据输入算法感到困惑。算法的唯一输入是否应是DATE字段(转换为数字线性增长时间)?这似乎不对。是否有可能以某种方式将时间变量与最近故障事件的一些历史记录相结合来馈送算法?我是否应该重构数据以使用时间变量 + 故障历史记录(例如,可能限制为过去 30 天,或馈送系统的整个故障历史记录)的算法?

我可以听听你的意见吗?是否有可能从这个数据集中训练一种算法,该算法可以预测上述任何故障事件(例如,即下一个节点将发生故障),给定系统的某些输入(我现在只能将时间视为输入,但这听起来是错误的)。

由于我刚刚开始涉足 ML 算法,我对这个主题的想法可能非常狭窄和有限,所以如果你觉得我应该在这方面采取完全不同的方法,请随时提出建议。

在我们继续之前,请记住,这些失败通常被认为是相当随机的,因此您获得的任何结果都可能相当不可靠。

要考虑的主要问题是,与节点数量相比,您的数据很少,平均略小于 3,这意味着您必须使用一些非常简单的模型,这不会比随机猜测给您带来太大优势,让您甚至对变量有任何确定性(单独的平均故障间隔时间不会有可确定的误差, 如果它甚至可以计算)。为此,我可能会将每个节点视为一个单独的测试点,然后训练一个基于树的算法来尝试预测节点故障序列中的最后一次故障是什么时候,但这也意味着它仅适用于数据库的一个子集。这可能能够模糊地预测节点是否会在不久的将来倒下以及它最有可能是什么类型,但它与所有节点的平均故障时间和最常见故障的估计相当接近。

如果你想要一些有意义的结果,你需要有一些可以进行机器学习的节点的属性,例如硬件组件和安装时间,然后将其作为分类中的输入。由于问题的行为可能相当随机,因此您将从尝试解决回归问题而不是分类问题中获得更多信息,因为即使分类本身具有高度不确定性,您仍然可以在概率模型上获得良好的精度。

相关内容

最新更新