组件
Kubeflow Pipelines 组件的概念概述
一个 管道组件 是一个自包含的代码集合,执行机器学习工作流(管道)中的一步,例如数据预处理、数据转换、模型训练等。组件类似于一个函数,因为它有一个名称、参数、返回值和主体。
组件代码
每个组件的代码包括以下内容:
客户端代码: 与端点通信以提交作业的代码。例如,向Google Dataproc API提交Spark作业的代码。
运行时代码: 实际执行任务的代码,通常在集群中运行。例如,Spark代码将原始数据转换为预处理数据。
请注意客户端代码和运行时代码的命名约定——对于一个名为“mytask”的任务:
- 该
mytask.py程序包含客户端代码。 - 目录
mytask包含所有的运行时代码。
组件定义
YAML格式的组件规范描述了Kubeflow Pipelines系统中的组件。组件定义包括以下部分:
- 元数据: 名称,描述等。
- 接口: 输入/输出规范(名称、类型、描述、默认值等)。
- 实现: 指定如何运行组件,给定组件输入的参数值。实现部分还描述了组件运行完成后如何获取输出值。
有关组件的完整定义,请参阅 组件规范。
组件容器化
您必须将组件打包为一个 Docker 镜像。组件表示容器内的特定程序或入口点。
管道中的每个组件独立执行。组件不在同一个进程中运行,无法直接共享内存数据。您必须将所有在组件之间传递的数据片段序列化(为字符串或文件),以便数据可以通过分布式网络传输。然后,您必须反序列化数据以供下游组件使用。
下一步
- 阅读关于Kubeflow Pipelines的概述。
- 按照管道快速入门指南 部署Kubeflow并直接从Kubeflow管道UI运行示例管道。
- 构建您自己的 组件和管道。
- 构建一个 可重用组件 以便在多个管道中共享。
Last modified June 20, 2024: 重构的 Kubeflow Pipelines 文档 (#3737) (8e56df7)