racerX
racerX

Reputation: 1092

Kubeflow vs Vertex AI Pipelines

I was exploring kubeflow pipelines and Vertex AI pipelines. From what I understand, Vertex AI pipelines is a managed version of kubeflow pipelines so one doesn't need to deploy a full fledged kubeflow instance. In that respect, pricing aside, Vertex AI pipelines is a better choice. But then, in kubeflow, one can create experiments, an equivalent for which I have not found in Vertex AI pipelines. The only kubeflow features that Vertex AI does not support that I have been able to spot in the documentation are "Cache expiration" and "Recursion" but they do not mention anything about experiments. Makes me wonder if there are other differences that are worth considering when deciding between the two.

Upvotes: 17

Views: 11028

Answers (3)

ETdecode
ETdecode

Reputation: 425

From my understanding, the feature you are mentioning should be obtained in VertexAI with:

  • tensorboard.

So at first Tensorboard is very basic so it needs to be customized with custom variables (like learning rate) and other custom graphs.

Although, the very first step is obviously to enable it. As it won't be seen or be greyed out using Iris classification example.

Upvotes: 1

Jota Porras
Jota Porras

Reputation: 303

The team I work with has been investigating Vertex AI and comparing with KubeFlow for the past few months. As you pointed out, Vertex AI experiments are not the same as KubeFlow's. Vertex's experiments are just an interface for Tensorboard instances and Vizier hyperparameter tuning.

There seems to be no equivalent in Vertex AI for grouping pipeline runs into experiments. However, as even the authors of KubeFlow for Machine Learning point out, KubeFlow's own experiment tracking features are pretty limited, which is why they favor using KubeFlow alongside MLflow instead.

Some other differences I have noticed:

  • Low level access: Vertex, being a managed service, does not expose the instances where the pipeline steps run, whereas in KubeFlow they are plain old Pods inside of Kubernetes, so in theory you should have more low level control.
  • Pipeline registry/pipeline versions: in KubeFlow, you can store pipelines and track versions of compiled pipelines within the tool itself, along with descriptions for the changes. In Vertex, there is no equivalent and you would have to store pipeline objects in GCS (but I would argue you would be better off tracking pipeline code in a version control system anyways).
  • Scheduled/recurring pipeline runs are not yet supported on Vertex.

Other than these and what you already mentioned, Vertex seems to be at feature parity with KubeFlow in pipeline execution features, with the great advantage of not having to manage a Kubernetes cluster.

Upvotes: 14

ewertonvsilva
ewertonvsilva

Reputation: 1955

Actually, Vertex AI is a serverless platform to execute pipelines built in:

Kubeflow Pipelines SDK v1.8.9 or higher, or TensorFlow Extended v0.30.0 or higher.

In fact, almost any Kubeflow pipeline you are used to create will run pretty well in Vertex AI, You just have to take into consideration the aspects you already mentioned in the docs (io, dsl and storge) (which kind of common sense, since you can't from disk and have to use an external file source).

So, basically is just where you run it. The development does not change in fact if you use kubeflow (i.e import kfp ).

UPDATE: Experiments are supported also as almost all features. Just check here at: Experiments – Vertex AI – Google Cloud Platform

enter image description here

some references:

Building a pipeline  |  Vertex AI  |  Google Cloud

Running an Experiment | Kubeflow

Experiments – Vertex AI – Google Cloud Platform

Upvotes: 4

Related Questions