Databricksクイックスタートガイドのコンテンツです。
Quickstart Python | Databricks on AWS [2021/3/30時点]の翻訳です。
MLflowは、機械学習のエンドツーエンドのライフサイクルを管理するためのオープンソースプラットフォームです。MLflowはメトリクス(モデルのロスなど)、パラメーター(学習率など)、学習モデルをロギングするためのシンプルなAPIを提供し、トレーニング結果の分析、モデルのデプロイを容易にします。
本記事では以下を説明します。
MLflowのインストール
Databricks機械学習ランタイムを使用しているのであれば、既にMLflowはインストールされています。そうでない場合には、PyPIからMLflowパッケージをインストール(英語)します。
ランの自動ロギング
MLflowは様々な機械学習フレームワークで記述されたトレーニングのコードを自動でロギングするmlflow.<framework>.autolog()
を提供しています。トレーニング前に、このAPIを呼び出すことで、モデル特有のメトリクス、パラメーター、モデルのアーティファクトをロギングできます。
TensorFlow
# Also autoinstruments tf.keras
import mlflow.tensorflow
mlflow.tensorflow.autolog()
Keras
# Use import mlflow.tensorflow and mlflow.tensorflow.autolog() if using tf.keras
import mlflow.keras
mlflow.keras.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 and automated MLflow tracking(英語)を参照ください。
結果の表示
機械学習コードを実行後、エクスペリメントランサイドバーを使って、結果を参照することができます。どのように、エクスペリメント、ラン、ノートブックのバージョンを参照するかについては、View notebook experiment(英語)を参照ください。
追加のメトリクス、パラメーター、モデルの追跡
直接MLflow Tracking logging APIs(英語)を呼び出すことで、追加情報をロギングすることができます。
- 数値のメトリクス
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ランタイム6.4以降かDatabricksランタイムML6.4以降が必要です。
ノートブック
PythonでMLflowによるトラッキングを始めるおすすめの方法は、autolog()
APIを使うというものです。MLflowのオートロギング機能によって、一行追加するだけで、結果のモデル、パラメーター、メトリクスを自動で記録することができます。以下のノートブックでは、オートロギングを実行するための手順を説明しています。
それぞれのトレーニングで、何をロギングするのかを自分で設定したい、テーブルやグラフなど追加のアーティファクトを記録したい場合には、以下のノートブックで説明されているようにMLflowのロギングAPIを使うことができます。
追加情報
- MLflow overview(英語)
- Databricksにおける機械学習トレーニングのトラッキング
- Run MLflow Projects on Databricks(英語)
- DatabricksのMLflowを用いたモデルのログ、ロード、登録、デプロイ