Databricks Certified Machine Learning Professional 合格体験記

# はじめに


![スクリーンショット 2022-12-05 午前8.53.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/383330/f606571f-92fb-b27b-7177-25bc4258d47d.png)

本記事では試験の対策方法と実際に受けてみた感想を書いていきます

# Databricks Certified Machine Learning Professional

https://www.databricks.com/learn/certification/machine-learning-professional

上記サイトからの翻訳です

Databricks Certified Machine Learning Professional認定試験は、Databricks Machine Learningとその機能を使用して、プロダクションタスクで高度な機械学習を実行する個人の能力を評価するものです。これには、機械学習実験の追跡、バージョン管理、機械学習モデルのライフサイクル管理などの能力が含まれます。さらに、認定試験では、機械学習モデルを展開するための戦略を実行する能力も評価されます。最後に、受験者は、データドリフトを検出するための監視ソリューションを構築する能力も評価されます。この認定試験に合格すると、Databricks Machine Learningを使用して高度な機械学習エンジニアリングタスクを実行することが期待されます。

# 試験方法

https://qiita.com/taka_yayoi/items/76dee9ec942274cb23ca#%E8%A9%A6%E9%A8%93%E6%96%B9%E6%B3%95

Databricks Data Engineer Associate試験と同じで、オンラインで受験可能でした。

# 必要スキル

サイトからの翻訳です

- 機械学習実験の追跡、バージョンアップ、管理など。
    - Delta LakeとFeature Storeによるデータ管理（テーブルの作成と使用）
    - MLflowによる実験追跡（モデルとメトリクスの記録、過去の実行結果のクエリ、モデルのロード）
    - 高度な実験追跡（モデル署名、入力例、ネストされた実行、Databricks Autologging、ハイパーパラメータチューニング、アーティファクト追跡）
- 機械学習モデルのライフサイクルを管理する。
    - 本番環境での前処理ロジックの適用（フレーバーの種類、ダウンストリームでの使用の容易化、モデルの保存/ロード）
    - MLflowモデルレジストリによるモデル管理（機能、モデルの登録、新しいモデルバージョンの追加、モデルステージの移行、モデルおよびモデルバージョンの削除）
    - モデル管理パイプラインの自動化（モデルレジストリのWebhooksの実装、Databricksジョブの利用を取り入れる）
- 機械学習モデルをデプロイするためのストラテジーを実装する。
    - バッチ（バッチデプロイメントオプション、Spark UDFによるシングルノードモデルのスケーリング、予測テーブルの最適化、- Feature Storeテーブルを使用したスコアリング）
    - ストリーミング（ストリーミングデプロイメントオプション、ストリーミングパイプラインにおけるシングルノードモデルのスケーリング）。
    - リアルタイム（リアルタイムデプロイメントオプション、MLflow Model Serving による RESTful デプロイメント、MLflow - Model Serving モデルへのクエリ）
- ドリフト検出のための監視ソリューションの構築（以下を含む
    - ドリフトの種類(データドリフト、コンセプトドリフト)
    - ドリフトテストとモニタリング（数値テスト、カテゴリテスト、入力ラベル比較テスト）
    - 包括的なドリフトソリューション（ドリフトモニタリングアーキテクチャ）

# どのように対策したか

- Scalable Machine Learning with Apache Spark Japanese

https://github.com/databricks-academy/scalable-machine-learning-with-apache-spark-japanese

上記のリポジトリのノートブック(日本語)を読み込むことをやりました.
Scalable Machine Learning with Apache Spark Japaneseには解説のスライドが付属しています。
スライドではデータサイエンスの基礎から解説されているので、初学者でも学び始めることができます

- ML in production Japanese

https://github.com/databricks-academy/ml-in-production-japanese

Databricksにおける機械学習モデルの運用に焦点を当てて解説されているNotebookです。
実験管理やモデル管理はScalable Machine Learning with Apache Spark Japaneseとオーバーラップする内容が多いです。
新しい内容としてはRESTエンドポイントへのデプロイ、テスト自動化、モニタリングなどが解説されています。
mlflow 2.0におけるスコアリングAPIのアップデートにより、Classical Model Servingの部分でエラーが発生します。
対応方法やエラーの詳細については以下をご参照ください。

https://qiita.com/sphereSky/items/d6fec52c282eb0396b0e

# 受けてみた感想

全体的には、Associateとかなりオーバーラップしている内容があると感じました。Associateで多く出たSpark MLのAPIやAutoMLの仕様確認のような問題はほぼ出ないですが、MLFLowの実験・モデル管理周り、Online Feature Store、Pandas ~ APIはより深く問われます。
一方で本番運用を意識した出題になっており、Professionalの範囲のNotebook(ml in production)についてはちゃんと動かして理解した方がいいです。各種APIの仕様についてちゃんと覚えていないと判断に迷う出題がされていると感じました。

Associateをしっかり対策した方であれば日が浅い内にProfessionalの対策をされると効率的です。




# おすすめの対策法

- Scalable Machine Learning with Apache Spark Japanese

https://github.com/databricks-academy/scalable-machine-learning-with-apache-spark-japanese

なぜsignatureやinput_exampleをトラックすると嬉しいのか？Nested Runの実施方法など細かい内容が出題されるので、隅々まで実行して理解しておく必要があります。
個人的にはFeature StoreのAPIが分かりづらかったので、ドキュメントを読み込みました。

https://docs.databricks.com/machine-learning/feature-store/python-api.html


- ML in production Japanese

https://github.com/databricks-academy/ml-in-production-japanese

こちらも実際に全て動かして内容を理解しました。

Job Webhookについてどのようなイベントをサポートしているかは、下記で確認した方がいいです。
https://docs.databricks.com/mlflow/model-registry-webhooks.html

ドリフトは各種検定について使い所が抑えられていればOKだと思います。