还在用Tensorboard?机器学习实验管理平台大盘点

还在用Tensorboard?机器学习实验管理平台大盘点_第1张图片

文 | SisyphusBJ

源 | Pytorch Lightning


  1. wandb.ai

  2. comet.ml

  3. neptune.ai

  4. allegro trains

  5. mlflow

  6. guild.ai

  7. sacred

  8. test-tube

  9. tensorboard

相信很多同学看到上面这个列表的第一印象是懵的。我们先看下机器学习实验管理平台 到底是做神马滴:

  • 一句话概括就是:,以下来自 comet.ml 对自己的说明: allowing data scientists and teams to track, compare, explain, and optimize experiments and models.

接下来我们逐个盘点下当前市面上做机器学习实验管理平台的玩家。

先看两个用的比较多但功能相对单薄的两个工具:

  1. 一个是Tensorboard,包括用于 Pytorch 的 TensorboardX(https://github.com/lanpa/tensorboardX) ,Tensorboard 本身被设计成插件化的方式,好处是轻量、轻耦合,可以按需要很快的自定义一个新的 tab,这种方式的缺点是缺少一个用户整体的视图,用户很难在宏观视角上对整个训练流程有一个比较清楚的认识。

  • 出的比较早,格式通用

  • 虽然是跟 Tnesorflow 出的,但并不仅限于 Tensorflow

  • 实验全流程记录

  • 报表和跟其他系统的兼容性比较好,因为出的早?...

还在用Tensorboard?机器学习实验管理平台大盘点_第2张图片

2. 另一个是来自 Pytorch Lightning 的 test-tube, 后者可以算是 PL(Pytorch Lightning) 自己的一个 logger 优化工具,也放在这里一并比较了吧,有兴趣的同学可以去:PL(Pytorch Lightning: https://github.com/PyTorchLightning/pytorch-lightning) 查看细节。接下来看下主要的 SAAS 玩家,当然,基本上每家都同时提供 self-host 方式可选择,毕竟 SAAS 号称主要是卖服务的。

  1. 首先当然是 comet.ml,主要的功能如下 :

  • 假设你手头同时有十几个、几十上百个实验要做,那么 comet 或者其他这些工具会必不可少

  • 团队协作,把几个可能的方向分给其他同学,实验过程、结果分享

  • comet 兼容目前主流的 tensorflow、pytorch、keras、chainer 等等框架

  • comet 支持你针对同一个实验里的不同超参数进行比较,找出关键点

  • comet 支持保存实验所用数据、上下文信息、代码等等

  • 各种类型的数据可视化

  • 懒,不想自己部署实验管理工具。当然这里你可以找下 IT 组的同学,看他们能否帮你搭建一套开源的类 comet 的系统。

还在用Tensorboard?机器学习实验管理平台大盘点_第3张图片

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 比写的是最简练的(个人喜好)。

还在用Tensorboard?机器学习实验管理平台大盘点_第4张图片

3. 然后是 wandb.ai,wandb 就是 Weights & Biases, 谜底就在谜面上名字起的有点意思,功能也不错:

  • Reports 功能很有特点,基本上就是把你的实验整理成一个 blog 文档,你做的什么实验、怎么做的、选的那些参数为什么这么选,都可以有个记录,形成文档之后可以把相关的实验附上去,请团队的人或者其他感兴趣的人一起来探讨,隐隐有点社区的意思,赞!

  • 其他功能中规中矩,基本上 cover 了上面提到的几个基本功能

  • 用户和团队管理,数据和实验过程分享

  • UI 挺简洁,跟其他产品的兼容性也不错,毕竟是半开源,因为他的 server 端提供的也是 docker 镜像。

还在用Tensorboard?机器学习实验管理平台大盘点_第5张图片

4. 最后是 guild.ai

  • 终端的 client 程序做的挺用心

  • 文档写的比较简洁

  • 其它基本跟上面三个一样,to run, track, and compare experiments.

  • 通用性更好一些据说,对模型实现语言、framework 中立

  • 方便重现效果

  • 对其他系统兼容性佳

还在用Tensorboard?机器学习实验管理平台大盘点_第6张图片

以上是几个主要的 SAAS 玩家,下面说一下开源的几个选手:

  1. allegro trains ,其实产品名字叫 Trains 是 allegro.ai 出的,是这几个产品中唯一一个客户端、服务端都开源的产品,基于 Apache 2.0 协议开源,限制比较小,企业部署的话可以考虑一下

  • 服务端也开源,有兴趣自己折腾的企业可以优先考虑内网部署一下

  • web 端风格比较贴近前端主流风

  • 功能跟其他 saas 基本没什么大的出入

  • 这家的思路基本是反 saas,嗯,这点也挺有意思

还在用Tensorboard?机器学习实验管理平台大盘点_第7张图片

2. sacred

  • 单机版,没有团队分享功能

  • 但好处是兼容了几个其他的 frontend,比如 neptune 就可以用作接受 sacred 发过来的数据。其他还有 Omniboard

还在用Tensorboard?机器学习实验管理平台大盘点_第8张图片

3. mlflow,  Databrick 出品,没错就是 Spark 家那个,功能上跟其他项目比也没有他多的出入:

  • 实验跟踪和记录

  • 项目管理

  • 模型管理

还在用Tensorboard?机器学习实验管理平台大盘点_第9张图片

以上这两个从产品上基本上都囊括在上面介绍的几个里面了,这里就不再深入展开,如有需要请自行去 github 上查看。

还在用Tensorboard?机器学习实验管理平台大盘点_第10张图片后台回复关键词【入群

加入卖萌屋NLP/IR/Rec与求职讨论群

有顶会审稿人、大厂研究员、知乎大V和妹纸

等你来撩哦~

还在用Tensorboard?机器学习实验管理平台大盘点_第11张图片

你可能感兴趣的:(java,编程语言,项目管理,数据可视化,人工智能)