Python 快速入门
MLflow 是用于管理端到端机器学习生命周期的开源平台。 MLflow 提供简单的 API 来记录指标(例如模型丢失)、参数(例如学习速率)和拟合模型,以便简化随后的训练结果分析或模型部署。
本部分内容:
安装 MLflow
如果使用的是用于机器学习的 Databricks Runtime,则已经安装 MLflow。 否则,请从 PyPI 安装 MLflow 包。
自动将训练运行记录到 MLflow
在 Databricks Runtime 10.4 LTS ML 及更高版本中,Databricks Autologging 在默认情况下是启用的,并且,在你利用各种流行的机器学习库训练模型时,会自动捕获模型参数、指标、文件和世系信息。
在 Databricks Runtime 9.1 LTS ML 中,MLflow 提供 mlflow.<framework>.autolog()
API 来自动记录采用多种 ML 框架编写的训练代码。 你可以先调用此 API,然后再运行训练代码以记录特定于模型的指标、参数和模型项目。
TensorFlow
注意
mlflow.tensorflow.autolog()
还支持 Keras 模型。
# Also autoinstruments tf.keras
import mlflow.tensorflow
mlflow.tensorflow.autolog()
XGBoost
import mlflow.xgboost
mlflow.xgboost.autolog()
LightGBM
import mlflow.lightgbm
mlflow.lightgbm.autolog()
scikit-learn
import mlflow.sklearn
mlflow.sklearn.autolog()
PySpark
如果使用 pyspark.ml
执行优化,则系统会自动将指标和模型记录到 MLflow 中。
请参阅 Apache Spark MLlib 和自动化 MLflow 跟踪。
查看结果
执行机器学习代码后,可以使用“试验运行”边栏查看结果。 请参阅查看笔记本试验,了解有关如何查看快速入门中使用的试验、运行和笔记本修订版的说明。
跟踪其他指标、参数和模型
你可以通过直接调用 MLflow 跟踪日志记录 API 来记录其他信息。
数值指标
import mlflow
mlflow.log_metric("accuracy", 0.9)
训练参数
import mlflow
mlflow.log_param("learning_rate", 0.001)
模型
scikit-learn
import mlflow.sklearn
mlflow.sklearn.log_model(model, "myModel")
PySpark
import mlflow.spark
mlflow.spark.log_model(model, "myModel")
XGBoost
import mlflow.xgboost
mlflow.xgboost.log_model(model, "myModel")
TensorFlow
import mlflow.tensorflow
mlflow.tensorflow.log_model(model, "myModel")
Keras
import mlflow.keras
mlflow.keras.log_model(model, "myModel")
PyTorch
import mlflow.pytorch
mlflow.pytorch.log_model(model, "myModel")
SpaCy
import mlflow.spacy
mlflow.spacy.log_model(model, "myModel")
其他项目(文件)
import mlflow
mlflow.log_artifact("/tmp/my-file", "myArtifactPath")
示例笔记本
注意
在 Databricks Runtime 10.4 LTS ML 及更高版本中,Databricks Autologging 在默认情况下是启用的,并且这些示例笔记本中的代码不是必需的。 本部分中的示例笔记本是为与 Databricks Runtime 9.1 LTS ML 配合使用而设计的。
要通过 Python 开始使用 MLflow 跟踪,推荐的方法是使用 MLflow autolog()
API。 使用 MLflow 的 autologging 功能,一行代码会自动记录生成的模型、用于创建模型的参数和模型分数。 以下笔记本演示了如何使用 autologging 设置运行。
MLflow autologging 快速入门 Python 笔记本
如果需要更好地控制为每次训练运行记录的指标,或想要记录其他项目(如表或绘图),可以使用以下笔记本中演示的 MLflow 日志记录 API 函数。