据我所知,TensorFlow使用MLMD记录和检索与工作流相关的元数据。这可能包括:
特性:
以上(例如#1,也就是“组件的结果”)是否意味着MLMD存储实际的数据?(例如,输入功能用于ML培训?)如果不是,管道组件的结果意味着什么?
编排和管道历史记录:
此外,当使用TFX与例如AirFlow一起使用它自己的亚稳态(例如关于DAG的元数据、它们的运行以及其他气流配置,如用户、角色和连接),MLMD是否存储冗余信息?它会取代它吗?
发布于 2020-11-19 10:14:42
TFX是一个ML管道/工作流,所以当您编写TFX应用程序时,您所做的实际上是构造工作流的结构,并准备WF接受特定数据集并处理或使用它(转换、模型构建、推断、部署等)。因此,在这方面,它从不存储实际数据,而是存储信息(元数据),以便处理或使用数据。因此,例如,在检查异常的情况下,它需要记住以前的数据模式/统计(不是实际数据),因此它将该信息保存为MLMD中的元数据;除了实际运行的元数据之外。在气流方面,它还将保存运行的元数据。这可以看作是所有元数据的子集,与保存在MLMD中的元数据相比非常有限。不过,这将涉及到一种冗余。控制器是TFX,它定义并使用下划线气流编排。它不会取代,但如果有冲突,它肯定会失败。
发布于 2021-11-05 15:05:53
想象一下磁盘驱动器的文件系统。文件的内容存储在磁盘中,但这些数据的索引和指针称为文件系统。为用户带来价值的元数据,用户可以通过搜索或浏览文件系统在需要时找到相关数据。
与MLMD类似,它存储ML管道的元数据,比如在执行过程中使用了哪些超参数、培训数据的哪个版本、特性的分布情况等等。但它不仅仅是运行的注册中心。这些元数据可用于增强ML管道工具的两个致命特性功能。
因此,是的,实际的数据确实存储在存储中,可能是云桶,以跨转换的parquet文件的形式存储,或者以模型文件和模式原型的形式存储。而MLMD用一些元信息存储这些数据的uri。例如,保存模型存储在s3://mymodels/1中,它在MLMD的Artifacts表中有一个条目,与Trainer运行和ContextProperty表上的TrainArgs参数有关。
如果不是,管道组件的结果意味着什么?
它意味着通过运行组件(包括输入参数)生成数据的指针。在前面的示例中,如果输入数据以及Trainer组件的Trainer在运行过程中没有更改,则不应该再次运行该昂贵的组件,而是从缓存中重用模型文件。
对连续ML管道的这一要求使得使用工作流管理器(如Tekton或Argo )比使用Airflow更加相关,而与后者相比,MLMD是一个更集中的元数据存储。
https://stackoverflow.com/questions/62764336
复制相似问题