Issue resolution and bug-fixing processes are essential in the development of machine-learning libraries, similar to software development, to ensure well-optimized functions. Understanding the issue resolution and bug-fixing process of machine-learning libraries can help developers identify areas for improvement and optimize their strategies for issue resolution and bug-fixing. However, detailed studies on this topic are lacking. Therefore, we investigated the effectiveness of issue resolution for bug-fixing processes in six machine-learning libraries: Tensorflow, Keras, Theano, Pytorch, Caffe, and Scikit-learn. We addressed seven research questions (RQs) using 16,921 issues extracted from the GitHub repository via the GitHub Rest API. We employed several quantitative methods of data analysis, including correlation, OLS regression, percentage and frequency count, and heatmap to analyze the RQs. We found the following through our empirical investigation: (1) The most common categories of issues that arise in machine-learning libraries are bugs, documentation, optimization, crashes, enhancement, new feature requests, build/CI, support, and performance. (2) Effective strategies for addressing these problems include fixing critical bugs, optimizing performance, and improving documentation. (3) These categorized issues are related to testing and runtime and are common among all six machine-learning libraries. (4) Monitoring the total number of comments on issues can provide insights into the duration of the issues. (5) It is crucial to strike a balance between prioritizing critical issues and addressing other issues in a timely manner. Therefore, this study concludes that efficient issue-tracking processes, effective communication, and collaboration are vital for effective resolution of issues and bug fixing processes in machine-learning libraries.
翻译:问题解决与缺陷修复过程是机器学习库开发中的关键环节,与软件开发类似,其旨在确保函数得到充分优化。理解机器学习库的问题解决与缺陷修复过程,有助于开发者识别改进空间,并优化相应策略。然而,目前对此主题缺乏详细研究。因此,我们以六个机器学习库(Tensorflow、Keras、Theano、Pytorch、Caffe 和 Scikit-learn)为对象,研究了问题解决在缺陷修复过程中的有效性。我们通过 GitHub Rest API 从仓库中提取了 16,921 个问题,并以此提出七个研究问题(RQs)。采用多种定量数据分析方法,包括相关性分析、普通最小二乘法(OLS)回归、百分比与频数统计以及热力图,对 RQs 进行分析。通过实证研究,我们发现:(1)机器学习库中最常见的问题类别包括缺陷、文档、优化、崩溃、增强、新功能请求、构建/CI、支持及性能;(2)针对这些问题的有效策略包括修复关键缺陷、优化性能及改进文档;(3)这些问题类别与测试及运行时相关,且普遍存在于所有六个机器学习库中;(4)监控问题的总评论数量可为了解问题持续时长提供参考;(5)在优先处理关键问题与及时解决其他问题之间取得平衡至关重要。因此,本研究表明,高效的问题追踪流程、有效的沟通与协作对于机器学习库中的问题解决与缺陷修复过程至关重要。