中文

基于 Moose 分析 Python 机器学习笔记本

软件工程 2025-09-16 v1 机器学习

摘要

机器学习(ML)代码,特别是笔记本中的代码,通常表现出低于传统软件的质量。差异化实践在三个不同层面出现:通用 Python 编码规范、笔记本本身的组织结构以及 ML 特定方面如可重复性和正确的 API 用法。然而,现有分析工具通常只关注其中一层,且难以捕获 ML 特定语义,限制了其检测问题的能力。本文介绍了 Vespucci Linter,这是一种基于 Moose 构建的静态分析工具,具备多层次能力,旨在解决这一挑战。利用一种统一笔记本结构元素与 Python 代码实体的元建模方法,我们的 linter 能够进行更有上下文感知的分析,以识别所有三个层面的问题。我们实现了从文献中派生的 22 条 lint 规则,并将工具应用于来自 Kaggle 平台的 5000 个笔记本。结果揭示了所有层面都存在违规,这验证了多层次方法的相关性,并展示了 Vespucci Linter 提高笔记本环境下 ML 开发质量和可靠性的潜力。

关键词

引用

@article{arxiv.2509.11748,
  title  = {Analysing Python Machine Learning Notebooks with Moose},
  author = {Marius Mignard and Steven Costiou and Nicolas Anquetil and Anne Etien},
  journal= {arXiv preprint arXiv:2509.11748},
  year   = {2025}
}