Track model development | Databricks on AWS [2021/10/14時点]の翻訳です。
モデル開発のプロセスはイテレーティブなものであり、モデルを開発、最適化していく際の作業を追跡し続けるのは困難なものです。Databricksにおいては、トライしたパラメーターの設定や組み合わせや、それがどの程度のパフォーマンスを示したのかを含むモデル開発プロセスの追跡を支援するためにMLflowトラッキングを活用することができます。
MLflowトラッキングは、モデル開発を記録し追跡するために、エクスペリメントとランを用います。ランはモデルコードの単一の実行処理です。MLflowのランにおいては、モデルのパラメーターと結果を記録することができます。エクスペリメントは関係するランのコレクションです。エクスペリメントでは、モデルのパフォーマンスがどの程度か、パフォーマンスがパラメーターの設定、入力データなどにどのように依存するのかを理解するために、ランを比較、フィルタリングすることができます。
本書のノートブックでは、モデル開発を追跡するためにMLflowを用いてすぐに使い始められるようにするためのシンプルなサンプルを説明します。DatabricksにおけるMLflowトラッキングの使い方の詳細に関しては、Databricksにおける機械学習トレーニングのトラッキングをご覧ください。
注意
MLflowは、Jobs APIのspark_submit_taskでサブミットされたジョブをサポートしていません。代わりに、Sparkコードを実行するためにはMLflow Projectsを利用してください。
モデル開発トラッキングにオートロギングを使う
MLflowは、数多くのMLフレームワークで記述されたトレーニングコードを自動で記録することができます。これは、MLflowトラッキングを使い始めるには一番が簡単な方法です。
このノートブックでは、scikit-learnによるオートロギングをどのように使うのかを説明しています。他のPythonライブラリのオートロギングに関しては、MLflowにおけるトレーニングランのオートロギングを参照ください。
MLflowオートロギングクイックスタートPythonノートブック
モデル開発トラッキングにlogging APIを使う
このノートブックでは、MLflowのlogging APIの使い方を説明します。logging APiを用いることで、記録すべきメトリクスに対するコントロールを強化することができ、テーブルやプロットなどの追加のアーティファクトを記録することができます。
このサンプルノートブックでは、Python logging APIの使い方を説明します。MLflowではREST、R、Java APIを使用することもできます。
MLflow logging APIクイックスタートPythonノートブック
エンドツーエンドのサンプル
このチュートリアルノートブックでは、データのロード、データの可視化、ハイパーパラメーター最適化の並列処理、MLflowを用いた結果のレビュー、モデルの登録、そして、Spark UDF(ユーザー定義関数)として登録したモデルを用いて、新規データに対する推論までを含む、Databricksにおけるモデルトレーニングのエンドツーエンドのサンプルを説明します。
要件
Databricksランタイム6.5ML以降
サンプルノートブック