Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ISSUE] RegisteredModelInfo.aliases is empty despite registered aliases existing #868

Open
j-lootens opened this issue Jan 21, 2025 · 0 comments

Comments

@j-lootens
Copy link

Description
RegisteredModelInfo does not return model aliases as expected. It always contains an empty list instead of a list of all the aliases of all model versions under this registered model.

Reproduction

import mlflow

mlflow.set_registry_uri('databricks-uc')

from databricks.sdk import WorkspaceClient
from mlflow.models.signature import infer_signature
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

# Load dataset
data = load_iris()
X_train, X_test, y_train, y_test = train_test_split(data.data, data.target, test_size=0.2, random_state=42)

# Train model
model = LogisticRegression(max_iter=200)
model.fit(X_train, y_train)

# Evaluate model
predictions = model.predict(X_test)
accuracy = accuracy_score(y_test, predictions)
signature = infer_signature(X_train, model.predict(X_train))

catalog = "INSERT_CATALOG"
schema = "INSERT_SCHEMA"
# Log model and metrics to MLflow
with mlflow.start_run() as run:
    mlflow.sklearn.log_model(model, "logistic_regression_model", registered_model_name=f"{catalog}.{schema}.logistic_regression_model_uc", signature=signature)
    mlflow.log_metric("accuracy", accuracy)


w = WorkspaceClient()
w.registered_models.set_alias(f"{catalog}.{schema}.logistic_regression_model_uc", "test",1)

model = MlflowClient().get_model_version_by_alias(f"{catalog}.{schema}.logistic_regression_model_uc", "test")
assert len(model.aliases) == 1 # True

registered_models = list(w.registered_models.list(catalog_name=catalog, schema_name=schema))
# assumes only one model has been registered
assert len(registered_models[0].aliases) > 0 # False

Expected behavior
RegisteredModelInfo.aliases contains all aliases of all model versions under this registered model instead of always being an empty list

Is it a regression?
/

Debug Logs
/

Other Information
/

Additional context

  • DBR 16.1 ML (includes Apache Spark 3.5.0, Scala 2.12)
  • databricks-sdk version: 0.30.0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant