paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Assessing and restoring reproducibility of Jupyter notebooks

评估并恢复 Jupyter Notebook 的可复现性
ASE Proceedings of the 35th IEEE/ACM International Conference on Automated Software Engineering2020匹配度 3/10 · 论文关注 Jupyter Notebook 因单元格执行顺序任意而不可复现的问题,属于开发者工具/程序分析相关,但未涉及 LLM/Agent、静态分析在 ML/Agent 程序中的应用,也不涉及浮点或贝叶斯程序分析,与用户核心方向交集有限。引用 71 inbox
Jiawei Wang, Tzu-yang Kuo, Li Li, Andreas Zeller
crossref: 2026-09-12

AI 速览

一句话:揭示 Jupyter Notebook 因单元格执行顺序任意而普遍不可复现,并关注其评估与恢复问题。

Jupyter Notebook 包含可执行代码、公式、可视化和叙述文本,是传播科学计算的重要载体。然而其代码单元格可以任意顺序执行,常出现标识符先用后定义、结果先于计算的情况,导致 notebook 难以复现。论文关注 notebook 的可复现性评估与恢复问题,对 936 个原则上可执行的已发布 notebook 进行样本分析,检验直接方法能否复现。结果显示,73% 的 notebook 无法用直接方法复现,需要人工推断甚至猜测作者创建单元格的顺序。该工作揭示 notebook 隐式执行顺序对可复现性的关键影响,并为评估和恢复可复现性提供了经验依据。

问题
Jupyter notebook 的单元格可任意顺序执行,导致标识符先用后定义、结果先于计算,使已发布 notebook 难以复现。
方法
论文评估已发布 notebook 的可复现性,并尝试恢复;对 936 个原则上可执行的 notebook 应用直接复现方法,分析失败原因,指出需推断作者创建单元格的顺序。
评估
样本分析显示 73% 的 notebook 无法用直接方法复现,需人工推断或猜测单元格顺序。
原文摘要(Abstract)

Jupyter notebooks---documents that contain live code, equations, visualizations, and narrative text---now are among the most popular means to compute, present, discuss and disseminate scientific findings. In principle, Jupyter notebooks should easily allow to reproduce and extend scientific computations and their findings; but in practice, this is not the case. The individual code cells in Jupyter notebooks can be executed in any order, with identifier usages preceding their definitions and results preceding their computations. In a sample of 936 published notebooks that would be executable in principle, we found that 73% of them would not be reproducible with straightforward approaches, requiring humans to infer (and often guess) the order in which the authors created the cells.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@inproceedings{paperbot5947,
  title = {Assessing and restoring reproducibility of Jupyter notebooks},
  author = {Jiawei Wang and Tzu-yang Kuo and Li Li and Andreas Zeller},
  booktitle = {ASE},
  year = {2020},
  doi = {10.1145/3324884.3416585}
}