机器学习应用中异常的根源何在?基于Stack Overflow的机器学习相关栈追踪挖掘
机器学习
2023-04-26 v1 软件工程
摘要
机器学习(ML),包括深度学习,近来在广泛应用中的受欢迎程度急剧上升。然而,如同传统软件,ML应用也不能免于由编程错误导致的缺陷。显式编程错误通常通过错误消息和栈追踪表现出来。这些栈追踪描述了导致异常情形或异常的调用函数链。实际上,这些异常可能跨越整个软件栈(包括应用和库)。因此,研究栈追踪中的模式可帮助从业者和研究者理解ML应用中异常的原因以及ML开发者面临的挑战。为此,我们挖掘Stack Overflow(SO)并研究了与七个流行Python ML库相关的11,449条栈追踪。首先,我们观察到含有栈追踪的ML问题比无栈追踪的问题获得更高关注度,但获得采纳答案的可能性更低。其次,我们观察到ML栈追踪中存在反复出现的模式,甚至跨不同ML库,少量模式覆盖了众多栈追踪。第三,我们从栈追踪模式中归纳出五类高级类别和25种低级类型:多数模式与Python基础语法、模型训练、并行化、数据转换和子进程调用相关。此外,与子进程调用、外部模块执行和远程API调用相关的模式在SO上最不可能获得采纳答案。我们的发现为研究者、ML库提供者和ML应用开发者改进ML库及其应用质量提供了见解。
引用
@article{arxiv.2304.12857,
title = {What Causes Exceptions in Machine Learning Applications? Mining Machine Learning-Related Stack Traces on Stack Overflow},
author = {Amin Ghadesi and Maxime Lamothe and Heng Li},
journal= {arXiv preprint arXiv:2304.12857},
year = {2023}
}