内部支持的框架指的是库内部做了相应适配, 未写出的框架可以通过编码来向管理工具传输数据.
随着深度学习的发展, 机器学习实验的超参数越来越多, 实验的准确复现仍然存在困难, 科研合作时实验的管理存在困难, 科研到生产的衔接导致了大量零碎的代码片段难以整合. 因此, 为了解决超参数的选择和对比, 实验的复现, 代码和实验的管理, 多人协作, 以及从科研到生产的版本控制等问题, 机器学习实验管理平台应运而生. 目前流行的管理平台有 TensorBoard, wandb.ai, allegro trains, mlflow, sacred 等等. 他们整体上功能类似, 但又各有千秋. 本文期望对流行的机器学习实验管理平台做一个详尽的对比, 并给出各自平台的亮点和不足, 从而为读者选择平台时提供一个参考.
我们下面讨论九个机器学习实验管理工具. (点击Logo进入项目主页)
编号 | 框架 | 年份 | 开源 | 公司 | 特性 |
1 | 2017 | Github | Google Inc. | 跟踪实验指标, 可视化模型图, 嵌入, 语音展示, 图像展示, 其他插件 | |
2 | 2014 | Github | IDSIA | 配置、组织、记录和复制计算实验, 开销小, 鼓励实验的模块化和可配置性 | |
3 | 2016 | Github | Neptune Labs Inc. | 轻量级的实验管理工具 | |
4 | 2018 | - | Mathpix Inc. | 简单的API, 记录参数、图像、日志, 整合统计指标 | |
5 | 2019 | Github | TensorHub Inc. | 跟踪实验, 自动管线, 微调参数 | |
6 | 2019 | Github | Allegro AI | 端到端企业级平台, 可管理机器学习和深度学习产品的生命周期 | |
7 | 2018 | Github | LF Proj. LLC. | 兼容任意机器学习库、语言, 可多人协作, 可以拓展到Spark | |
8 | 2017 | - | Weights and Biases Inc. | 跟踪、比较、可视化机器学习实验, 可协作, 企业支持 | |
9 | 2017 | - | Comet ML Inc. | 跟踪、比较、解释和优化实验和模型 |
下面的表格从整体上给出了九种框架主要功能的对比:
功能 | TensorBoard | Sacred | Neptune | LossWise | Guild | Allegro | mlflow | W & B | Comet |
标量 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
比较 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
资源信息 | ✔ | ✔ | ✔ | ✔ | ✔ | ||||
资源监控 | ✔ | ✔ | ✔ | ✔ | |||||
源码 | ✔ | ✔ | ✔ | ✔ | ✔ | ||||
计算图 | ✔ | ✔ | ✔ | ||||||
二进制 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
图像 | ✔ | ✔ | ✔ | ✔ | ✔ | ||||
数据分布 | ✔ | ✔ | ✔ | ✔ | |||||
嵌入 | ✔ | ✔ | |||||||
音频 | ✔ | ✔ | ✔ | ||||||
后端 | MongoDB
Neptune* |
✔ | ✔ | ✔ | ✔ | ||||
前端 | ✔ | Omniboard
Neptune* |
✔ | ✔ | ✔ TensorBoard |
✔ | ✔ | ✔ | ✔ |
前端评级 | ✩✩ | ✩✩ | ✩✩✩ | ✩✩✩ | ✩ | ✩✩✩✩ | ✩✩ | ✩✩✩✩✩ | ✩✩✩✩✩ |
参数管理 | ✩✩✩✩✩ | ✩✩✩ | ✩ | ✩✩ | ✩✩ | ✩✩ | ✩✩✩ | ✩✩✩ | |
云服务 | ✔ | ✔ | ✔ | ✔ | |||||
云空间 | 100G | ? | 100G | 100G | |||||
本地部署 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔$ | ||
团队协作 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |||
插件 | ✔ | ✔ | |||||||
参数调优 | ✔ | ✔ | ✔ | ||||||
商业支持 | ✔$ | ✔$ | |||||||
内部支持 的框架 |
Tensorflow PyTorch |
Keras Tensorflow PyTorch Sacred mlflow* |
Keras | Keras Tensorflow PyTorch sklearn MXNet XGBoost |
Keras Tensorflow PyTorch sklearn MXNet Caffe2* |
Keras Tensorflow PyTorch sklearn XGBoost* |
Keras Tensorflow PyTorch sklearn XGBoost* |
Keras Tensorflow PyTorch sklearn MXNet Caffe2* |
Tensorboard 是谷歌在推出 Tensorflow 之后发布的一款用于展示实验过程中的标量(losses, metrics)、图像、数据分布、计算图等内容的可视化工具.
Sacred是可帮助研究人员配置、组织、记录和复制实验的工具. 它旨在完成研究人员需要围绕实际实验进行的所有繁琐的日常工作. Sacred 有一下几个设计目的:
Weights & Biases 帮助你记录机器学习项目的过程。利用我们的工具记录运行过程中的超参数和输出指标,然后将结果可视化并做比较,便捷地与同事分享结果。
我们发现有了个 Neptune (海王星), 所以我们叫 Comet (彗星). (不是, 我瞎说的. 实在是主页没有几句话简介.)