解析深度学习框架中的代码克隆动态
软件工程
2024-04-29 v1 人工智能
摘要
深度学习(DL)框架在推动人工智能发展方面发挥着关键作用,其快速增长凸显了对软件质量和可维护性进行全面理解的必要性。与其他系统一样,DL框架也容易出现代码克隆。代码克隆是指在同一项目内甚至不同项目之间存在的相同或高度相似的源代码片段。代码克隆对软件开发具有积极和消极的影响,会影响维护、可读性和错误传播。本文旨在填补关于DL框架中代码克隆的演化维度以及这些框架间代码复用程度的知识空白。我们对九个流行的DL框架(即TensorFlow、Paddle、PyTorch、Aesara、Ray、MXNet、Keras、Jax和BentoML)中的代码克隆进行了实证分析,以调查(1)每个框架在多次发布中代码克隆的长期演化特征,(2)短期(即发布版本内)的代码克隆模式及其对长期趋势的影响,以及(3)DL框架内的文件级代码克隆。我们的发现表明,DL框架呈现出四种不同的克隆趋势,且这些趋势表现出一些共性和独特特征。例如,无论克隆演化趋势如何,错误修复活动持续在克隆中发生,但在“蛇形”趋势中更为频繁。此外,发布版本内的调查表明,短期代码克隆实践会影响长期克隆趋势。跨框架代码克隆调查揭示了在所研究的九个框架中,存在功能与架构适应的文件级跨框架代码克隆。我们提供的见解有助于在DL框架开发中促进稳健的克隆实践和协同维护。
引用
@article{arxiv.2404.17046,
title = {Unraveling Code Clone Dynamics in Deep Learning Frameworks},
author = {Maram Assi and Safwat Hassan and Ying Zou},
journal= {arXiv preprint arXiv:2404.17046},
year = {2024}
}
备注
37 pages