What Causes Exceptions in Machine Learning Applications? Mining Machine Learning-Related Stack Traces on Stack Overflow

Amin Ghadesi, and Maxime Lamothe, Member, IEEE, and Heng Li

解决问题:本篇论文旨在通过分析Stack Overflow中与Python机器学习库相关的异常堆栈跟踪,研究机器学习应用程序中异常的原因和挑战。这是否是一个新问题?这是一个相对较新的问题,因为机器学习应用程序的异常与传统软件应用程序的异常有所不同。

关键思路:本文的关键思路是通过分析异常堆栈跟踪中的模式,提取出高级别和低级别的异常类型,并探讨这些异常的原因和解决方案。相比当前领域的研究状况,本文的思路在于从异常堆栈跟踪中提取出有用的信息,为研究人员和开发人员提供了更多的洞察力和指导。

其他亮点:本文的实验使用了Stack Overflow中的数据集,并提取出了五个高级别和25个低级别的异常类型。作者发现,异常堆栈跟踪中的模式存在重复,并且这些模式可以跨越不同的机器学习库。此外,作者还发现,与子进程调用、外部模块执行和远程API调用相关的模式最不可能在Stack Overflow上获得被接受的答案。作者的发现为研究人员、机器学习库提供商和应用程序开发人员提供了改进机器学习库和应用程序质量的洞察和建议。

相关研究:近期其他相关的研究包括:

  1. "DeepTest: Automated Testing of Deep-Neural-Network-driven Autonomous Cars",作者:Yuchi Tian,Kexin Pei,Suman Jana,Baishakhi Ray,机构:Columbia University。

  2. "Towards Understanding Learning Representations: To What Extent Do Different Neural Networks Learn the Same Representations?",作者:Simon Kornblith,Jonathon Shlens,Quoc V. Le,机构:Google。

论文摘要:

机器学习(ML),包括深度学习,最近在各种应用中获得了巨大的流行。然而,像传统软件一样,ML应用程序并不免于由编程错误导致的错误。显式编程错误通常通过错误消息和堆栈跟踪来体现。这些堆栈跟踪描述了导致异常情况或异常的函数调用链。实际上,这些异常可能跨越整个软件堆栈(包括应用程序和库)。因此,研究堆栈跟踪中的模式可以帮助从业者和研究人员了解ML应用程序中异常的原因以及ML开发人员面临的挑战。为此,我们在Stack Overflow(SO)上挖掘数据并研究了与七个流行的Python ML库相关的11,449个堆栈跟踪。

首先,我们观察到包含堆栈跟踪的ML问题比没有堆栈跟踪的问题更受欢迎;然而,它们更不可能获得被接受的答案。其次,我们观察到ML堆栈跟踪存在重复模式,即使在不同的ML库中也是如此,其中一小部分模式覆盖了许多堆栈跟踪。第三,我们从堆栈跟踪模式中推导出五个高级类别和25个低级类型:大多数模式与Python基本语法、模型训练、并行化、数据转换和子进程调用有关。此外,与子进程调用、外部模块执行和远程API调用相关的模式最不可能在SO上获得被接受的答案。我们的发现为研究人员、ML库提供商和ML应用程序开发人员提供了洞察,以改善ML库及其应用程序的质量。

内容中包含的图片若涉及版权问题,请及时与我们联系删除