-
Notifications
You must be signed in to change notification settings - Fork 64
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.