Kedro-viz中的协作实验跟踪
#教程 #python #machinelearning #kedro

在训练机器学习中的模型时,目标是确定诸如超参数,指标和培训数据之类属性的最佳配置。确定最佳组合的过程需要进行大量实验并进行比较。正如我在previous article中提到的那样,实验跟踪是记录所有元数据的方法,您需要比较机器学习实验并为您的项目重新创建它们。

什么是Kedro-Viz?

Kedro-Viz是一种使用Kedro构建和可视化数据科学管道的互动开发工具。它使您能够监视ML项目的状态,将其呈现给利益相关者,并轻松使新团队成员加快速度。您可以使用我们的hosted demo尝试一下。

没有更好的方法可以以这种引人入胜,互动和彻底的方式概述管道的结构。我们的资产管道非常复杂,但使用模块化管道结构,因此能够在模块化管道级别显示整体结构,然后跳入每个单独的管道有助于防止观众被所示的节点和数据集的数量淹没<< /em>。

咨询公司的高级数据科学家

Kedro-Viz中的实验跟踪是什么?

在Kedro-viz上进行实验跟踪,使用户可以选择,绘制和比较多个指标随时间变化并确定最佳表现的ML实验,而无需其他依赖关系来管理或基础架构。

>

下面的视频演示了Kedro-Viz上的实验跟踪:

在一个与多个团队成员的项目中,您可能会出现一个场景,其中实验结果分布在许多机器上,因为人们在各自的计算机上迭代。正如我们的用户反馈所建议的那样,这使得跟踪过程难以在团队级别进行管理。

“您可以在计算机上本地训练一个模型。您可能会在云中训练另一个模型。乔可能会运行另一个管道或另一个实验。将所有这些实验都放在一个地方,作为一个真理的来源是真的很强大。

“如果我们可以将指标文件写入S3存储桶,然后运行指向该S3存储桶的实验跟踪,那以许多不同的方式简化了我们的工作流程,并且确实会有所帮助。这将使Kedro实验跟踪对于我们来说,比MLFlow同样容易,即使不是容易。”

“您可以使用现有数据库,以便我们可以跟踪在不同位置发生的运行吗?

我们找到了一种解决这个痛点的方法,并使您更容易协作。我们很高兴地宣布,我们已经在Kedro-Viz 6.2.0中使用了launched collaborative experiment tracking。新功能使一组用户可以将实验记录到共享的云存储服务中,并在自己的实验跟踪视图中查看和比较彼此的实验。这简化了他们的工作流程,提供了一个真理的来源,并鼓励多用户协作。

我们正在跨不同版本的阶段释放此功能,第一阶段是Kedro-Viz 6.2.0。此版本使用户能够阅读其他用户的实验,这些用户只要fsspec支持了Amazon S3或其他云提供商上的类似存储解决方案。协作实验跟踪的未来版本旨在通过缓存自动重新加载和优化来改善用户体验。

开始进行协作实验跟踪

按照以下步骤在Kedro-viz中设置协作实验跟踪:

步骤1:更新kedro-viz

确保您拥有最新版本的Kedro-viz(6.2.0或更高版本)。

pip install kedro-viz --upgrade

步骤2:设置云存储

kedro-viz使用fsspec从各种数据存储中保存和读取session_store文件,包括本地文件系统,网络文件系统,云对象存储(例如,Amazon S3,Azure Blob Storage,Google Cloud Storage)和HDFS 。

设置中央云存储库,例如AWS S3存储库来存储所有团队的实验。

步骤3:配置您的Kedro项目

在您的Kedro Project目录中找到settings.py文件,并添加以下内容:

from kedro_viz.integrations.kedro.sqlite_store import SQLiteStore
from pathlib import Path

SESSION_STORE_CLASS = SQLiteStore
SESSION_STORE_ARGS = {
    "path": str(Path(__file__).parents[2] / "data"),
    "remote_path": "s3://my-bucket-name/path/to/experiments",
}

步骤4:设置独特的用户名

kedro-viz将您的实验保存在中央云存储上。为了确保所有用户都有唯一的文件名,您需要在环境变量中设置**KEDRO_SQLITE_STORE_USERNAME**。默认情况下,kedro-viz如果未指定您的计算机用户名。

export KEDRO_SQLITE_STORE_USERNAME ="your_unique__username"

步骤5:配置云存储凭据

从kedro-viz 6.2版中,设置访问云存储的凭据的唯一方法是通过环境变量,如下所示,如下所示。

export AWS_ACCESS_KEY_ID="your_access_key_id"
export AWS_SECRET_ACCESS_KEY="your_secret_access_key"
export AWS_REGION="your_aws_region"

在下面的屏幕截图中,我们显示了三个团队成员(Huong,Tynan和Rashida)的会话商店和Kedro-Viz输出的示例:

Session store showing the 3 objects for Huong, Tynan, and Rashida

会话商店显示了Huong,Tynan和Rashida的3个对象。

Three separate Kedro-Viz runs by Huong, Tynan, and Rashida

由Huong,Tynan和Rashida经营的三个独立的Kedro-Viz。

本教程在配置过程中提供了非常快速的运行。有关更多信息,请查看documentation on the experiment tracking feature,并在我们的Slack workspace上关注有关Kedro和Kedro-Viz的最新消息。

非常感谢Kedro-Viz团队,特别是@Rashida Kanchwala为这篇文章做出了贡献。