[Google Cloud]Professional Machine Learning Engineer を更新した

# はじめに
先日、Google Cloud 認定資格 Professional Machine Learning を更新したとき、前回受験時からだいぶアップデートされていたので、備忘として残しておきます。
これから同試験を受験される方の参考になれば幸いです。

# Google Cloud 認定資格 Professional Machine Learning について
Professional Machine Learning はその名の通り、ML エンジニアとして Google Cloud でどのように ML 基盤を構築するか、などが問われる試験です。
試験の概要は下表のとおりです。
※内容は 2024/12 現在の内容です。最新の情報は公式ドキュメントでご確認ください。
|  |  |
| :-: | :-: |
| 時間 | 2h |
| 受験料 | $200 |
| 言語 | 英語 |
| 試験形式 | 50 ~ 60 問の選択式 |

他、詳しい情報は下記公式ドキュメントをご参照ください。

https://cloud.google.com/learn/certification/machine-learning-engineer?hl=ja

# 前回との差分
前回は 2022/12 に受験しました。
当時は「クラスタリング」「回帰分析」「決定木」といった機械学習に関する初歩的な問題も散見されました。
しかし、今回更新した際にはこういった問題はほとんどなく、「Google Cloud で ML パイプラインを作るには？」「構築した ML モデルをモニタリングしたい」といったより実務的な内容が多く問われました。 (たまたま私だけなかったかもしれません)
問われた内容のほとんどが Vertex AI に関するものだったので、Vertex AI について何ができるかを押さえておけば合格ラインを目指せるのでは？と感じました。

# キーワード
前述した通り、更新時には Vertex AI に関してかなり問われたので、Vertex AI についてキーワードベースでまとめます。
本記事は試験用にまとめていますので、より詳細な内容は他の方の記事 (もしかすると私が今後書くかもしれません) を参考にしていただければと思います。

## Vertex AI
Vertex AI はフルマネージド統合 AI 開発プラットフォームです。
データ エンジニアリング、データ サイエンス、ML エンジニアリングのワークフローを統合し、チームによる共通のツールセットを使用したコラボレーションや Google Cloud のメリットを利用したアプリケーションのスケーリングを実現します。
詳細な内容は下記公式ドキュメントをご参照ください。

https://cloud.google.com/vertex-ai?hl=ja

## Vertex AI のノートブック環境
Vertex AI をノートブック形式で利用したい場合には次の 2 つのオプションが選択できます。

### Colab Enterprise
Google Cloud のセキュリティ機能とコンプライアンス機能を備えたコラボレーション指向のマネージドノートブック環境です。
複数ユーザー間での共同作業やインフラの管理をしたくないときにこちらを利用します。

参考：

https://cloud.google.com/vertex-ai/docs/workbench/notebook-solution?hl=ja#colab-enterprise

### Vertex AI Workbench
データサイエンスワークフロー全体をサポートする機能を備え、仮想マシンインスタンスを介して提供される Jupyter ノートブックベースの環境です。ユーザー側で環境を制御したり、カスタマイズしたりしたい場合はこちらを利用します。

:::note warn
Vertex AI Workbench には「Vertex AI Workbench インスタンス」、「Vertex AI Workbench マネージドノートブック」、「Vertex AI Workbench ユーザー管理ノートブック」と 3 つのインスタンスタイプが用意されていますが、「Vertex AI Workbench インスタンス」以外の 2 タイプは非推奨となっています。
しかし、試験としては問われる可能性があるので注意してください。
:::

参考：

https://cloud.google.com/vertex-ai/docs/workbench/notebook-solution?hl=ja#vertex-ai-workbench

## AutoML
Vertex AI において、最小限の技術的知識と労力でモデルを作成してトレーニングできる方法です。
詳細な使い方まで抑えておく必要なないですが、下表のように何ができるか程度は押さえておくと良いです。

| データ型 | 目的 |
| :-: | :-: |
| 画像データ | 分類、オブジェクト検出 |
| 動画データ | 動作認識、分類、オブジェクトラッキング |
| テキストデータ | 分類、エンティティ抽出、感情分析 |
| 表形式データ | 分類、回帰、予測 |

https://cloud.google.com/vertex-ai/docs/training-overview?hl=ja

## MLOps
Vertex AI について問われたというより、MLOps を Vertex AI で実現するには？が問われた印象です。
以下、Vertex AI の MLOps についてまとめました。
名前からある程度どんなサービスなのかはわかりますが、それぞれのサービスはどんなことができるのかを押さえておくと良いでしょう。
下記公式ドキュメントの内容を把握しておくだけでもだいぶ解けます。

https://cloud.google.com/vertex-ai/docs/start/introduction-mlops?hl=ja

### Veretex AI Feature Store
Vertex AI Feature Store は Vertex AI に不可欠なクラウドネイティブなマネージド Feature Store サービスです。機械学習で使用する特徴量を一元的に整理、保存、提供することができます。


