还在用Tensorboard?机器学习实验管理平台大盘点
文 | 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和妹紙
等你來撩哦~
總結
以上是生活随笔為你收集整理的还在用Tensorboard?机器学习实验管理平台大盘点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 简单复读机LR如何成为推荐系统精排之锋?
- 下一篇: FLAT:中文NER屠榜之作!