Announcing Databricks Autologging for Automated ML Experiment Tracking - The Databricks Blogの翻訳です。
機械学習(ML)チームは、規制への対応、デバッグなどの目的から、彼らの結果を再現し、説明する能力を必要とします。このことは、あらゆる実運用のモデルは、自身のリネージュ、パフォーマンスに関する特性に関して記録を行うべきであるということを意味します。何人かのML実践者は、ソースコード、ハイパーパラメーター、パフォーマンスのメトリクスをこつこつとバージョン管理していますが、他の人は面倒、あるいは迅速なプロトタイピングの妨げとなると考えます。このため、データチームはこれらの情報を記録する際、主に3つの課題に直面します。
- MLチームにおける機械学習アーティファクトの標準化
- 様々なML問題に対する再現性、監査可能性の確保
- 大量のロギング処理呼び出しを含むコードの可読性の維持
MLモデルの再現性確保
Databricks Autologgingは、上のscikit-learnのデモのように、様々な種類のMLフレームワークにおけるモデルトレーニングのセッションを自動で追跡します
これらの課題に取り組むために、企業の全ての機械学習モデルに対する自動エクスペリメントトラッキングを提供するためにマネージドMLflowを活用したノーコードソリューションであるDatabricks Autologgingを発表できることを嬉しく思います。Databricks Autologgingを活用することで、ユーザーがノートブックでトレーニングコードを実行した際に、モデル、パラメーター、メトリクス、ファイル、リネージュ情報がロギングされます。MLflowのインポートやロギングを指示するためのコードを書く必要はありません。
scikit-learn、PySpark MLlib、Tensorflowを含む著名なMLライブラリを用いたトレーニングにおいて、トレーニングセッションはモデルのMLflowトラッキングランとして記録されます。また、モデルファイルも追跡され、MLflowのモデルレジストリにシームレスに登録することができ、リアルタイムスコアリングを行うためにMLflowのモデルサービングにデプロイすることもできます。
Databricks Autologgingの利用
Databricks Autologgingを使うには、シンプルにDatabricksのPythonノートブックで、サポートされているフレームワークによるモデルトレーニングを実行するだけで大丈夫です。全ての適切なモデルパラメーター、メトリクス、ファイル、リネージュ情報は自動で収集され、エクスペリメントページで参照することができます。これにより、データサイエンティストは実験のガイド、あるいは方向性を決めるために、様々なトレーニングラン(実行したトレーニング)を容易に比較することができます。また、Databricks Autologgingはハイパーパラメータチューニングのセッションを追跡することもでき、MLflow parallel coordinates plotのようなUIによる可視化を通じて、適切な探索空間を定義することを支援します。
サポートされているフレームワーク(2021/9/1時点)
- scikit-learn
- Apache Spark MLlib
- TensorFlow
- Keras
- PyTorch Lightning
- XGBoost
- LightGBM
- Gluon
- Fast.ai (version 1.x)
- statsmodels
APIコールを用いて、Databricks Autologgingの挙動をカスタマイズすることも可能です。mlflow.autolog() APIでは、モデルロギングを制御するための設定パラメーター、トレーニングデータの入力サンプルのコレクション、モデルのシグネチャ情報の記録、多くのユースケースを提供しています。最後に、Databricks Autologgingで記録されるモデルトレーニングセッションに対して、追加のパラメーター、タグ、メトリクス、その他の情報をロギングするためにMLflow Tracking APIを活用することもできます。
MLflowランの管理
Autologgingで記録されるモデルトレーニングの全ての情報は、DatabricksのマネージドMLflowに蓄積され、MLflowエクスペリメントのアクセス権によって保護されます。MLflow Tracking APIあるいはUIを用いて、モデルトレーニング情報の共有、修正、削除を行うことができます。
次のステップ
Databricks Autologgingはパブリックプレビューとして、いくつかのDatabricksワークスペースに展開され、Databricks MLランタイムバージョン9.0から利用できるようになります。今後数ヶ月でより広い範囲で利用できるようになる予定です。機能の詳細については、Databricks Autologgingのドキュメントを参照ください。
2021/8時点、日本リージョンで利用可能です。
実行例:訳者による追記
Databricks MLランタイムバージョン9.0で以下のコードを実行するだけで、モデル、パラメーター、メトリクス、混同行列(Confusion Matrix)が記録されます。
import sklearn
from sklearn import datasets
from sklearn.linear_model import LogisticRegression
iris = datasets.load_iris()
logistic = LogisticRegression(max_iter=1000)
logistic.fit(iris.data, iris.target)