Part 1では、一度では満足のいく結果に至らない、時間とコストのかかる最適化プロセスの課題について解説しました。

Part 2
Part 1では、一度では満足のいく結果に至らない、時間とコストのかかる最適化プロセスの課題について取り上げました。機械学習(ML)の学習、ウェブサイトのA/Bテスト、工場における最適な入力値の選定など、いずれも1サイクルあたりのコストが大きく、できるだけ早く良好な結果に収束させたいものです。Google Cloud上のVertex AI Vizierは、各トライアルに対してパラメータを提案することで、これを可能にします。
あくまでも助言役
「Vizier(ヴィジエ)」は王の助言役を指す称号で、アラビア語のوزير wazīrがペルシャ語、トルコ語を経て伝わったものです。Vizierは王の政策に助言はしますが、決定権は持ちません。Vizierのブラックボックス最適化もこれと同じ考え方で動作します。最適化トライアルそのものを代行するわけではないのです。一方、GCPやAWSが提供するハイパーパラメータチューナーサービスは、すべてを自動で実行してくれます。例えば、学習率を0〜1の連続値、最小子重みを1〜3の整数値といった具合に、ハイパーパラメータの範囲を渡すだけです。ハイパーパラメータチューナーのクライアントを作成し、fit()のような関数を呼び出して投げっぱなしにしておけば済みます。その関数は数時間ほど動作し、内部で複数回の学習イテレーションを実行しながら異なるハイパーパラメータを試し、最終的に最良のモデルを返します。
このブラックボックス最適化の過程はユーザーの制御外にあり、可視化もされません(少なくともAPI上は。通常はモニタリングの仕組みが用意されています)。
注:「ブラックボックス」とは、トライアルの中身がVizier側からは見えないという意味です。VizierはMLの学習やA/Bテストの内容について何も知りません。各トライアル内で最適化されている関数の勾配や挙動についても、まったく把握していないのです。
逆にユーザーから見れば、これらのトライアルは完全に「ホワイトボックス」です。主導権はあなたにあります。
強み
ハイパーパラメータチューナーサービスはVizierより手軽に見えますし、実際GoogleもVertex AI AutoMLや旧ブランド名であるAI Platformのハイパーパラメータチューナーを、Vizierベースのエンジン上に構築しています。それでもなお、Vizierと連携するブラックボックス手法ならではの利点があります。
コントロール性
ブラックボックス最適化では、より高いコントロール性が得られます。
トライアルの中身は、たいていユーザー自身の専門領域です。ウェブサイト開発者は自社サイトを隅々まで把握しており、データサイエンティストはMLアルゴリズムの細部を理解しています。最低コストで最大の成果を引き出す方法を、これまでに十分検討してきたはずです。Vizierを使えば、実際のML学習に対する完全な制御を維持できます。利用するインフラやAPI、GPU・TPUの種類や台数などは、すべてご自身で決定できます。
Vizierの提案を無視して、独自のパラメータを使うことさえ可能です。もちろん、通常は提案を採用するでしょう。Vizierを呼び出しているのは、まさにそのためなのですから。とはいえ、たとえばMLの新しいアルゴリズムを論文で見つけたときや、ウェブサイトのA/Bテストに含まれていなかった新案をプロダクトマネージャーが試したいときなどは、独自パラメータで進めて構いません。独自パラメータでトライアルを実行した場合でも、そのパラメータとメトリクスをVizierに渡せば、提案を採用したときと同じように、Vizierはそこから学習を続けてくれます。
スケーラビリティ
Vizierが担うのは、複数のトライアルにまたがる最適化のうち「軽い」部分だけです。専用ハードウェアを大量に必要とするMLの重い処理は行いません。同様に、ウェブサイトのA/Bテストや工場運用といった負荷の高い処理も担当しません。だからこそスケールしやすいのです。実際の学習をはじめワークフロー全体で最も負荷の重い部分はユーザー側で実行するため、自社環境に最適なベストプラクティスを適用できます。(下の図1では、ユーザーの学習マシンがVizier REST APIの下にある「Evaluation workers」に相当します。)
一方、Vizier側は提案の生成や停止タイミングの判断を行うワーカーをスケーラブルに起動します。状態は単一の最適化実行のコンテキスト内ではなくデータベースに保持されるため、障害からの復旧も可能です。また、提案ワーカーはハイパーパラメータ最適化のみを担当し、ユーザー側の「重い処理」は行わないため、Vizierはこれらのワーカーを効率的にスケールアップできます。

図1. アーキテクチャ図(研究論文の図をもとに作成)
多目的最適化
多くの最適化プロセスやハイパーパラメータチューナーは、単一のメトリクスを最大化することを目指します。Vertex AI Vizierでも最も一般的な使い方はこれです。しかし、複数のメトリクスを同時に最適化したい場面もあります。たとえばウェブサイトのA/Bテストで、収益と滞在時間の両方を最大化したい場合。あるいは双方向のマーケットプレイスで、買い手には良い条件を提供しつつ、売り手の利益も最大化したい場合などです。
このコンセプトを直感的に理解できる例として、Googleが提供するサンプルNotebookをご覧ください。同じ2つの入力パラメータに対する2つの三角関数を最大化する内容になっています。

図2. 両方の関数を同時に最大化できる単一の点は存在しない。
このように、両方のメトリクスを同時に最大化する単一の点は存在しないため、Vertex AI Vizierはパレートフロンティアを導き出します。これは、一方のメトリクスを改善しようとすると必ずもう一方が悪化してしまう境界線のことです。最適解は1点ではなく、境界線として現れます。
次回:柔軟性、そして最初のVizier MLノートブック
Vizierはシンプルなシステムで、基本的にはデフォルト設定のまま使うのがおすすめです。とはいえ、その動作をさらに細かく調整することもできます。次回の記事では、その方法をコードサンプルとともに紹介します。
Part 3「基本のその先へ:Vizierの設定オプションとコードサンプル」もぜひご覧ください。