如何从 MLflow 模型注册表中检索模型签名

How to retrieve the model signature from the MLflow Model Registry

我已经在我的 MLflow 跟踪服务器上注册了一个 scikit 学习模型,我正在使用 sklearn.load_model(model_uri) 加载它。

现在,我想访问模型的签名,这样我就可以获得模型所需的列表 inputs/features,这样我就可以按名称从我的特征库中检索它们。我似乎无法在 mlflow API 或 MLFlowClient API 中找到任何实用程序或方法来让我访问签名或 inputs/outputs 属性,尽管我可以在 UI.

中看到模型每个版本下的输入和输出列表

我知道我可以在模型的工件中找到输入示例和模型配置,但这需要我实际下载工件并在我的脚本中手动加载它们。我不需要避免这种情况,但令我惊讶的是我不能像 return 运行 的参数或指标那样 return 将签名作为字典.

无需下载MLModel文件即可访问模型签名的方法是在加载的模型下。然后您将访问模型的属性,例如它的签名甚至其他 Pyfunc-defined 方法。

import mlflow

model = mlflow.pyfunc.load_model("runs:/<run_id>/model")
print(model._model_meta._signature)