刻画PyPI中的深度学习包供应链:领域、簇与脱离
软件工程
2023-12-21 v2
摘要
深度学习(DL)包供应链(SC)对于DL框架保持竞争力至关重要。然而,关于DL包供应链本质的重要知识仍然匮乏。本文中,我们探索了两个代表性PyPI DL包供应链中包的域、簇与脱离,以弥补这一知识空白。我们分析了近六百万个PyPI包分发的元数据,并为两个流行的DL框架TensorFlow和PyTorch构建了版本敏感的供应链。我们发现两个供应链中流行的包(以月下载量衡量)覆盖了属于八类的34个域。应用、基础设施和科学类在任一供应链中均占流行包的超85%,且TensorFlow和PyTorch供应链分别在基础设施和应用包上形成了专门化。我们采用Leiden社区检测算法,在两个供应链中分别检测到131和100个簇。这些簇主要呈现四种形态:箭头形、星形、树形和森林形,依赖复杂性递增。大多数簇为箭头形或星形,但树形和森林形簇占据了大多数包(TensorFlow供应链:70%,PyTorch供应链:90%)。我们确定了包脱离供应链(即从安装依赖中移除DL框架及其依赖项)的三组原因:依赖问题、功能改进和易于安装。两个供应链中最常见的脱离原因不同。我们的研究为PyPI DL供应链的维护和依赖管理实践提供了丰富启示。
引用
@article{arxiv.2306.16307,
title = {Characterizing Deep Learning Package Supply Chains in PyPI: Domains, Clusters, and Disengagement},
author = {Kai Gao and Runzhi He and Bing Xie and Minghui Zhou},
journal= {arXiv preprint arXiv:2306.16307},
year = {2023}
}
备注
Preprint of paper accepted by ACM Transactions on Software Engineering and Methodology (TOSEM)