傻大方


首页 > 人文 >

PapersWithCode发布代码完整性自查清单:想获更多星,注意这五项



按关键词阅读:


选自Medium
机器之心编译
参与:魔王、小舟
如何恰当地提交代码 , 才能既保证研究的可复现性 , 又能扩大传播?近日 , PapersWithCode 发布了机器学习代码完整性自查清单 。 目前 , 该清单已成为 NeurIPS 2020 代码提交流程的一部分 。
可复现性是科学领域长期关注的话题 , 近期人工智能和机器学习社区也对此投入了更多关注 。 例如 ICML、ICLR 和 NeurIPS 这些顶级学术会议都在努力推进将实验代码和数据作为评审材料的一部分提交 , 并鼓励作者在评审或出版过程中提交代码以帮助结果可复现 。
加拿大麦吉尔大学副教授、Facebook 蒙特利尔 FAIR 实验室负责人 Joelle Pineau 多次探讨该领域的可复现问题 , 并在去年底发布了可复现性检查清单 。 但是这份清单中的大部分内容与论文本身的构成有关 , 对于代码开源提供的指导较少 。
最近 , Papers with Code 联合创始人 Robert Stojnic 发布了一份机器学习代码完整性自查清单 , 或许可以帮助社区部分地解决这一难题 。
Papers with Code 网站收集了大量论文实现集合和最佳实践 。 该团队对这些最佳实践进行了总结 , 得出一份机器学习代码完整性自查清单 。 目前该清单已成为 NeurIPS 2020 代码提交流程的一部分 , 并且将会提供给评审人员使用 。
清单项目地址:https://github.com/paperswithcode/releasing-research-code
机器学习代码完整性自查清单
为鼓励复现性 , 帮助社区成员基于已发表工作更轻松地构建新的项目 , Papers with Code 团队发布了机器学习完整性自查清单 。
该清单基于脚本等评估代码库的完整性 , 共包含五大项:
依赖项
训练脚本
评估脚本
预训练模型
结果
该团队对 NeurIPS 2019 论文的官方 repo 进行分析后发现 , 代码完整性越高 , 项目的 GitHub 星数越多 。
PapersWithCode发布代码完整性自查清单:想获更多星,注意这五项
本文插图

既然如此 , 我们赶快来看这五项的具体内容 , 并实施起来吧 。
1. 依赖项
如果你用的语言是 Python , 那么当使用 pip 和 virtualenv 时 , 你需要提供 requirements.txt 文件;当使用 anaconda 时 , 你需要提供 environment.yml 文件;当使用的是代码库时 , 你需要提供 setup.py 。
在 README.md 中解释如何安装依赖项是一种很好的做法 。 假设用户具备极少的背景知识 , 编写 README 文件时尽量给出清晰完整的说明 。 因为如果用户无法设置好依赖项 , 那么他们大概率不会继续看你的代码 。
如果想提供整体可复现的环境 , 你可以考虑使用 Docker , 把环境的 Docker 镜像上传到 Dockerhub 。
2. 训练脚本
代码应包含用来实现论文结果的训练脚本 , 也就是说你应该展示获得结果的过程中所使用的超参数和 trick 。 为了将效用最大化 , 理想情况下写代码时你的脑海中应当有一些扩展场景:如果用户也想在他们自己的数据集上使用相同的训练脚本呢?
你可以提供一个完备的命令行包装器(如 train.py)作为用户的切入点 。
3. 评估脚本
模型评估和实验通常细节较多 , 在论文中常常无法得到详细地解释 。 这就是提交评估模型或运行实验的确切代码有助于完整描述流程的原因所在 。 而且 , 这也能帮助用户信任和理解你的研究 。
你可以提供一个完备的命令行包装器(如 eval.py)作为用户的切入点 。
4. 预训练模型
从头训练模型需要大量时间和成本 。 增加结果可信度的一种有效方法是提供预训练模型 , 使社区可以评估并获得最终结果 。 这意味着用户不用重新训练就能看到结果是可信的 。
它还有一个用处 , 即有助于针对下游任务进行微调 。 发布预训练模型后 , 其他人能够将其应用于自己的数据集 。分页标题
最后 , 有些用户可能想试验你的模型在某些样本数据上是否有效 。 提供预训练模型能够让用户了解你的研究并进行试验 , 从而理解论文的成果 。
5. 结果
README 文件内应包括结果和能够复现这些结果的脚本 。 结果表格能让用户快速了解从这个 repo 中能够期待什么结果 。
PapersWithCode发布代码完整性自查清单:想获更多星,注意这五项
本文插图

