tensorflow / tfx-addons

Developers helping developers. TFX-Addons is a collection of community projects to build new components, examples, libraries, and tools for TFX. The projects are organized under the auspices of the special interest group, SIG TFX-Addons. Join the group at http://goo.gle/tfx-addons-group

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Two Vertex AI components

sayakpaul opened this issue · comments

With regard to tensorflow/tfx#4125, I think it'd be a good idea to have two components for Vertex AI:

  • One that would import a model into Vertex AI from the location provided by Pusher.
  • One that would deploy a given model from Vertex AI to an Endpoint.

With these two components, the users will actually be able to author end-to-end TFX pipelines that could be orchestrated on Vertex Pipelines that take the advantage of Vertex AI's services.

@deep-diver and I have worked on a PoC (Colab Notebook) that might be helpful for this purpose. We realized the following pipeline:

image

Cc: @rcrowe-google

Thanks for the Firebase Publisher proposal! We also need proposals for these components. See the proposals README.

@1025KB Does this interaction with Vertex conflict with any of our current plans?

Can you folks please provide an update on this?

Google has released a Pusher for Vertex:

https://github.com/tensorflow/tfx/tree/master/tfx/extensions/google_cloud_ai_platform/pusher

So IIUC there are at least two choices here:

  1. Migrate this design to use the Google Vertex Pusher instead of vertex_uploader/vertex_deployer, -or-
  2. Publish vertex_deployer as an alternative way of deploying models to Vertex

That suggests that it would be good to weigh the advantages of vertex_uploader/vertex_deployer over the Google Vertex Pusher. If there are use-cases where it's a better fit, then it would be good to focus on those.

The deployer component is able to actually deploy a given model resource (a specific version) to Vertex. Not sure what the pusher component does (haven't yet taken a look at the code yet). From the name of it, seems like something that can take a model and have it uploaded as a Vertex AI model resource.

Just a reminder, I don't see a project proposal for this yet. We have one for the Firebase Publisher, but I think that's a separate project, right?

No before that I wanted to clarify the scope and know if these two components about coincide. Currently I don't have a clear idea and you also suggested weighing the advantages and disadvantages of these two components over the one you folks published. So, happy to talk more here.

Sure. So, what should be the next steps? Would you like to investigate the two components a bit more (example) and let me know if I should proceed with a proposal?

Google has released a Pusher for Vertex:

https://github.com/tensorflow/tfx/tree/master/tfx/extensions/google_cloud_ai_platform/pusher

So IIUC there are at least two choices here:

  1. Migrate this design to use the Google Vertex Pusher instead of vertex_uploader/vertex_deployer, -or-
  2. Publish vertex_deployer as an alternative way of deploying models to Vertex

That suggests that it would be good to weigh the advantages of vertex_uploader/vertex_deployer over the Google Vertex Pusher. If there are use-cases where it's a better fit, then it would be good to focus on those.

+1 on clarify the difference for vertex_uploader/vertex_deployer vs tfx cloud Pusher (which upload the model to server for prediction)

Then the deployer component would make sense then since it takes a Vertex model and deploys it to an endpoint.

Since the canonical Vertex Pusher already deploys to an endpoint, are there any other advantages to these components?

Nope.