MLflow を使用してモデル開発を追跡する
この記事には、Azure Databricks でモデル開発を追跡する例が含まれています。 MLflow を使用して ML およびディープ ラーニング モデルを自動的にログに記録して追跡するか、MLflow API を使用して手動で行います。
モデル追跡 & MLflow
モデル開発プロセスは反復的であり、モデルを開発および最適化するときに作業を追跡することは困難になる場合があります。 Azure Databricks では、MLflow 追跡を使用して、実行したパラメーターの設定や組み合わせ、それらがモデルのパフォーマンスにどのような影響を及ぼしたかなど、モデルの開発プロセスを追跡することができます。
MLflow 追跡では "実験" と "実行" を使用して、ML およびディープ ラーニング モデルの開発をログに記録し、追跡します。 実行とは、モデル コードの 1 回の実行です。 MLflow の実行中に、モデルのパラメーターと結果をログに記録できます。 実験とは、関連する実行のコレクションです。 実験内では、実行の比較とフィルター処理を行って、モデルのパフォーマンスと、パラメーターの設定や入力データなどに対するパフォーマンスの違いを理解することができます。
この記事のノートブックでは、MLflow を使用してモデル開発の追跡を迅速に開始するのに役立つ簡単な例を紹介しています。 Azure Databricks で MLflow 追跡を使用する方法の詳細については、「ML およびディープ ラーニングのトレーニング実行を追跡する」を参照してください。
Note
MLflow 追跡では、Jobs API の spark_submit_task を使用して送信されたジョブはサポートされません。 代わりに、MLflow Projects を使用して Spark コードを実行できます。
自動ログ記録を使用したモデル開発の追跡
MLflow では、多くの ML およびディープ ラーニング フレームワークで記述されたトレーニング コードを自動的にログに記録できます。 これは、MLflow 追跡の使用を開始する最も簡単な方法です。
このノートブックの例では、scikit-learn で自動ログ記録を使用する方法を示します。 他の Python ライブラリを使用した自動ログ記録の詳細については、MLflow へのトレーニング実行の自動的なログ記録に関する記事を参照してください。
MLflow 自動ログ Python ノートブック
ログ API を使用したモデル開発の追跡
このノートブックは、MLflow ログ API の使用方法を示しています。 ログ API を使用すると、ログに記録されるメトリックをより細かく制御できるので、テーブルやプロットなどの追加のアーティファクトをログに記録できます。
このノートブック例では、Python のログ API を使用する方法を示しています。 MLflow には、REST、R、および Java の API もあります。
MLflow ログ API Python ノートブック
エンド ツー エンドの例
このチュートリアル ノートブックでは、データの読み込み、データの視覚化、並列ハイパーパラメーターの最適化の設定、MLflow を使用した結果の確認、モデルの登録、および Spark UDF の登録済みモデルを使用した新しいデータに対する推論の実行など、Azure Databricks でモデルをトレーニングするエンドツーエンドの例を紹介します。
必要条件
Databricks Runtime ML
ノートブックの例
ワークスペースが Unity Catalog に対して有効になっている場合は、次のバージョンのノートブックを使用します。
Databricks で scikit-learn と MLflow の統合を使用する (Unity Catalog)
ワークスペースが Unity Catalog に対して有効になっていない場合は、次のバージョンのノートブックを使用します。