[Day 15] ML 实验管理 — 翻开覆盖的陷阱卡~ 记帐小本本!

All life is an experiment. The more experiments you make the better. — Ralph Waldo Emerson

前言

不知大家是否曾经在 Notebook 中捣鼓了一番之後,发现之前的结果好像比较好,但 ctrl+z 还有 Undo Delete Cells 按到极限了还是回不到当时的状态,只好从头开始,祈祷可以重新得到一样的成果。
这真的是很痛苦的经验,事实上,在开发 ML 模型时,我们一定会进行大量的实验,例如:

  • 使用不同的训练、测试集
  • 使用不同的模型、超参数
  • 使用不同的程序码 (包括只是想快速试试看结果如何的小修改)
  • 在不同环境执行相同的程序码 (例如使用不同版本的 Tensorflow、Pytorch)

而这些实验可能会产生截然不同的结果,追踪、管理这些资讯很快就会变得很棘手,特别是当你想比较这些实验并找出最佳配置的时候,这时候就需要导入 ML 实验管理,所以今天就来谈谈这个主题吧。

实验管理

实验管理是 MLOps 的其中一环,它在整体生命周期的角色如下图:
Experiment tracking vs ML model management vs MLOps
*图片来源:ML Experiment Tracking: What It Is, Why It Matters, and How to Implement It

可以看到它主要会被使用於将模型开发至达到预期表现的迭代流程中,而与它概念很类似的模型管理则是在模型部署为产品後才会开始,主要用来调度各种模型版本来使产品保持正常运作。

回到实验管理,一言以蔽之,它要做的就是纪录每次实验时所有我们关心的相关讯息,其中可能包含了:

  • 不同版本的演算法/程序码
  • 使用的资料集
  • 超参数
  • 实验结果

也就是说,最好要能记录以下项目:

  • 再现结果所需的资讯

    如果资料是从网路上抓的,要注意可再现性的部份!

  • 实验结果 (最好有整体的 metric 或分析结果)
  • 或许还需要:资源监控、可视化、模型错误分析

那麽实际上该怎麽做呢? 以下为可以利用的工具:

总而言之,就算只是用文字档,开始试着做实验管理吧!!
终於结束了 Modeling 的部分,明天一起前进到机器学习产品生命周期的"上"一个步骤吧~
/images/emoticon/emoticon25.gif

参考资料


<<:  Day15. 一起动手做弹珠台!(3)

>>:  D16/ 所以到底为什麽 remember 是 composable function? - @Composable 是什麽 part 2

Chapter1-DJ最爱的音频动感图像(II)只要是认识Canvas的都觉得它很High欧

完成上传机制後,等着我们的是... 今天的一开始先花一点点时间,把昨天的事件监听做完吧!这边准备好一...

【Day9】 Speaker Identification 介绍与 D_VECTOR 实做

旧时代的 Speaker Identification 同一人讲不同话,再转成 Mel 之後还是不同...

【Day1】简介

这边主要是由於之前想说把上班的东西一部分能公开的拿来当铁人赛的内容,顺便鞭策 自己能往相关领域深入,...

企划实现(29)

使用自定义的listview 第四部:创建listview的adapter package com....

Day 22 - IO Monad

上一章节简单的介绍如何处理 side effect 的其中一个方法 dependency injec...