机器学习从业者通常通过实验算法、数据和超参数来开发新的机器学习模型。随着实验和项目规模的不断扩大,特别是在大中型企业中,越来越多的模型需要进行有效管理,上图展示了在谷歌中人工智能相关的存储库正在呈指数级增长。机器学习从业者需要一种高效的方法来存储、检索和利用模型版本、超参数和性能指标等细节。
一个好的工具应该能够存储模型元数据和实验细节(如配置、流程和执行实验的意图)。详细的数据和文档可以帮助模型在团队中进行重用,避免丢失模型细节的风险。因此一个好用的机器学习实验管理工具应该具有可见性、可复现性和可协作性三个特性。
可见性:
可见性是指使用者可以轻松查看共享的模型细节,可三以看到模型在开发和生产中的表现如何?使用哪个数据和指标优化模型参数?哪些超参数产生的模型更好?好的可见性能够方便查询模型生成的整个流程。
可复现性:
机器学习实验中的可复现性是非常重要的。存在很多因素会影响可复现性,例如:输入数据发生变化,超参数不一致,机器学习框架版本不一致等。一个好用的模型管理工具应该能够帮助用户快速的复现模型结果。
可协作性:
随着团队规模的不断扩大,团队协作的需求也在不断增长。一个好用的模型管理工具应该有助于团队进行协作。避免数据使用和模型配置存在差异。
Git是一个很棒的代码代管工具,支持代码版本控制和跨传统软件开发的协作。但是它不适用于涉及数据、模型、工件等的机器学习工作流。
Git的限制如下:
如下图所示,Git不适用的根本原因是机器学习实验和软件开发的流程有很大不同。这也要求我们应该针对机器学习工作流程定制实验工具。
实验追踪
理想工具的基本要求是可以记录每个实验的结果,可以提供报告和仪表板进行不同实验之间的对比。
版本控制
机器学习实验经常需要进行实验再现,这就需要记录整个实验的元数据,以帮助开发人员在开发环境中追溯生产副本模型。理想的工具跟踪并维护不同的模型版本以及整个实验的元数据。
文档
代码的原始作者可能并不总是能够共享实验的全部细节。因此理想的工具应可以提供了一个平台,该平台维护每次模型运行的所有相关细节的日志,避免用户手动记录文档,并促进了机器学习项目的迭代。
与平台无关
工具应该与任何基础设施、工具或库无缝集成并协同工作。
虽然Git不是机器学习管道和解决方案的完美工具,但下面分享了一些工具可以满足需求。
Neptune
Neptune是一个支持所有机器学习工作流的元数据存储的工具。它是基于所有机器学习实验本质上都是迭代的而构建的,可以通过简化监控和方便的可视化进行模型的对比研究。
MLflow
MLflow是一个开源框架,可简化端到端机器学习流程,支持模型训练,模型运行、模型注册存储、复制结果等。MLflow附带轻量级API,支持任何机器学习库和编程语言,并可轻松与任何代码集成。
DVC
DVC通过版本化模型、数据集和中间文件来支持机器学习项目版本控制,它是在Git存储库之上工作,并将机器学习项目与Git工作流连接起来。
Weights & Biases
Weights & Biases通过实现简单的模型管理、实验跟踪和数据集版本控制,加快了模型开发过程。Weights & Biases的一个显著功能是它自动复制记录数据集并对它们进行版本化。
本文中我们从机器学习项目的角度讨论了Git的局限性。了解Git的不足之处以及理想的机器学习实验工具应该是什么样的,同时也推荐了一些机器学习实验工具替代Git。
「核桃量化」「微信公众号」和「知乎专栏」分享AI知识,助力量化投资。致力于将机器学习更好的应用于量化交易。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。