在 MLflow 中记录实验

端到端机器学习

Joshua Stapleton

Machine Learning Engineer

MLflow

没有 MLflow…

  • 许多未跟踪、混乱的实验运行
  • 运行不一致,难以比较
  • 难以复现,易丢失

使用 MLflow…

  • 跟踪、有序的实验运行
  • 标准化运行便于对比
  • 可复现实验
  • 共享与部署模型
端到端机器学习

创建实验

mlflow.set_experiment()

  • 设置实验名称
  • 为实验运行提供工作区

 

用法:

import mlflow

# 设置实验名称,作为运行的工作区
mlflow.set_experiment("Heart Disease Classification")
端到端机器学习

运行实验

# 在该实验中启动一次新运行
with mlflow.start_run():
    # 训练模型,获取预测准确率
    logistic_model = LogisticRegression()

# 记录参数,如: mlflow.log_param("n_estimators", logistic_model.n_estimators)
# 记录指标(此处为准确率) mlflow.log_metric("accuracy", logistic_model.accuracy)
# 输出指标 print("Model accuracy: %.3f" % accuracy)
Model accuracy: 0.96
端到端机器学习

检索实验

 

mlflow.get_run(run_id)

  • 获取特定运行的元数据

 

mlflow.search_runs()

  • 返回多次运行的指标 DataFrame

用法:

# 获取运行数据并打印参数
run_data = mlflow.get_run(run_id)
print(run_data.data.params)
print(run_data.data.metrics)

# 检索实验中的所有运行
exp_id = run_data.info.experiment_id
runs_df = mlflow.search_runs(exp_id)
{'epochs': '20', 'accuracy': 0.95}
端到端机器学习

MLflow 界面

 

MLflow 实验仪表板

 

MLflow 示例实验页面

端到端机器学习

MLflow 界面(续)

 

展示指标提升的示例图

 

跨多次运行的指标对比示例

端到端机器学习

MLflow 资源

  • MLflow 简介 MLflow 简介
  • MLflow 官方网站 MLflow 官方网站
端到端机器学习

开始练习吧!

端到端机器学习

Preparing Video For Download...