elyra
elyra copied to clipboard
Model Explorer
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...
Is this different from https://github.com/elyra-ai/elyra/issues/1120?
replaces #1120
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.
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
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.
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)
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
@ajbozarth friendly reminder