README.md 模板中的示例(模板地址:https://github.com/paperswithcode/releasing-research-code/blob/master/templates/README.md)
能够复现结果的指令给用户提供了另外一个切入点 , 能够直接促进可复现性 。 在一些情况下 , 论文的主要结果只有一张图 , 对于没有读过论文的用户 , 理解起来会很困难 。
你还可以放置包含其他论文最新结果的完整排行榜链接 , 这有助于用户进一步理解你的研究结果 。
具备代码完整性的项目示例
此外 , 该团队还提供了多个具备代码完整性的项目 , 以及有助于代码提交的额外资源 。
NeurIPS 2019 项目示例
https://github.com/kakaobrain/fast-autoaugment
https://github.com/bknyaz/graph_attention_pool
https://github.com/eth-sri/eran
https://github.com/NVlabs/selfsupervised-denoising
https://github.com/facebookresearch/FixRes
额外资源
预训练模型文件托管平台:
Zenodo
GitHub Releases
Google Drive
Dropbox
AWS S3
模型文件管理工具:
RClone
标准化模型界面:
PyTorch Hub
Tensorflow Hub
Hugging Face NLP models
结果排行榜:
Papers with Code leaderboards
CodaLab
NLP Progress
EvalAI
Weights & Biases - Benchmarks
制作项目页面工具:
GitHub pages
Fastpages
制作 demo 和教程工具:
Google Colab
Binder
Streamlit
参考链接:
https://medium.com/paperswithcode/ml-code-completeness-checklist-e9127b168501
【PapersWithCode发布代码完整性自查清单:想获更多星,注意这五项】https://github.com/paperswithcode/releasing-research-code


    来源:(精彩趣投稿)

    【】网址:/a/2020/0516/1589591268.html

    标题:PapersWithCode发布代码完整性自查清单:想获更多星,注意这五项


    上一篇:美国商务部再次将华为临时许可证延长90天

    下一篇:钛媒体APP丰巢调整超时收费政策:免费保管期限从12小时延长至18小时


    人文

    威奥 华夏人寿错过威奥股份IPO:7折转让原始股 浮亏近1亿

    阅读(18)

    据招股解释书,孙汉本同伙王建国早期投资威奥股份,1年撤退撤退出获利约5500万元。同样为早期投资人的华夏人寿,花了3个亿,最终却以7折的价格让渡了全部股权,账面浮亏近1亿。1年获利5500万2015年10月,威奥股份实际控制人、股东孙汉本的同伙王建国因看好威...

    人文

    「戏说健康」黄河会把“渤海”填平吗?看看海岸线有史以来的变化

    阅读(32)

    为什么水会变得发黄呢?这就看看汗青了走向,要大年夜春秋那个时刻说起来了。春秋那个时刻的河水清清,河岸边都是树林,小草成片像个大年夜大年夜的棉被一样覆盖在黄河的地盘上,空气清爽,风景宜人。根本就没有黄色的泥在河里沉积。真正开端取名为黄河照样大...

    人文

    嘉定发布|这个小区的树都被砍“秃”了,涉嫌违法,要罚钱!

    阅读(28)

    修剪树木是日常绿豢养护行动,但如不雅过度修剪,不仅影响树木发展,还涉嫌违法。近日,安亭镇城管中队接到群众反竽暌钩,莱茵北郡社区的喷鼻樟树被“砍头去枝”,执罪人员急速前去现场核查。记者跟随城管法律队员来到小区,只见沿路48棵喷鼻樟树全被砍“秃”...