一句话:首次系统研究深度学习栈依赖缺陷,从446个实例刻画症状、根因与修复模式。
深度学习应用构建在包含 GPU、驱动、操作系统、Python 运行时和 TensorFlow 等异构组件构成的复杂栈之上,依赖演化异步且激进,版本约束复杂,开发者在选择、使用和维护依赖时容易引入依赖缺陷。本文针对该问题,从 StackOverflow 帖子与 GitHub issue 中收集 446 个依赖缺陷,开展首个覆盖整个深度学习栈的综合实证研究。对每个缺陷,作者分析其症状及症状暴露的生命周期阶段与依赖、根因及根因引入的生命周期阶段与依赖,并探索修复模式及所用知识来源。研究结果揭示了依赖缺陷的分布特征与规律,并为深度学习栈依赖管理提供了实践启示。
Deep learning (DL) applications, built upon a heterogeneous and complex DL stack (e.g., Nvidia GPU, Linux, CUDA driver, Python runtime, and TensorFlow), are subject to software and hardware dependencies across the DL stack. One challenge in dependency management across the entire engineering lifecycle is posed by the asynchronous and radical evolution and the complex version constraints among dependencies. Developers may introduce dependency bugs (DBs) in selecting, using and maintaining dependencies. However, the characteristics of DBs in DL stack is still under-investigated, hindering practical solutions to dependency management in DL stack. To bridge this gap, this paper presents the first comprehensive study to characterize symptoms, root causes and fix patterns of DBs across the whole DL stack with 446 DBs collected from StackOverflow posts and GitHub issues. For each DB, we first investigate the symptom as well as the lifecycle stage and dependency where the symptom is exposed. Then, we analyze the root cause as well as the lifecycle stage and dependency where the root cause is introduced. Finally, we explore the fix pattern and the knowledge sources that are used to fix it. Our findings from this study shed light on practical implications on dependency management.
DOI 原文 · arXiv · PDF(开放获取) · DBLP
@inproceedings{Huang0WCM023,
title = {Demystifying Dependency Bugs in Deep Learning Stack},
author = {Kaifeng Huang and Bihuan Chen and Susheng Wu and Junming Cao and Lei Ma and Xin Peng},
booktitle = {FSE},
year = {2023},
doi = {10.1145/3611643.3616325}
}