中文

探索导致机器学习系统代码技术债务的因素

软件工程 2025-02-19 v1

摘要

[背景] 机器学习(ML)系统中的技术债务(Technical Debt, TD),如同其在软件工程(SE)中的对应物,可能导致未来的返工,给生产力、质量和团队士气带来风险。尽管在SE领域对技术债务有着日益关注,但对ML特定代码相关技术债务的理解仍显不足。[目标] 本文旨在识别并讨论导致ML代码中技术债务的相关代码问题在整个ML工作流程中的适用性。[方法] 本研究首先通过审查ML工作流程的各个阶段、其典型关联活动和问题类型,构建了34个可能导致ML代码技术债务的问题清单。随后通过两场由九位经验丰富的ML专业人员组成的焦点小组进行精炼,对每个问题依据其在ML代码中导致技术债务的发生频率和相关性进行评估。[结果] 从34个问题中 refined 至30个,其中24个问题被认为高度相关。数据预处理阶段最为关键,有14个问题被认为高度相关。与典型预处理任务相关的捷径(如处理缺失值、异常值、不一致性、缩放、再平衡和特征选择)常导致“补丁式修复”而非可持续解决方案,导致技术债务积累并增加维护成本。相关问题也发现于数据收集、模型创建和训练、模型评估阶段。[结论] 我们已公开最终的问题清单,相信这将帮助提升社区对整个ML工作流程中需加以关注的问题的意识,从而减少技术债务并提高ML代码的可维护性。

关键词

引用

@article{arxiv.2502.13011,
  title  = {Investigating Issues that Lead to Code Technical Debt in Machine Learning Systems},
  author = {Rodrigo Ximenes and Antonio Pedro Santos Alves and Tatiana Escovedo and Rodrigo Spinola and Marcos Kalinowski},
  journal= {arXiv preprint arXiv:2502.13011},
  year   = {2025}
}

备注

To appear in the 2025 4th IEEE/ACM International Conference on AI Engineering - Software Engineering for AI, CAIN 2025