多语言深度学习框架中跨语言设计缺陷的自动检测
软件工程
2024-12-17 v1
摘要
如今,大多数深度学习框架(DLFs)使用Python和C/C++的多语言编程,促进了DLF的灵活性和性能。然而,不恰当的跨语言交互可能会引入涉及多种编程语言(PLs)的设计缺陷,即跨语言设计缺陷(ILDS)。尽管ILDS对多语言DLFs有负面影响,但缺乏自动检测多语言DLFs中ILDS的方法,以及对这些DLFs中ILDS的全面理解。本工作自动检测用Python和C/C++组合编写的多语言DLFs中的ILDS,并获取对DLFs中此类ILDS的理解。我们首先开发了一种自动检测用Python和C/C++组合编写的多语言DLFs中ILDS的方法,包括基于跨语言通信机制和代码分析定义的一系列ILDS及其检测规则。然后我们开发了CPSMELL工具,实现了自动检测此类ILDS的检测规则,并手动验证了工具的准确性。最后,我们进行了一项研究来评估多语言DLFs中的ILDS。我们提出了七种ILDS,并在5个流行的多语言DLFs中对CPSMELL的手动验证达到了98.17%的准确率。研究结果显示,在5个DLFs中,TensorFlow、PyTorch和PaddlePaddle表现出相对较高的ILDS普遍性;每个有缺陷的文件平均包含约5个ILDS实例,其中用于跨语言绑定的长Lambda函数和未使用的本地实体相对突出;在5个DLFs的演化过程中,一些ILDS得到了一定程度的解决,但ILDS实例的总数呈上升趋势。所提出的ILDS的自动检测达到了高准确率,该研究提供了对多语言DLFs中ILDS的全面理解。
引用
@article{arxiv.2412.11869,
title = {Automated Detection of Inter-Language Design Smells in Multi-Language Deep Learning Frameworks},
author = {Zengyang Li and Xiaoyong Zhang and Wenshuo Wang and Peng Liang and Ran Mo and Jie Tan and Hui Liu},
journal= {arXiv preprint arXiv:2412.11869},
year = {2024}
}
备注
Preprint accepted for publication in Information and Software Technology, 2024