如何从MLFlow模型注册表程序化获取模型输入Schema?
从MLFlow模型注册表获取模型输入Schema
当然可以,只要你在记录模型时通过signature参数保存了输入Schema,就能从MLFlow模型注册表中提取出训练时使用的特征信息。以下是具体操作方法:
加载注册表中的目标模型
使用MLFlow的模型加载方法,传入模型在注册表中的路径,格式为models:/<模型名称>/<版本号或阶段>(比如models:/customer_churn_model/Production)。你可以用通用的mlflow.pyfunc.load_model(),也可以用对应框架的专属加载方法(如mlflow.sklearn.load_model())。提取输入Schema信息
加载完成后,通过模型对象的元数据或直接属性获取signature,其中的inputs字段就是训练时的输入特征Schema。
代码示例
import mlflow # 从模型注册表加载生产环境的模型 loaded_model = mlflow.pyfunc.load_model("models:/customer_churn_model/Production") # 获取输入特征Schema input_schema = loaded_model.metadata.signature.inputs # 打印每个特征的名称和类型 print("训练时使用的输入特征:") for feature in input_schema: print(f"- {feature.name}: {feature.type}")
如果使用框架专属加载方法(以Scikit-learn为例),逻辑类似:
import mlflow.sklearn loaded_sk_model = mlflow.sklearn.load_model("models:/customer_churn_model/1") input_schema = loaded_sk_model.signature.inputs
内容的提问来源于stack exchange,提问作者Indrajit Roy
相关产品推荐
相关产品推荐

