一句话:提出 DeepFD,用学习模型根据训练运行时特征诊断并定位深度学习程序中的故障,替代神经元修复与硬编码规则。
现有 DL 调试工作多定位或修复训练后 DNN 中的可疑神经元,但许多不良行为实际源于 DL 程序中的故障,且神经元定位对开发者不够可操作。基于预定义规则的近期方法又易误报或漏报。本文提出 DeepFD,将故障定位转化为学习问题:在 DNN 训练期间监控并提取运行时特征,推断可疑故障类型,再在 DL 程序中定位已诊断故障。它定位程序根因而非神经元,并用学习方式替代硬编码规则。评估中,DeepFD 正确诊断 52% 的故障 DL 程序,而最佳已有工作约 27%;故障定位正确率 42%,几乎是最佳已有结果 23% 的两倍。
As Deep Learning (DL) systems are widely deployed for mission-critical applications, debugging such systems becomes essential. Most existing works identify and repair suspicious neurons on the trained Deep Neural Network (DNN), which, unfortunately, might be a detour. Specifically, several existing studies have reported that many unsatisfactory behaviors are actually originated from the faults residing in DL programs. Besides, locating faulty neurons is not actionable for developers, while locating the faulty statements in DL programs can provide developers with more useful information for debugging. Though a few recent studies were proposed to pinpoint the faulty statements in DL programs or the training settings (e.g. too large learning rate), they were mainly designed based on predefined rules, leading to many false alarms or false negatives, especially when the faults are beyond their capabilities. In view of these limitations, in this paper, we proposed DeepFD, a learning-based fault diagnosis and localization framework which maps the fault localization task to a learning problem. In particu-lar, it infers the suspicious fault types via monitoring the runtime features extracted during DNN model training, and then locates the diagnosed faults in DL programs. It overcomes the limitations by identifying the root causes of faults in DL programs instead of neurons, and diagnosing the faults by a learning approach instead of a set of hard-coded rules. The evaluation exhibits the potential of DeepFD. It correctly diagnoses 52% faulty DL programs, compared with around half (27%) achieved by the best state-of-the-art works. Besides, for fault localization, DeepFD also outperforms the existing works, correctly locating 42% faulty programs, which almost doubles the best result (23%) achieved by the existing works.