mlflow.mleap
mlflow.mleap
模块提供了一个API,用于使用 MLeap 持久化机制保存 Spark MLLib 模型。
- exception mlflow.mleap.MLeapSerializationException(message, error_code=1, **kwargs)[源代码]
-
当模型或 DataFrame 无法以 MLeap 格式序列化时抛出的异常。
- mlflow.mleap.add_to_model(mlflow_model, path, spark_model, sample_input)[源代码]
警告
mlflow.mleap.add_to_model
自 2.6.0 版本起已弃用。此方法将在未来的版本中移除。请改用mlflow.onnx
。备注
此方法要求所有参数都通过关键字指定。
将 MLeap 风格添加到现有的 MLflow 模型中。
- 参数:
mlflow_model –
mlflow.models.Model
这是要添加此风格的模型。path – 要添加此风格的模型路径。
spark_model – 要保存的 Spark PipelineModel。此模型必须是 MLeap 兼容的,并且不能包含任何自定义转换器。
sample_input – 模型可以评估的 PySpark DataFrame 输入示例。这是 MLeap 进行数据模式推断所必需的。
- mlflow.mleap.log_model(spark_model, sample_input, artifact_path, registered_model_name=None, signature: ModelSignature = None, input_example: DataFrame | ndarray | dict | list | csr_matrix | csc_matrix | str | bytes | tuple = None, metadata=None)[源代码]
警告
mlflow.mleap.log_model
自 2.6.0 版本起已弃用。此方法将在未来的版本中移除。请改用mlflow.onnx
。备注
此方法要求所有参数都通过关键字指定。
将 Spark MLLib 模型以 MLeap 格式记录为当前运行的 MLflow 工件。记录的模型将具有 MLeap 风格。
备注
你不能在 Python 中加载 MLeap 模型风格;你必须使用 Java API 方法
downloadArtifacts(String runId)
下载它,并使用方法MLeapLoader.loadPipeline(String modelRootPath)
加载模型。- 参数:
spark_model – 要保存的 Spark PipelineModel。此模型必须是 MLeap 兼容的,并且不能包含任何自定义转换器。
sample_input – 模型可以评估的 PySpark DataFrame 输入示例。这是 MLeap 进行数据模式推断所必需的。
artifact_path – 运行相对的工件路径。
registered_model_name – 如果指定,在
registered_model_name
下创建一个模型版本,如果给定名称的注册模型不存在,则同时创建一个注册模型。signature –
ModelSignature
描述了模型的输入和输出Schema
。模型签名可以从具有有效模型输入(例如,省略目标列的训练数据集)和有效模型输出(例如,在训练数据集上生成的模型预测)的数据集中推断
,例如: .. code-block:: pythoninput_example – {{ 输入示例 }}
metadata – {{ 元数据 }}
- 返回:
一个包含记录模型元数据的
ModelInfo
实例。
import mlflow import mlflow.mleap import pyspark from pyspark.ml import Pipeline from pyspark.ml.classification import LogisticRegression from pyspark.ml.feature import HashingTF, Tokenizer # training DataFrame training = spark.createDataFrame( [ (0, "a b c d e spark", 1.0), (1, "b d", 0.0), (2, "spark f g h", 1.0), (3, "hadoop mapreduce", 0.0), ], ["id", "text", "label"], ) # testing DataFrame test_df = spark.createDataFrame( [(4, "spark i j k"), (5, "l m n"), (6, "spark hadoop spark"), (7, "apache hadoop")], ["id", "text"], ) # Create an MLlib pipeline tokenizer = Tokenizer(inputCol="text", outputCol="words") hashingTF = HashingTF(inputCol=tokenizer.getOutputCol(), outputCol="features") lr = LogisticRegression(maxIter=10, regParam=0.001) pipeline = Pipeline(stages=[tokenizer, hashingTF, lr]) model = pipeline.fit(training) # log parameters mlflow.log_param("max_iter", 10) mlflow.log_param("reg_param", 0.001) # log the Spark MLlib model in MLeap format mlflow.mleap.log_model( spark_model=model, sample_input=test_df, artifact_path="mleap-model" )
- mlflow.mleap.save_model(spark_model, sample_input, path, mlflow_model=None, signature: ModelSignature = None, input_example: DataFrame | ndarray | dict | list | csr_matrix | csc_matrix | str | bytes | tuple = None, metadata=None)[源代码]
警告
mlflow.mleap.save_model
自 2.6.0 版本起已被弃用。此方法将在未来的版本中移除。请改用mlflow.onnx
。备注
此方法要求所有参数都通过关键字指定。
将 Spark MLlib PipelineModel 以 MLeap 格式保存到本地路径。保存的模型将具有 MLeap 风格。
备注
你不能在 Python 中加载 MLeap 模型风格;你必须使用 Java API 方法
downloadArtifacts(String runId)
下载它,并使用方法MLeapLoader.loadPipeline(String modelRootPath)
加载模型。- 参数:
spark_model – 要保存的 Spark PipelineModel。此模型必须是 MLeap 兼容的,并且不能包含任何自定义转换器。
sample_input – 模型可以评估的 PySpark DataFrame 输入示例。这是 MLeap 进行数据模式推断所必需的。
path – 模型保存的本地路径。
mlflow_model –
mlflow.models.Model
这是要添加此风格的模型。signature –
ModelSignature
描述了模型的输入和输出Schema
。模型签名可以从具有有效模型输入(例如,省略目标列的训练数据集)和有效模型输出(例如,在训练数据集上生成的模型预测)的数据集中推断
,例如: .. code-block:: pythoninput_example – {{ 输入示例 }}
metadata – {{ 元数据 }}