搞机器学习的小伙伴们,免不了要在各种数据集上,给AI模型跑分。
现在,Papers with Code (那个以论文搜代码的神器) 团队,推出了自动跑分服务,名叫sotabench,以跑遍所有开源模型为己任。
有了它,不用上传代码,只要连接GitHub项目,就有云端GPU帮你跑分;每次提交了新的commit,系统又会自动更新跑分。还有世界排行榜,可以观察各路强手的成绩。
除了支持各大主流数据集,还支持用户上传自己的数据集。
也可以看看,别人的论文结果,到底靠谱不靠谱。
比如说,fork一下Facebook的FixRes这个项目,配置一下评估文件:
然后一键关联,让Sotabench的GPU跑一下ImageNet的图像分类测试。
就能得到这样的结果:
Top-1准确率,Top-5准确率,跟论文的结果有何差距(见注),运行速度,全球排名,全部一目了然。
注:ε-REPR,结果与论文结果差距在0.3%以内时打勾,差距≥0.3%且比论文结果差显示为红叉,比论文结果好显示为勾+
这个免费的跑分神器,发布一天,便受到热烈欢迎:推特点赞600+,Reddit热度270+。
网友纷纷表示:这对开发者社区来说太有用了!
那么,先来看一下sotabench的功能和用法吧。
用法简单,海纳百川
团队说,sotabench就是Papers with Code的双胞胎姐妹:
Papers with Code大家很熟悉了,它观察的是论文报告的跑分。可以用来寻找高分模型对应的代码,是个造福人类的工具。
与之互补,sotabench观察的是开源项目,代码实际运行的结果。可以测试自己的模型,也能验证别家的模型,是不是真有论文说的那么强。
它支持跟其他模型的对比,支持查看速度和准确率的取舍情况。
那么,sotabench怎么用?简单,只要两步。
第一步,先在本地评估一下模型:
在GitHub项目的根目录里,创建一个sotabench.py文件。里面可以包含:加载、处理数据集和从中得出预测所需的逻辑。每提交一个commit,这个文件都会运行。然后,用个开源的基准测试库来跑你的模型。这个库可以是sotabench-eval,这个库不问框架,里面有ImageNet等等数据集;也可以是torchbench,这是个PyTorch库,和PyTorch数据集加载器搭配食用更简单。
一旦成功跑起来,就可以进入下一步。
第二步,连接GitHub项目,sotabench会帮你跑:
点击这个按钮,连到你的GitHub账号,各种项目就显现了。选择你要测试的那个项目来连接。连好之后,系统会自动测试你的master,然后记录官方结果,一切都是跑在云端GPU上。测试环境是根据requirement.txt文件设置的,所以要把这个文件加进repo,让系统捕捉到你用的依赖项。
从此,每当你提交一次commit,系统都会帮你重新跑分,来确保分数是最新的,也确保更新的模型依然在工作。
这样一来,模型出了bug,也能及时知晓。
如果要跑别人家的模型,fork到自己那里就好啦。
目前,sotabench已经支持了一些主流数据集:
列表还在持续更新中,团队也在盛情邀请各路豪杰,一同充实benchmark大家庭。
既支持创建一个新的benchmark,也支持为现有benchmark添加新的实现。
你可以给sotabench-eval或torchbench项目提交PR,也可以直接创建新的Python包。
一旦准备就绪,就在sotabench官网的论坛上,发布新话题,团队会把你的benchmark加进去的:
好评如潮
这样的一项服务推出,网友们纷纷点赞,好评如潮,推特点赞600+。
有网友表示:
太棒了!对刚入门的新手来说,数据集获取、预处理和评估的自动化和标准化很有用。通过分析不同模型及其超参数结果,来评估这些模型,本身是挺困难的一件事,你得在各种论文中查阅大量的非结构化数据。有了这个,这件事就轻松多了。(部分意译)
许多网友对这个项目进行了友好的探讨及建议,而开发人员也在线积极回应。
比如这位网友建议:能在每次提交的时候报告模型的超参数吗?
作者很快回复说:英雄所见略同。下次更新就加上!
并且,他们还考虑在将来的更新中,让使用者把链接添加到生成模型的训练参数中。
传送门
sotabench官网:
https://sotabench.com/
基准测试库通用版:
https://github.com/paperswithcode/sotabench-eval
基准测试库PyTorch版:
https://github.com/paperswithcode/torchbench