注意
点击 here 下载完整的示例代码
KubeFlow 管道示例介绍¶
这是一个使用仅由TorchX组件构建的KubeFlow Pipelines的入门管道。
TorchX 旨在允许创建跨平台组件。因此,我们有一个标准定义,使用适配器将其转换为特定的管道平台。这是一个使用 KFP 适配器将 TorchX 组件作为 KubeFlow 管道的一部分运行的示例。
TorchX 尽可能利用标准机制。对于 KFP,我们使用现有的 KFP 管道定义语法,并添加一个单一的 component_from_app 转换步骤,将 TorchX 组件转换为 KFP 可以理解的组件。
通常你会有一个单独的组件文件,但在这个例子中,我们内联定义了AppDef。
import kfp
from torchx import specs
from torchx.pipelines.kfp.adapter import container_from_app
def pipeline() -> None:
# First we define our AppDef for the component. AppDef is a core part of TorchX
# and can be used to describe complex distributed multi container apps or
# just a single node component like here.
echo_app: specs.AppDef = specs.AppDef(
name="examples-intro",
roles=[
specs.Role(
name="worker",
entrypoint="/bin/echo",
args=["Hello TorchX!"],
image="alpine",
)
],
)
# To convert the TorchX AppDef into a KFP container we use
# the container_from_app adapter. This takes generates a KFP component
# definition from the TorchX app def and instantiates it into a container.
echo_container: kfp.dsl.ContainerOp = container_from_app(echo_app)
要生成管道定义文件,我们需要使用我们的管道函数调用KFP编译器。
kfp.compiler.Compiler().compile(
pipeline_func=pipeline,
package_path="pipeline.yaml",
)
with open("pipeline.yaml", "rt") as f:
print(f.read())
一旦所有这些运行完毕,你应该会有一个管道文件(通常是pipeline.yaml),你可以通过UI或kfp.Client上传到你的KFP集群。
查看 KFP SDK 示例 以获取有关启动 KFP 管道的更多信息。
请参阅高级KubeFlow管道示例,了解如何将多个组件链接在一起并使用内置组件。
# sphinx_gallery_thumbnail_path = '_static/img/gallery-kfp.png'
脚本总运行时间: ( 0 分钟 0.000 秒)