行将开播:5月20日,基于kubernetes打造企业级私有云实际
如何恰外地提交代码,才能既保证研讨的可复现性,又能扩展传达?近日,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 星数越多。
既然如此,我们赶快来看这五项的详细内容,并实施起来吧。
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 中可以等候什么结果。
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
【编辑引荐】
前端开发的瓶颈与未来之路
Python开发者调查显示只要十分之一的人还在用Python 2
开发者被要求向破解者抱歉,竟揪出“阿里云假员工”,网友:有前科
OPPO技术开放日第五期精彩纷呈,一站式接入才能聚合赋能开发者
AWS云上输入机器学习的黄金工具:Amazon SageMaker正式落地中国
(责任编辑:admin)