开源实验跟踪工具指南

193 阅读4分钟

简介

机器学习涉及大量实验。 随着我们努力改进我们的模型,我们将尝试不同的技术,收集更好的数据,并调整某些参数。 在执行所有这些操作时,我们会查看准确率等指标来确定模型的好坏。

实验跟踪使数据科学家能够随着时间的推移比较模型,识别影响性能的因素,并与同事共享实验以便于协作。

通常,我们要跟踪以下内容:

  • 模型中使用的源代码版本和数据版本
  • 模型训练参数,例如:神经网络大小或 epoch 数
  • 训练性能指标,例如:准确率
  • 准备好部署到生产环境中的最终模型资产

我需要实验跟踪吗?

实验跟踪使您能够重现过去的任何模型。 它不能单独做到这一点,要具有完全的可重复性,您还需要数据版本控制和源代码控制,但实验跟踪是唯一结合模型所有相关信息的工具。

当模型的性能发生变化时,实验跟踪可以让您回过头来了解原因,这反过来意味着您可以做出正确的决定以在未来改进您的模型。

或者,如果您想与同事分享某个特定的实验,以获取他们的意见或评论,实验跟踪可以让你的同事很容易地看到最终结果,而且知道你是如何做到的。

作为确保可重复性和支持协作的工具,我们认为实验跟踪是 MLOps 基础架构的关键部分。

有什么实验跟踪工具可以选择?

这里有很多实验跟踪器,大多数都提供如下功能:

  • 可以记录每个实验的中心位置。 这通常是数据库或云存储桶。
  • 提供模型训练代码与实验跟踪交互的一种方式。
  • 一个友好的用户界面,供数据科学家浏览过去的实验。

Guild.AI

该实验跟踪工具旨在使实验跟踪变得容易。 与类似工具不同,Guild 不需要您修改训练代码。 它也不需要您设置任何数据库,而是依靠云存储来实现持久化(目前它支持 AWS 和 Azure)。

优点

  • 容易安装,也容易使用。
  • 让您在不更改代码的情况下跟踪实验。
  • 与框架无关,即它适用于任何机器学习框架。
  • 不需要任何外部数据库。

缺点

  • 实验共享仍然有限,仅支持少数存储后端。

MLFLow

MLFLow 不仅仅是一个实验跟踪工具,它还是一个完整的开源 MLOps 框架。 除了实验跟踪,它还提供模型训练和服务能力。

它是 MLOps 领域中最受欢迎的开源工具之一。因此,这意味着有大量高质量的文档和一个庞大的、忠诚的社区使用和贡献它。

还值得注意的是,如果您将 DVC 与 DagsHub 一起使用,那么 DagsHub 还提供了一个托管的 MLFlow 服务。

优点

  • 与框架无关,即它适用于任何机器学习框架。
  • 拥有庞大、活跃的社区,并被广泛采用。
  • 可以定制以支持各种不同的机器学习工作流程。

缺点:

  • 因为它是一个完整的 MLOps 框架,所以 MLFlow 的设置和入门比此列表中的其他工具要复杂一些。

Sacred

Sacred 由瑞士人工智能实验室 IDSIA 开发。它提供了一个 Python 库,您可以将其与训练代码结合使用来记录实验。它将这些实验存储到数据库中,只要您有可用的数据库实例,您就可以在云中集中跟踪实验。

Sacred 旨在支持各种数据库集成,此外它还配备了各种不同的前端用户界面,其中许多是由第三方开发的,让您在使用方面有很多选择。此外,为自定义用户场景构建自己的用户界面相对容易。

优点

  • 独立的数据库、实验捕获和用户界面使您可以轻松地为您的用户场景选择最佳选项,或进行自定义构建。
  • 固定的工作流程为构建实验提供了明确的标准。

缺点

  • 设置起来可能很麻烦,因为它需要在中央位置部署和配置数据库服务和用户界面服务。

TensorBoard

TensorBoard 是 TensorFlow 机器学习框架的一部分。 它非常易于设置和使用,如果您不想安装自己的服务,甚至还有免费的云托管版本 tensorboard.dev。

虽然它可以跟踪有关 TensorFlow 模型的丰富信息集,但与其他实验跟踪器相比,它相当有限。

优点

  • 很容易上手。
  • 与 TensorFlow 原生兼容。

缺点

  • 不存储数据或代码版本,使其无法提供完全的可重复性。
  • 专为个人跟踪实验而设计,但并未考虑到协作。

原文链接:A guide to open source experiment tracking