根本不是云计算方向的,我只是单纯为做 <math xmlns="http://www.w3.org/1998/Math/MathML"> p p t ppt </math>ppt介绍做点准备.
1. 论文背景
- A large-scale cloud data center needs to provide high service reliability and availability with low failure occurrence probability. 一个大规模云数据中心需要提供较高的服务可靠性和可用性,且故障发生概率较低.
- Nowadays, cloud computing service has been wildly used because it provides high reliability, resource saving, and also on-demand services. 如今,云计算服务因其高可靠性、节省资源、按需服务而得到广泛应用.
- However, current large-scale cloud data centers still face high failure rates due to many reasons such as hardware and software failures, which often result in task and job failures. Such failures can severely reduce the reliability of cloud services and also occupy huge amount of resources to recover the service from failures. 然而,当前的大规模云数据中心由于硬件、软件故障等多种原因,仍然面临着较高的故障率,常常导致任务和作业失败。此类故障会严重降低云服务的可靠性,并且会占用大量资源来从故障中恢复服务.
- Therefore, it is important to predict task or job failures before occurrence with high accuracy to avoid unexpected wastage. 因此,在任务或工作失败发生之前高准确率预测以避免意外浪费非常重要.
2. 研究主题与重要性
2.1 研究主题
-
Many machine learning and deep learning based methods have been proposed for the task or job failure prediction by analyzing past system message logs and identifying the relationship between the data and the failures. In order to further improve the failure prediction accuracy of the previous machine learning and deep learning based methods, in this paper, we propose a failure prediction algorithm based on multi-layer Bidirectional Long Short Term Memory (Bi-LSTM) to identify task and job failures in the cloud. 通过分析过去的系统消息日志并识别数据与故障之间的关系,已经提出了许多基于机器学习和深度学习的方法来预测任务或作业故障.为了进一步提高以往基于机器学习和深度学习的方法的故障预测精度,本文提出一种基于多层双向长短期记忆(Bi-LSTM)来识别任务和工作的故障预测算法云中的失败.
-
The goal of Bi-LSTM failure prediction algorithm is to predict whether the tasks and jobs are failed or completed. Bi-LSTM 故障预测算法的目标是预测任务和作业是否失败或完成.
-
总之,这篇论文主要是提出一个基于Bi-LSTM的模型,使用此模型在云环境中预测作业或者任务是否失败或者完成,以改善当前机器学习与深度学习在方面应用的准确率.
2.2 重要性
- A cloud data center with such heterogeneity and intensive workloads may sometimes be vulnerable to different types of failures. 云计算中心因为工作负载密集以及异构性的特点,有时可能会遭受不同原因的故障.
- These types of failures can cause significant cost to users and cloud providers. 这些类型的故障可能会给用户和云提供商带来巨大的成本.
- For example,In October 2013, Knight Capital's cloud based automatic stock trading software went down for 45 min because of an error in trading algorithm, which costed $440 million to the company. 例如,2013年10月,Knight Capital基于云的自动股票交易软件因交易算法错误而宕机45分钟,给公司造成了4.4亿美元的损失.
- Thus, accurate prediction for the occurrence of application failures beforehand can improve the efficiency of recovering the failure and application running. 因此,提前准确预测应用程序故障的发生可以提高故障恢复和应用程序运行的效率.
3. 研究问题
- 文献总结了前人在有关工作方面的研究,用于预测故障的主要有三类方法.统计、机器学习、深度学习.
- However, statistical approaches such as HSMM assume that all their inputs are stationary and independent of each other which are not true in the cloud data centers. Thus, they cannot handle the sequence data or high dimensional data, in which data in time points or different features may be dependent on each other. 然而,诸如
HSMM
之类的统计方法假设它们的所有输入都是固定的并且彼此独立,但这在云数据中心中并非如此.因此,它们无法处理序列数据或高维数据,其中时间点或不同特征的数据可能相互依赖. - However, machine learning approaches such as SVM have the same shortcomings just like statistical approaches, so they cannot handle the sequence data well in cloud data centers. 然而,SVM等机器学习方法与统计方法一样具有相同的缺点,因此无法很好地处理云数据中心中的序列数据
- However, deep learning approaches such as RNN and LSTM also have several shortcomings. For RNN, it cannot handle the data with long-term dependency. For LSTM, it overcomes the drawback in RNN. But LSTM still has a drawback that it sets higher weights on the data closer to the time, and lower weights on the data further away from the time, with the assumption that the data further away from the time always has lower impact on the prediction. 然而,RNN 和 LSTM 等深度学习方法也有一些缺点。对于RNN来说,它无法处理具有长期依赖性的数据。对于LSTM来说,它克服了RNN的缺点。但LSTM仍然有一个缺点,它对距离时间较近的数据设置较高的权重,对距离时间较远的数据设置较低的权重,假设距离时间较远的数据对预测的影响总是较低.
- However, such settings cannot accurately reflect the impact degree as the further data may still have higher impact on the failure (e.g., failures in long term jobs). 然而,这样的设置不能准确地反映影响程度,因为进一步的数据仍然可能对故障产生更大的影响(例如,长期作业的故障).
4. 模型构建
4.1 总体框架
模型由一个输入层、两个 Bi-LSTM 层、一个输出层和逻辑回归(LR) 层组成.
如前所述,我们基于 Bi-LSTM 的方法在以下方面比基于 LSTM 的预测方法更有优势.首先,Bi-LSTM比以前的方法有更多的输入特征,包括任务优先级、任务重新提交和调度延迟.其次,Bi-LSTM具有多层结构,可以更好地处理多个输入特征以获得更高的精度. 第三,Bi LSTM可以根据数据项对故障的真实影响来确定数据项的权重,而不是简单地为距离给定时间较远的数据项设置更高的权重来进行预测,这有助于实现更高的预测准确性.
4.2 输入层
在训练阶段,先前的研究通过使用五类资源使用度量来构建云中的预测应用程序,即平均CPU使用率、平均内存使用率、未映射页面缓存、平均磁盘I/O和平均磁盘使用率. 在我们的训练阶段,我们尝试扩大输入维度集以更好地解决故障预测的准确性. 因此,我们添加以下属性作为前面提到的五个类别的输入,即任务优先级、任务重新提交次数和调度延迟. 我们将这些属性的所有度量设置为一个输入向量.
每个输入都是一个时间点的特征向量.从时间点 t − 100 到时间点 t − 1 有 100 个输入.输出是任务在时间点 t 是否失败或完成.对于每个任务,我们获取其最近 101 个时间点的数据进行训练和测试.如果某个任务的时间点数量小于100,我们将特征向量输入设置为0.
论文里举了例子,个人感觉说明更详细.
图 4 显示了训练和测试过程的简单示例。 每个轴代表一个任务的时间顺序。以测试过程为例,黑括号代表测试的输入数据,括号中的数据点的数量代表输入数据w的数量。 本例中,任务1中,输入数据为time=3的值到time=11的值,因此输入数据的总数为w=9。不在括号内的黑色部分代表数据 测试过程中未使用的点。 在任务2中,输入数据为time=0的值到time=8的值,因此输入数据的总数也为w=9。 然而,任务 2 在时间 = 5 时完成或停止。为了确保输入数据的格式相同,我们将任务 2 中的输入数据从时间 = 5 扩展到时间 = 8。因此输入数据的总数可以为 w = 9也是如此,我们将time = 5到time = 8的值设置为0。括号中的蓝色部分表示该任务的时间点少于9个,因此将其扩展为value = 0.任务1 代表数据点多于输入数据的任务,任务 2 代表数据点少于输入数据的任务.方块代表预测的终止状态,代表任务失败或完成。
从上文总结来看,输入矩阵似乎是100x8
.
4.3 Bi-LSTM层
<math xmlns="http://www.w3.org/1998/Math/MathML"> F i g 5 Fig5 </math>Fig5是Bi-LSTM层.
- 隐藏状态主要由前向状态和后向状态组成.基本思想是将输入forward 和backward序列作为两个独立的隐藏状态.
- 最后将两个隐藏状态连接起来,作为对逻辑回归函数的输入.
- 同时使用前向和后向状态,
Bi-LSTM
从而更准确地确定较近和较远输入特征的权重. - 注意看图.前向状态由连接相邻神经元的记忆细胞组成,形成循环,这些循环是神经元随时间的自我连接.
记忆细胞的内部结构如下所示.
- 存储单元的输入包括来自前一层的数据 <math xmlns="http://www.w3.org/1998/Math/MathML"> x i x_i </math>xi(i = 1, 2, ...m)以及来自前一层本身的数据 <math xmlns="http://www.w3.org/1998/Math/MathML"> n i − 1 n_{i−1} </math>ni−1(i = 1, 2, ...m)位置.注意, <math xmlns="http://www.w3.org/1998/Math/MathML"> n n </math>n是经过 <math xmlns="http://www.w3.org/1998/Math/MathML"> s i g m o i d sigmoid </math>sigmoid处理的输出.
- 与forward 状态不同,backward状态下, <math xmlns="http://www.w3.org/1998/Math/MathML"> n i − 1 n_{i−1} </math>ni−1(i = 1, 2, ...m) 是从下一个位置开始的.
- 与正常的LSTM一致,每个存储单元都有三个门来保护和控制其状态,包括输入门、遗忘门和输出门.
- 存储单元的公式可以表示如下,这部分直接看英文反而更好点.
在输出层中,Bi-LSTM 层中的记忆单元将根据输入序列{ <math xmlns="http://www.w3.org/1998/Math/MathML"> x 1 x_1 </math>x1, <math xmlns="http://www.w3.org/1998/Math/MathML"> x 2 x_2 </math>x2... <math xmlns="http://www.w3.org/1998/Math/MathML"> x m x_m </math>xm} 生成表示序列 { <math xmlns="http://www.w3.org/1998/Math/MathML"> h 1 h_1 </math>h1, <math xmlns="http://www.w3.org/1998/Math/MathML"> h 2 h_2 </math>h2,... <math xmlns="http://www.w3.org/1998/Math/MathML"> h m h_m </math>hm}.作者将输出的均值定义为平均池化.
4.4 Logistic Regression 层
在逻辑回归层中,输出层的结果被馈送到逻辑回归函数,其目标是与输入序列关联的类标签(即失败或完成).这意味着 Bi-LSTM 模型中生成的终止状态是根据输入特征产生的.我们设置了失败概率值的阈值来确定终止状态. 逻辑回归函数根据 <math xmlns="http://www.w3.org/1998/Math/MathML"> h ^ \hat{h} </math>h^计算故障概率值.如果小于阈值,则将终止状态分类为失败,否则将终止状态分类为完成.我们在评估部分使用不同的阈值来测试实验中的性能.
4.5 算法运作流程
看下面文献给出的流程,感觉本文的模型以及算法还是比较简单的.
5. 评估与验证
5.1 实验数据集
我们在实验中总共选择了 555555 个任务,其中 50,000 个任务用于训练,55555 个任务用于测试.
5.2 超参数设置
- 根据我们的实验,为了获得更好的性能,我们在每层设置17个记忆单元。
- 批量大小设置为 100,这意味着我们在一个训练步骤中使用 100 个任务。
- 每个时期有 5000 个训练步骤,训练时期数设置为 1000,这意味着我们使用 500000 个任务的数据集进行了 1000 次训练。
- 对于每次训练和测试,我们使用任务的前 100 个时间点的数据,因为许多任务都长于 100 个时间点
- 实验中机器学习模型的概率值阈值分别在[0,0.2,0.4,0.6,0.8,1]范围内选取。 我们为图 7、8、9 和 10 选择的阈值是 0.8.
5.3 验证
我们使用K折交叉验证来减少建模中可能发生的过拟合,并确保不存在影响预测精度的随机因素,以评估mBi-LSTM和其他比较方法的精度性能。 具体来说,我们将整个数据集分为 k 个子集。 有k轮训练和测试。 在第 i 轮中,第 i 个子集用作测试集,其他 k-1 个子集放在一起形成训练集. 然后计算所有 k 次试验的平均误差. 在之前的研究中,k被讨论设置为10。因此我们在模型中选择k=10。
5.4 指标与比较模型
论文中采取三个指标来对比其他实验方法.三个指标分别是准确率与F1分数, 受试者工作特征ROC, 时间成本开销TCO.其他实验方法是HSMM 、SVM 、RNN 和 LSTM .
5.5 结论
与之前的方法相比,Bi-LSTM 可以使用 Google 集群跟踪更准确地预测任务和作业的终止状态.与此同时,Bi-LSTM务失败预测准确率达到 93%,工作失败预测准确率达到 87%.在任务失败预测中取得了 92% 的 F1 分数,在工作失败预测中取得了 86% 的 F1 分数。Bi-LSTM 也具有较低的 FPR,这也表明基于预测结果的主动故障管理变得更加有效。