elyra icon indicating copy to clipboard operation
elyra copied to clipboard

Model Explorer

Open romeokienzler opened this issue 2 years ago • 8 comments

Is your feature request related to a problem? Please describe. No. We want to add functionality to Elyra and a Model Explorer would be a nice low hanging fruit

Describe the solution you'd like Using the metadata editor crate a left panel showing available models. Using the byo-x concept, write an adapter connecting to ml-exchange.org to gather all available (MAX) models and show them as list

Describe alternatives you've considered

Additional context At a later stage, other byo adapters could for example connect to hugging face or tensorflow hub. In addition, the view opening on double-clicks could allow for viewing model details or just publish them to a model serving component...

romeokienzler avatar Mar 14 '22 21:03 romeokienzler

Is this different from https://github.com/elyra-ai/elyra/issues/1120?

ptitzler avatar Mar 14 '22 21:03 ptitzler

replaces #1120

romeokienzler avatar Mar 14 '22 21:03 romeokienzler

Jotting some notes here based on a discussion with Romeo. The potential idea is the reuse the Metadata widget to easily display the list of models. Then we can create a UI for each listing like we do with other metadata. Whether we find a way to use the metadata API to host the list of models or rewrite the widget to allow fetching from other locations would be a discussion point prior to starting work.

ajbozarth avatar Mar 14 '22 21:03 ajbozarth

Could you please elaborate on the user experience for bringing up the model list here? I really would like to see a deep integration compared to a "show available models and can't do anything with it"...

Also, what happens when someone does not have access to ml-exchange.org (e.g. gapped env deployments)?

NOT A CONTRIBUTION

lresende avatar Mar 14 '22 21:03 lresende

Also, what happens when someone does not have access to ml-exchange.org (e.g. gapped env deployments)?

I believe the intend would be to support mlx deployments as a repository, not just the hosted demo instance.

ptitzler avatar Mar 14 '22 22:03 ptitzler

Hi @lresende @ptitzler idea is to provide a standard "adapter" (byo-x concept) connecting to ml-exchange.org by default. you can

  • change to any other mlx endpoint
  • use a different (to be implemented) adapter connecting to hugging face, tensorflow hub, .. (see above)

I suggest an incremental development approach (good se practise) here to have a basis for incremental discussions on additions with the community, and IBM internal clients but I can give you the broader picture: Once we have the list on the right hand side (spoiler, for a later stage: I'd like to see a top search field as well which filters the list based on matches as soon as you start typing, also seeing the status[trained, blessed, deployed] of the model in that list via icons would be nice)

Once you open a model item a tab should open where you can find

  • details (model type, framework (version), created by (person, (kf/af) pipeline
  • deploy button
  • test tab allowing to call the model (e.g. even with sample rows obtained from the (non-existent)

romeokienzler avatar Mar 15 '22 07:03 romeokienzler

Here the specs, as discussed:

  • Extension allows for connecting to a model registry as well as a model serving platform
    • Suggestion: start with ML-Exchange.org as registry and Watson Machine Learning as serving platform
    • Through connectors (bring your own) other registries and serving platforms are supported
  • Connection information / management to be handled by separate extension or by the "runtime configuration" extension
  • Left sidebar shows available models in registry and deployed models from serving platform
  • Left sidebar provides free text search form which immediately filters entries by current input
  • On double-click on a model item (from repository) a details page opens showing all available model details
    • the bring your own repo connector transforms the external model details into a common internal format for display
    • A "deploy" button allows for model deployment - rendering/functionality of the dialog (specification provided by bring your own model serving platform connector)
    • A "undeploy" button allows for model undeployment - rendering/functionality of the dialog (specification provided by bring your own model serving platform connector)
    • A "test" button allows for model endpoint testing - rendering/functionality of the dialog (specification provided by bring your own model serving platform connector)

I suggest to start with the left sidebar functionality first @lresende @ajbozarth

romeokienzler avatar Apr 12 '22 08:04 romeokienzler

@ajbozarth friendly reminder

romeokienzler avatar May 09 '22 06:05 romeokienzler