Skip to content

Custom model format breaks Models UI #75

@ghost

Description

Currently with, if a user specifies a model format with a custom name in the inference service manifest and deploys it, the Models UI on kubeflow will become disfunctional and not showing any model deployed under the same namespace. This has been mentioned in #46 but there has been no update.

For example,

apiVersion: serving.kserve.io/v1beta1
kind: InferenceService
metadata:
  name: dummy-model
  namespace: dummy-namespace
spec:
  predictor:
    model:
      image: dummy-image
      modelFormat:
        name: my-model
      name: 'kserve-container'

with a ClusterServingRuntime

kind: ClusterServingRuntime
metadata:
  name: kserve-my-model
spec:
  containers:
    image: dummy-image
    name: kserve-container
  supportedModelFormats:
  - autoSelect: true
    name: my-model

This is because PredictorType is currently hardcoded as an Enum (See here), but getPredictorType function will return the name of the model format as an Enum directly instead of checking if it's a member of the Enum first.. TypeScript does not raise an error when by default when this happens, and will return undefined, which breaks all the downstream tasks, and the logs from the web-app will not show anything related to this.

Suggestion:
Check if the model format is a member of PredictorType Enum and returns PredictorType.Custom if it's not (similarly to what we do with old predictor formats before Kserve 0.7). I believe #47 has already attempted at fixing this problem but I can also make a PR for this.

Question:
How should we make PredictorType more flexible for custom model types? Say a user has custom model types: "A", "B" and "C". Even with the above suggestion, the Models UI will still show custom for all three.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions