arXivDaily arXiv每日学术速递 周一至周五更新
arXiv周末暂无论文更新,休息一下吧,周末愉快~~
arXiv 2303.02695cs.SEcs.LG
收藏

了解多语言深度学习框架中的错误

Understanding Bugs in Multi-Language Deep Learning Frameworks

Central China Normal University(华中师范大学);Wuhan University(武汉大学)

Zengyang Li, Sicheng Wang, Wenshuo Wang, Peng Liang, Ran Mo, Bing Li

摘要:

深度学习框架(DLF)在这个智能时代扮演着越来越重要的角色,因为它们是越来越广泛的基于AI的应用程序的基础设施。同时,作为多编程语言(MPL)软件系统,DLF不可避免地遭受由使用多个程序设计语言(PL)引起的错误。因此,了解错误(特别是涉及多个PL的错误,即,MPL缺陷),为DLF开发过程中缺陷的预防、检测和解决提供了依据。为此,我们手动分析了三个MPL DLF(即MXNet、PyTorch和TensorFlow)中的1497个bug。首先,我们将这些DLF中的错误分为12种类型(例如,算法设计错误和存储器错误)。其次,我们进一步探讨了不同类型的错误对DLF开发的影响,发现部署错误和内存错误在不同方面对DLF的开发产生了最大的负面影响。第三,我们发现MXNet、PyTorch和TensorFlow中分别有28.6%、31.4%和16.0%的bug是MPL bug; Python和C/C++的PL组合在修复所有DLF中超过92%的MPL bug时使用最多。最后,在所有三个DLF中,MPL错误修复的代码更改复杂性明显大于单一编程语言(SPL)错误修复,而在PyTorch中,MPL错误修复的开放时间更长,通信复杂性也比SPL错误修复更高。这些结果为DLF中的错误管理提供了见解。

英文摘要:

Deep learning frameworks (DLFs) have been playing an increasingly important role in this intelligence age since they act as a basic infrastructure for an increasingly wide range of AIbased applications. Meanwhile, as multi-programming-language (MPL) software systems, DLFs are inevitably suffering from bugs caused by the use of multiple programming languages (PLs). Hence, it is of paramount significance to understand the bugs (especially the bugs involving multiple PLs, i.e., MPL bugs) of DLFs, which can provide a foundation for preventing, detecting, and resolving bugs in the development of DLFs. To this end, we manually analyzed 1497 bugs in three MPL DLFs, namely MXNet, PyTorch, and TensorFlow. First, we classified bugs in these DLFs into 12 types (e.g., algorithm design bugs and memory bugs) according to their bug labels and characteristics. Second, we further explored the impacts of different bug types on the development of DLFs, and found that deployment bugs and memory bugs negatively impact the development of DLFs in different aspects the most. Third, we found that 28.6%, 31.4%, and 16.0% of bugs in MXNet, PyTorch, and TensorFlow are MPL bugs, respectively; the PL combination of Python and C/C++ is most used in fixing more than 92% MPL bugs in all DLFs. Finally, the code change complexity of MPL bug fixes is significantly greater than that of single-programming-language (SPL) bug fixes in all the three DLFs, while in PyTorch MPL bug fixes have longer open time and greater communication complexity than SPL bug fixes. These results provide insights for bug management in DLFs.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