3月25日,吴恩达开了一个直播讲 A Chat with Andrew on MLOps: From Model-centric to Data-centric AI ,看完后深受启发,便随手写下一些笔记。
一个 AI 系统包括了代码和数据两部分,用一个公式表示就是AI System = Code + Data
,其中更详细的来说,代码指的模型和算法。在之前的 AI 系统设计当中,大家似乎更重视对模型的调优这一块,而忽视了对数据的调优,吴恩达认为前者是 Model-centric(以模型为中心),后者是 Data-centric(以数据为中心)。举个例子,在 arXiv 上约有99%的论文侧重于以模型为中心的观点,而只有约1%的侧重于以数据为中心的观点。
在这场讲座里,吴恩达认为在一个 AI 系统中,数据质量要比模型本身更重要,也就是Instead of emphasising more on tunning model, clean the data as much as possible.
。并且从
实证经验表明,优化模型获得的收益不如优化数据集。在讲座举的钢板缺陷检测任务当中,baseline准确率为76.2%,各种换模型调参数的骚操作之后,对准确率几乎没有提升。但是对数据集的优化却将准确率提升了16.9%。其它项目的经验也证明了这点。
从以数据为中心的观点引申开来,可以认为好的数据要比大数据更重要,也就是From Big Data to Good Data
。在之前使用以模型为中心的 AI 系统中,因为重点在模型的选择和参数调整上面,就不太重视数据本身,单纯只是把数据作为 AI 系统的食物(Data is Food for AI
)。但是吴恩达认为把时间花费在对数据质量的优化上面,可能要比花费时间对模型进行调优,受益会更多。一个好的数据有以下的标准:
如何保证数据质量是好的呢?吴恩达认为 MLOps 可以解决这个问题,而 MLOps 确保了数据质量在整个的机器学习工程中都是高质量、一致的和好的。MLOps 是另外的一个话题了,感兴趣的读者可以看看谷歌云的相关文档:https://cloud.google.com/solutions/machine-learning/mlops-continuous-delivery-and-automation-pipelines-in-machine-learning
简单聊聊 Data-centric 策略和 Model-centric 策略。
Model-centric: 以调整模型代码、调优模型超参数为主的系统调优策略,在这种策略下,可以认为数据集是固定的 Data-centric: 与Model-centric相对,以调整数据集为主的系统调优策略,在这种策略下,可以认为模型是固定的(只对数据集作适应性调整)
Data-centric 策略和 Model-centric 策略之争在某种程度上是科学家和工程师之争,正如在16年发表的Data-centric vs Model-centric文章所言:
单纯从一个工程师的角度来看,以数据为中心的机器学习策略相比于以模型为中心的机器学习策略更具有可操作性,特别是对应的 MLOps,目前来看有望让 AI 系统不再飘在云上,而是变成了一个标准化的流程,不过具体的效果还是要看看实践之后,不太好下定论。
参考链接: