中文

机器学习项目中 CI/CD 流水线演化的实证分析

软件工程 2025-02-25 v4

摘要

机器学习(ML)的日益普及以及 ML 组件与其他软件构件的集成,促使了持续集成与交付(CI/CD)工具的使用,如 Travis CI、GitHub Actions 等,这些工具能够为 ML 项目实现更快的集成和测试。此类 CI/CD 配置和服务在项目生命周期中需要同步。已有若干工作讨论了传统软件系统中 CI/CD 配置和服务在使用过程中的变化。然而,关于 ML 项目中 CI/CD 配置和服务如何变化的知识非常有限。为填补这一知识空白,本工作首次对 ML 软件系统的 CI/CD 配置演化进行了实证分析。我们手动分析了从 508 个开源 ML 项目中收集的 343 次提交,以识别 ML 项目中常见的 CI/CD 配置变更类别,并设计了一个包含 14 种 CI/CD 与 ML 组件共同变更的分类法。此外,我们开发了一个 CI/CD 配置变更聚类工具,在 15,634 次提交中识别出频繁的 CI/CD 配置变更模式。我们还衡量了修改 CI/CD 配置的 ML 开发者的专业水平。基于此分析,我们发现 61.8% 的提交包含对构建策略的变更,且与一般开源项目相比,与性能和可维护性相关的变更极少。此外,共同演化分析发现,CI/CD 配置在许多情况下因不良实践(如直接包含依赖项和缺乏标准化测试框架的使用)而发生不必要的变更。通过变更模式分析发现了更多实践,包括使用已弃用的设置和依赖通用构建语言。最后,我们的开发者专业水平分析表明,经验丰富的开发者更倾向于修改 CI/CD 配置。

关键词

引用

@article{arxiv.2403.12199,
  title  = {Empirical Analysis on CI/CD Pipeline Evolution in Machine Learning Projects},
  author = {Dhia Elhaq Rzig and Alaa Houerbi and Rahul Ghanshyam Chavan and Foyzul Hassan},
  journal= {arXiv preprint arXiv:2403.12199},
  year   = {2025}
}