zl程序教程

您现在的位置是:首页 >  硬件

当前栏目

代替Git进行机器学习实验管理的工具推荐

机器工具Git学习 管理 进行 推荐 实验
2023-06-13 09:16:44 时间

机器学习从业者通常通过实验算法、数据和超参数来开发新的机器学习模型。随着实验和项目规模的不断扩大,特别是在大中型企业中,越来越多的模型需要进行有效管理,上图展示了在谷歌中人工智能相关的存储库正在呈指数级增长。机器学习从业者需要一种高效的方法来存储、检索和利用模型版本、超参数和性能指标等细节。

一个好的工具应该能够存储模型元数据和实验细节(如配置、流程和执行实验的意图)。详细的数据和文档可以帮助模型在团队中进行重用,避免丢失模型细节的风险。因此一个好用的机器学习实验管理工具应该具有可见性、可复现性和可协作性三个特性。

可见性:

可见性是指使用者可以轻松查看共享的模型细节,可三以看到模型在开发和生产中的表现如何?使用哪个数据和指标优化模型参数?哪些超参数产生的模型更好?好的可见性能够方便查询模型生成的整个流程。

可复现性:

机器学习实验中的可复现性是非常重要的。存在很多因素会影响可复现性,例如:输入数据发生变化,超参数不一致,机器学习框架版本不一致等。一个好用的模型管理工具应该能够帮助用户快速的复现模型结果。

可协作性:

随着团队规模的不断扩大,团队协作的需求也在不断增长。一个好用的模型管理工具应该有助于团队进行协作。避免数据使用和模型配置存在差异。

Git为什么不适用?

Git是一个很棒的代码代管工具,支持代码版本控制和跨传统软件开发的协作。但是它不适用于涉及数据、模型、工件等的机器学习工作流。

Git的限制如下:

  • Git不保存模型细节,如模型版本、超参数、性能指标、数据版本等。你可以在每次实验运行后推送模型结果和元数据,但随着实验数量的增加,检索、比较和分析这些数据和元数据很快就会成为一件痛苦的事情。
  • Git也不能自动记录每个实验。
  • 选择Git来记录必要的细节会带来一个手动开销,需要维护单独的文档来记录实验的意图和目的、算法的选择、超参数沿着结果。

如下图所示,Git不适用的根本原因是机器学习实验和软件开发的流程有很大不同。这也要求我们应该针对机器学习工作流程定制实验工具。

机器学习实验理想工具的特点

实验追踪

理想工具的基本要求是可以记录每个实验的结果,可以提供报告和仪表板进行不同实验之间的对比。

版本控制

机器学习实验经常需要进行实验再现,这就需要记录整个实验的元数据,以帮助开发人员在开发环境中追溯生产副本模型。理想的工具跟踪并维护不同的模型版本以及整个实验的元数据。

文档

代码的原始作者可能并不总是能够共享实验的全部细节。因此理想的工具应可以提供了一个平台,该平台维护每次模型运行的所有相关细节的日志,避免用户手动记录文档,并促进了机器学习项目的迭代。

与平台无关

工具应该与任何基础设施、工具或库无缝集成并协同工作。

代替Git的机器学习实验工具

虽然Git不是机器学习管道和解决方案的完美工具,但下面分享了一些工具可以满足需求。

Neptune

Neptune是一个支持所有机器学习工作流的元数据存储的工具。它是基于所有机器学习实验本质上都是迭代的而构建的,可以通过简化监控和方便的可视化进行模型的对比研究。

MLflow

MLflow是一个开源框架,可简化端到端机器学习流程,支持模型训练,模型运行、模型注册存储、复制结果等。MLflow附带轻量级API,支持任何机器学习库和编程语言,并可轻松与任何代码集成。

DVC

DVC通过版本化模型、数据集和中间文件来支持机器学习项目版本控制,它是在Git存储库之上工作,并将机器学习项目与Git工作流连接起来。

Weights & Biases

Weights & Biases通过实现简单的模型管理、实验跟踪和数据集版本控制,加快了模型开发过程。Weights & Biases的一个显著功能是它自动复制记录数据集并对它们进行版本化。

本文中我们从机器学习项目的角度讨论了Git的局限性。了解Git的不足之处以及理想的机器学习实验工具应该是什么样的,同时也推荐了一些机器学习实验工具替代Git。

「核桃量化」「微信公众号」和「知乎专栏」分享AI知识,助力量化投资。致力于将机器学习更好的应用于量化交易。