自动缩放 VertexAI 管道组件

Posted

技术标签:

【中文标题】自动缩放 VertexAI 管道组件【英文标题】:Autoscaling VertexAI pipeline components 【发布时间】:2021-10-10 23:53:18 【问题描述】:

我正在探索 VertexAI 管道,并了解它是 AI Platform 管道(您必须部署 GKE 集群才能运行 Kubeflow 管道)的托管替代方案。我不清楚的是 VertexAI 是否会根据负载自动缩放集群。在similar question 的回答中提到,对于使用 GCP 资源(如 Dataflow 等)的管道步骤,将自动完成自动缩放。在google docs中,提到对于组件,可以set resources,例如CPU_LIMIT GPU_LIMIT等。我的问题是,可以为任何类型的组件设置这些限制,即Google Cloud管道组件或自定义组件,无论是基于 Python 函数的还是那些打包为容器镜像的?其次,这些限制是否意味着组件资源将自动缩放直到达到这些限制?如果甚至没有指定这些选项会发生什么,那么资源是如何分配的,它们会按照 VertexAI 认为合适的方式自动缩放吗?

相关文档和资源的链接会很有帮助。

【问题讨论】:

【参考方案1】:

为了回答您的问题,

1.可以为任何类型的组件设置这些限制吗?

是的。因为,这些限制适用于所有 Kubeflow 组件,并不特定于任何特定类型的组件。 可以实现这些组件以使用一定数量的资源执行任务。

2.这些限制是否意味着组件资源将自动缩放直到达到限制?

不,Vertex AI 不执行自动缩放。根据设置的限制,Vertex AI 选择一个合适的 VM 来执行任务。 作为 Vertex AI 中分布式训练的一部分,Google Cloud Pipeline 组件(例如“CustomContainerTrainingJobRunOp”和“CustomPythonPackageTrainingJobRunOp”)支持拥有一个工人池。否则,每个步骤只使用 1 台机器。

3.如果没有指定这些限制会怎样? Vertex AI 是否会根据需要扩展资源?

如果未指定限制,“e2-standard-4”VM 将作为默认选项用于任务执行。

编辑:我已将链接更新为最新版本的文档。

【讨论】:

谢谢,我也试过设置不同的资源限制,发现Vertex AI会选择合适的VM,有时会出错,因为没有单个VM适合资源,所以必须选择资源这样一个可用的虚拟机就能满足他们。 Google Cloud 组件的链接现已断开

以上是关于自动缩放 VertexAI 管道组件的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 sklearn 管道缩放 Keras 自动编码器模型的目标值?

跟踪 VertexAI 管道使用的资源

GKE 自动缩放不会缩小

VertexAI Pipeline:如何使用自定义 kfp 组件的输出作为 google_cloud_pipeline_components 的输入?

架构建议 - 如何实现自动缩放的异步任务

如何扩展 kubeflow 管道(使用顶点 ai),或者它只是自动完成