
四、Artifact and Metadata store
机器学习通常涉及处理大量原始和中间(转换)数据,最终目标是创建和部署模型。为了理解我们的模型,有必要能够探索用于其创建和转换的数据集。这些数据集的集合和应用于它们的转换称为我们模型的元数据 。
有许多不同的选项用于跟踪模型的元数据。Kubeflow为此有一个内置工具,称为Kubeflow ML元数据。该工具的目标是通过跟踪和管理工作流产生的元数据来帮助Kubeflow用户理解和管理他们的ML工作流。我们可以集成到Kubeflow管道中的另一个跟踪元数据的工具是MLflow跟踪。它提供API和用于在运行机器学习代码时记录参数、代码版本、指标和输出文件以及用于以后可视化结果的UI。
1、Kubeflow ML Metadata
Kubeflow ML Metadata是一个用于记录和检索与模型创建相关的元数据的库。在当前的实现中,Kubeflow元数据只提供Python API。要使用其他语言,您需要实现特定于语言的Python插件才能使用该库。为了理解它是如何工作的,我们将从一个简单的人工示例开始,该示例使用一个非常简单的notebook展示Kubeflow ML Metadata的基本功能。
在Kubeflow元数据中,所有信息都是根据workspace、run和execution来组织的。您需要定义一个workspace,以便Kubeflow可以跟踪和组织记录。示例6-2中的代码展示了如何实现这一点
Kubeflow不会自动跟踪应用程序使用的数据集。它们必须在代码中显式注册。按照经典的MNIST示例,元数据中的数据集注册应如示例6-3所示实现
除了数据之外,Kubeflow元数据还允许您存储有关模型及其指标的信息。实现它的代码在示例6-4中给出。
这些代码片段将实现存储模型创建元数据的所有主要步骤:
定义workspace、run、execution。
存储有关用于模型创建的数据资产的信息。
存储有关创建模型的信息,包括其版本、类型、训练框架和用于创建模型的超参数。
存储有关模型评估指标的信息。
2、Kubeflow Metadata UI
除了为编写代码分析元数据提供API之外,Kubeflow元数据工具还提供了UI,允许您在不编写代码的情况下查看元数据。对元数据UI的访问是通过主Kubeflow UI完成的。