文 | SisyphusBJ
源 | Pytorch Lightning
wandb.ai
comet.ml
neptune.ai
allegro trains
mlflow
guild.ai
sacred
test-tube
tensorboard
相信很多同学看到上面这个列表的第一印象是懵的。我们先看下机器学习实验管理平台 到底是做神马滴:
一句话概括就是:,以下来自 comet.ml 对自己的说明:
allowing data scientists and teams to track, compare, explain, and optimize experiments and models.
接下来我们逐个盘点下当前市面上做机器学习实验管理平台的玩家。
先看两个用的比较多但功能相对单薄的两个工具:
一个是Tensorboard,包括用于 Pytorch 的 TensorboardX(https://github.com/lanpa/tensorboardX) ,Tensorboard 本身被设计成插件化的方式,好处是轻量、轻耦合,可以按需要很快的自定义一个新的 tab,这种方式的缺点是缺少一个用户整体的视图,用户很难在宏观视角上对整个训练流程有一个比较清楚的认识。
出的比较早,格式通用
虽然是跟 Tnesorflow 出的,但并不仅限于 Tensorflow
实验全流程记录
报表和跟其他系统的兼容性比较好,因为出的早?...
2. 另一个是来自 Pytorch Lightning 的 test-tube, 后者可以算是 PL(Pytorch Lightning) 自己的一个 logger 优化工具,也放在这里一并比较了吧,有兴趣的同学可以去:PL(Pytorch Lightning: https://github.com/PyTorchLightning/pytorch-lightning) 查看细节。接下来看下主要的 SAAS 玩家,当然,基本上每家都同时提供 self-host 方式可选择,毕竟 SAAS 号称主要是卖服务的。
首先当然是 comet.ml,主要的功能如下 :
假设你手头同时有十几个、几十上百个实验要做,那么 comet 或者其他这些工具会必不可少
团队协作,把几个可能的方向分给其他同学,实验过程、结果分享
comet 兼容目前主流的 tensorflow、pytorch、keras、chainer 等等框架
comet 支持你针对同一个实验里的不同超参数进行比较,找出关键点
comet 支持保存实验所用数据、上下文信息、代码等等
各种类型的数据可视化
懒,不想自己部署实验管理工具。当然这里你可以找下 IT 组的同学,看他们能否帮你搭建一套开源的类 comet 的系统。
2. 接下来是 neptune.ai, 这个就很有趣了,但从名字上看,comet 是彗星,neptune 是海王星,从 neptune 的官方 blog 上看起来也大有针对 comet 的意思... 停止八卦,下面看主要功能简介:
首先 neptune.ai 的定位是一个“实验管理和协作工具”(Neptune is an experiment management and collaboration tool)。
当然,也是 frame-agnostic 的。
neptune 支持实验数据、模型、代码等相关数据的存储、获取、共享操作
neptune 在团队协作上据说更有效率一些
neptune 支持通过 notebook、python script 等方式触发的训练过程记录,当然,默认其实也就只记录一下你的主要损失函数 loss 值和 epoch 这种,真要做到细致能指导自己实验思路的,还是得花心思在配置代码上面。
最后,neptune 的 client 端 code 跟 wandb/comet 比写的是最简练的(个人喜好)。
3. 然后是 wandb.ai,wandb 就是 Weights & Biases, 谜底就在谜面上名字起的有点意思,功能也不错:
Reports 功能很有特点,基本上就是把你的实验整理成一个 blog 文档,你做的什么实验、怎么做的、选的那些参数为什么这么选,都可以有个记录,形成文档之后可以把相关的实验附上去,请团队的人或者其他感兴趣的人一起来探讨,隐隐有点社区的意思,赞!
其他功能中规中矩,基本上 cover 了上面提到的几个基本功能
用户和团队管理,数据和实验过程分享
UI 挺简洁,跟其他产品的兼容性也不错,毕竟是半开源,因为他的 server 端提供的也是 docker 镜像。
4. 最后是 guild.ai
终端的 client 程序做的挺用心
文档写的比较简洁
其它基本跟上面三个一样,to run, track, and compare experiments.
通用性更好一些据说,对模型实现语言、framework 中立
方便重现效果
对其他系统兼容性佳
以上是几个主要的 SAAS 玩家,下面说一下开源的几个选手:
allegro trains ,其实产品名字叫 Trains 是 allegro.ai 出的,是这几个产品中唯一一个客户端、服务端都开源的产品,基于 Apache 2.0 协议开源,限制比较小,企业部署的话可以考虑一下
服务端也开源,有兴趣自己折腾的企业可以优先考虑内网部署一下
web 端风格比较贴近前端主流风
功能跟其他 saas 基本没什么大的出入
这家的思路基本是反 saas,嗯,这点也挺有意思
2. sacred
单机版,没有团队分享功能
但好处是兼容了几个其他的 frontend,比如 neptune 就可以用作接受 sacred 发过来的数据。其他还有 Omniboard
3. mlflow, Databrick 出品,没错就是 Spark 家那个,功能上跟其他项目比也没有他多的出入:
实验跟踪和记录
项目管理
模型管理
以上这两个从产品上基本上都囊括在上面介绍的几个里面了,这里就不再深入展开,如有需要请自行去 github 上查看。
后台回复关键词【入群】
加入卖萌屋NLP/IR/Rec与求职讨论群
有顶会审稿人、大厂研究员、知乎大V和妹纸
等你来撩哦~