[翻] ML 代码完整性检查清单

2023-09-21 16:26:23 浏览数 (1)

翻译 ML Code Completeness Checklist 完整版请戳原文查看。

动机

去年 Joelle Pineau 发布了 Reproducibility checklist 以促进在一些主要的 ML 会议 (NeurIPS, ICML, ......)上发表可重复性的研究。检查清单上的大部分项目都集中在论文的组成部分上。

该检查清单上有一项是 “提供源代码的链接”,但除此之外,很少有人给出指导。我们在 Papers with Code 上主办了最大的论文实现集合,所以我们整理了我们所看到的最流行的研究库所使用的最佳实现。

我们将这些最佳实现总结成 ML 代码完整性检查清单,现在这已经成为 NeurIPS 2020 官方代码提交流程的一部分,并将提供给审稿人员酌情使用。

ML 代码完整性检查清单

为了提高可复现性,并能够使他人更容易地在已发表的工作基础上开展研究,我们介绍 ML 代码完整性检查清单。

ML 代码完整性检查清单依据代码库中提供的脚本和工件对代码库进行评估。它检查代码库中的以下内容:

  1. 依赖关系 Dependencies - 代码库中是否有关于依赖关系的信息或如何设置环境的说明?
  2. 训练脚本 Training scripts - 代码库是否包含训练/拟合论文中描述的模型的方法?
  3. 评估脚本 Evaluation scripts - 代码库中是否包含训练过的模型的性能或对模型进行实验的脚本?
  4. 预训练模型 Pretrained models - 代码库中是否提供免费访问预训练模型的权重?
  5. 结果 Results - 代码库中是否包含主要结果的表格/图表和重现这些结果的脚本?

每个代码仓库可以得到 0 (无) 和 5 (有) 之间的 ticks。关于每个项标准的更多内容可以在我们的 GitHub 代码仓库中找到。

有什么证据表明检查清单项目可以鼓励更多有用的代码仓库

社区通常使用 GitHub 星级来代表代码仓库的有用性。因此,我们的期望是,在 ML代码完整性检查清单上得分较高的版本库也应该有更多的 GitHub Star。

为了验证这个假设,我们选择了 884 个 GitHub 仓库作为正式实现提交给 NeurIPS 2019 年论文的官方实现。我们从这 884 个版本库中随机抽取了 25% 的子集,并在 ML 代码完整性检查清单上手动打分。

我们将这个 NeurIPS 2019 年的 GitHub 仓库样本按照在 ML 代码完整性检查表上有多少个 tick 进行分组,并绘制出每组中的 GitHub 星级中位数。结果如下图所示:

NeurIPS 2019 年的版本库中,有 0 个 ticks 的版本库的中位数为 1.5 颗 GitHub 星。相比之下,拥有 5 个 ticks 的版本库的中位数为 196.5 颗 GitHub 星。只有 9% 的版本库有 5 颗星,而大多数版本库(70%)有 3 颗星或更少。

0 人点赞