参考：
https://cloud.google.com/vertex-ai/docs/featurestore/latest/overview?hl=ja

### Vertex AI Model Registry
Vertex AI Model Registry は ML モデルのライフサイクルを管理できる中央リポジトリです。
このサービスを使うとモデルの概要を確認できるほか、新しいバージョンの整理、追跡、トレーニングの向上が実現できます。デプロイするモデルにバージョンがある場合には、Registry から直接エンドポイントに割り当てるか、エイリアスを利用してモデルをエンドポイントにデプロイすることができます。
ここら辺の話を応用した、新バージョンの ML モデルのデプロイ方法についても押さえておくと良いです。

参考：
https://cloud.google.com/vertex-ai/docs/model-registry/introduction?hl=ja

### Vertex AI Pipelines
Vertex AI Pipelines は ML パイプラインを使用して ML ワークフローをオーケストレートすることにより、サーバーレス方式で ML システムの自動化、モニタリング、管理をすることができるサービスです。

参考：

https://cloud.google.com/vertex-ai/docs/pipelines/introduction?hl=ja

### Vertex AI ML Metadata
Vertex AI ML Metadata は ML システムによって生成されたメタデータとアーディファクトを記録し、そのメタデータに対してクエリを実行できるサービスです。このサービスを使用すると、ML システムまたはアーティファクトの生成状況の分析、デバッグ、監査を行うことができます。

参考：

https://cloud.google.com/vertex-ai/docs/ml-metadata/introduction?hl=ja

### Vertex Explainable AI 
Vertex Explainable AI は特徴ベースの説明と例ベースの説明が用意されており、モデルの意思決定について深く理解することができます。

参考：
https://cloud.google.com/vertex-ai/docs/explainable-ai/overview?hl=ja

### Vertex AI Model Monitoring
Vertex AI Model monitoring はその名の通り、AI モデルをモニタリングするサービスです。定期的にモニタリングジョブを実行して、表形式モデルの品質を追跡できます。このサービスにより、アラートと特徴分布を使用して、モデルの再トレーニングが必要かどうかを評価できます。
ここの話でよく出てくるスキュー検出 (skew) とドリフト検出 (drift) について、簡単に解説します。

- **スキュー検出**
スキュー (skew) とは日本語で歪度、つまり歪みのことを言います。
ここではモデルをトレーニングした際の特徴データの分布が、本番環境での特徴データの分布との間に違いがないかを検出します。
例えば、受験生の志望大学を予測するモデルがあるとします。モデルは文系の人のデータを使ってトレーニングをしたが、このモデルを理系の人に適用した場合は、その特徴が異なってしまいます。このスキュー検出を使用することで、トレーニングに使用した特徴データの分布と実際の特徴データの分布が一定以上となった場合にアラート発報させることができます。

- **ドリフト検出**
ドリフト (drift) とは日本語で漂うといった意味となります。
ここでは、本番環境において特徴データの分布が時間の経過とともに変化していないかを検出します。
公式ドキュメントにも例としてありますが、顧客のライフタイムバリューを予測するモデルにおいて、顧客の習慣が時間とともに変化する (流行が変わる、と言った方がイメージしやすいでしょうか) と、顧客の支出を予測する要因も変化します。このドリフト検出を使用することで、一定以上差が生まれたらアラート発報をさせることができます。

参考：

https://cloud.google.com/vertex-ai/docs/model-monitoring/overview?hl=ja#v1

### Vertex AI Experiments
Vertex AI Experiments はさまざまなモデルアーキテクチャ、ハイパーパラメータ、トレーニング環境を追跡および分析し、テストの実行手順、入力、出力を追跡する際に役立つツールです。このサービスを使用すると、テストデータセットに対して、トレーニング実行中に、モデルの集計パフォーマンスを評価し、特定のユースケースに最適なモデルを選択することができます。

参考：

https://cloud.google.com/vertex-ai/docs/experiments/intro-vertex-ai-experiments?hl=ja


### Vertex AI TensorBoard
Vertex AI TensorBoard はオープンソースである TensorBoard (TB) のエンタープライズ対応のマネージドバージョンです。このサービスを使用すると、ML テストの追跡、可視化、比較を行い、その情報をチームと共有できます。

参考：

https://www.tensorflow.org/tensorboard/get_started?hl=ja

https://cloud.google.com/vertex-ai/docs/experiments/tensorboard-introduction?hl=ja

# まとめ
以上、簡単ではありますが、現バージョンの Professional Machine Learning で重要となるキーワードを紹介しました。
更新するにあたって、これらのドキュメントを読んだもののまだ実際に Google Cloud Console 上でいじっていないので、今度これらの内容を使用した検証なども行っていきたいと思います。