機械学習エクスペリメントの自動トラッキングのためのDatabricks Autologgingの発表

[Announcing Databricks Autologging for Automated ML Experiment Tracking \- The Databricks Blog](https://databricks.com/blog/2021/08/27/announcing-databricks-autologging-for-automated-ml-experiment-tracking.html)の翻訳です。

機械学習(ML)チームは、規制への対応、デバッグなどの目的から、彼らの結果を再現し、説明する能力を必要とします。このことは、あらゆる実運用のモデルは、自身のリネージュ、パフォーマンスに関する特性に関して記録を行うべきであるということを意味します。何人かのML実践者は、ソースコード、ハイパーパラメーター、パフォーマンスのメトリクスをこつこつとバージョン管理していますが、他の人は面倒、あるいは迅速なプロトタイピングの妨げとなると考えます。このため、データチームはこれらの情報を記録する際、主に3つの課題に直面します。

1. MLチームにおける機械学習アーティファクトの標準化
1. 様々なML問題に対する再現性、監査可能性の確保
1. 大量のロギング処理呼び出しを含むコードの可読性の維持

# MLモデルの再現性確保

https://vimeo.com/592925141

*Databricks Autologgingは、上のscikit-learnのデモのように、様々な種類のMLフレームワークにおけるモデルトレーニングのセッションを自動で追跡します*

これらの課題に取り組むために、企業の全ての機械学習モデルに対する自動エクスペリメントトラッキングを提供するために[マネージドMLflow](https://databricks.com/jp/product/managed-mlflow)を活用したノーコードソリューションである[Databricks Autologging](https://docs.databricks.com/applications/mlflow/databricks-autologging.html)を発表できることを嬉しく思います。Databricks Autologgingを活用することで、ユーザーがノートブックでトレーニングコードを実行した際に、モデル、パラメーター、メトリクス、ファイル、リネージュ情報がロギングされます。MLflowのインポートやロギングを指示するためのコードを書く必要はありません。

scikit-learn、PySpark MLlib、Tensorflowを含む著名なMLライブラリを用いたトレーニングにおいて、トレーニングセッションはモデルの[MLflowトラッキングラン](https://docs.databricks.com/applications/mlflow/tracking.html)として記録されます。また、モデルファイルも追跡され、[MLflowのモデルレジストリ](https://docs.databricks.com/applications/mlflow/model-registry.html)にシームレスに登録することができ、リアルタイムスコアリングを行うために[MLflowのモデルサービング](https://docs.databricks.com/applications/mlflow/model-serving.html)にデプロイすることもできます。

# Databricks Autologgingの利用

Databricks Autologgingを使うには、シンプルにDatabricksのPythonノートブックで、[サポートされているフレームワーク](https://docs.databricks.com/applications/mlflow/databricks-autologging.html)によるモデルトレーニングを実行するだけで大丈夫です。全ての適切なモデルパラメーター、メトリクス、ファイル、リネージュ情報は自動で収集され、エクスペリメントページで参照することができます。これにより、データサイエンティストは実験のガイド、あるいは方向性を決めるために、様々なトレーニングラン(実行したトレーニング)を容易に比較することができます。また、Databricks Autologgingはハイパーパラメータチューニングのセッションを追跡することもでき、[MLflow parallel coordinates plot](https://www.youtube.com/watch?v=pBr7jlXjqHs)のようなUIによる可視化を通じて、適切な探索空間を定義することを支援します。

<iframe width="560" height="315" src="https://www.youtube.com/embed/pBr7jlXjqHs" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

**サポートされているフレームワーク(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](https://mlflow.org/docs/latest/python_api/mlflow.html#mlflow.autolog)では、モデルロギングを制御するための設定パラメーター、トレーニングデータの入力サンプルのコレクション、モデルのシグネチャ情報の記録、多くのユースケースを提供しています。最後に、Databricks Autologgingで記録されるモデルトレーニングセッションに対して、追加のパラメーター、タグ、メトリクス、その他の情報をロギングするために[MLflow Tracking API](https://docs.databricks.com/applications/mlflow/tracking.html)を活用することもできます。

# MLflowランの管理

Autologgingで記録されるモデルトレーニングの全ての情報は、Databricksの[マネージドMLflow](https://databricks.com/jp/product/managed-mlflow)に蓄積され、[MLflowエクスペリメントのアクセス権](https://qiita.com/taka_yayoi/items/2dd6711b7b254505e4a3#mlflow%E3%82%A8%E3%82%AF%E3%82%B9%E3%83%9A%E3%83%AA%E3%83%A1%E3%83%B3%E3%83%88%E3%81%AE%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E6%A8%A9)によって保護されます。[MLflow Tracking API](https://docs.databricks.com/applications/mlflow/tracking.html)あるいはUIを用いて、モデルトレーニング情報の共有、修正、削除を行うことができます。

# 次のステップ

Databricks Autologgingはパブリックプレビューとして、いくつかのDatabricksワークスペースに展開され、Databricks MLランタイムバージョン9.0から利用できるようになります。今後数ヶ月でより広い範囲で利用できるようになる予定です。機能の詳細については、[Databricks Autologgingのドキュメント](https://docs.databricks.com/applications/mlflow/databricks-autologging.html)を参照ください。

:::note info
2021/8時点、日本リージョンで利用可能です。
:::

# 実行例：訳者による追記

Databricks MLランタイムバージョン9.0で以下のコードを実行するだけで、モデル、パラメーター、メトリクス、混同行列(Confusion Matrix)が記録されます。

```py:Python
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)
```

**パラメーター**
![Screen Shot 2021-09-01 at 13.50.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/b3c31927-68b1-97ca-739e-7342e8d242f9.png)

**メトリクス**
![Screen Shot 2021-09-01 at 13.50.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/521c55d5-4741-bdc9-3aac-151b41a330ba.png)

**モデルおよびアーティファクト**
![Screen Shot 2021-09-01 at 13.50.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/5721d7bf-83d2-4bbd-1364-4a474afe5ab3.png)

### Databricks 無料トライアル

[Databricks 無料トライアル](https://databricks.com/jp/try-databricks)