この記事は ZOZO Advent Calendar 2021 #4 3日目の記事になります
こんにちは Sato Yu です
少し前の話ですが、GCP から Vertex AI がローンチされました
普段は GCP の AI Platform Notebook を使ってコードを書くことが多いのですが、Vertex AI Workbench という 新たな Jupyter Lab のマネージドサービスを発見し興味を持っていました
GCS や BigQuery との連携で少し話題になっていたのですが、関連記事が少なかったので、今回は実際に使用して、その使用感(+使用方法)をレビューしてみようと思います
Vertex AI Workbench は現在(2021-12-02時点) プレビュー版 なので、本記事の投稿時から情報が変更される可能性がありますので、ご注意下さい
使用方法
*AI Platform Notebook 同様、簡単にインスタンスを立てることができます
- GCP > Vertex AI > ワークベンチ > マネージドノートブック を選択
- インスタンスを立てる
- GCR から Dockerコンテナのイメージのパス を指定をすることで カスタムJupyterカーネル へのアクセスも可能なようです(未検証)
- シングルユーザーにのみアクセス権限が与えられるので他のユーザーのアクセスは現在(2021-12-03)出来なさそうでした
(*権限については従来の AI Platform Notebook ではサービスアカウントモードがサポートされていたので、今後サポートされそうではありますが、、)
- インスタンスが立ち上がったら
JUPYTERLABを開く
をクリック
*API割り当て上限のリクエストに引っかる場合はこちらをご参照ください
使用感について
UI
- 左のタブには新しく GCS, BigQuery, Executor の欄が追加されています
- 左下の Simple をオンにするとUIが少し Simple になります
- 右上からは Machine Resource を簡単に確認、変更できます
- 右の 歯車 のマークをクリックすると Executor で使える
Cell Tag
などを設定することができます (後述します) - 右の Debug のマークをクリックすると使用中の変数などを確認することができます
- Notebook の新規作成の際の環境で Pytorch、TensorFlow などが選択できます
上記が AI Platform Notebook からの大きな変更点かと思います
個人的には Workbench の方が UI が好みです
次に、それぞれの機能の使い方に関して触れていこうと思います
GCS との連携
嬉しいこと
- Workbench の UI から GCS のファイルパスの確認ができます
- ローカルから GUI 経由で GCS にファイルを Upload できます
GCS との連携で特に嬉しいのは、GUI から GCS のパスやファイルの確認や操作ができるという点だと思います
これでGCSとJupyterの画面をわざわざ行き来する必要がなくなりました
BigQuery との連携
嬉しいこと
- 左のBQタブに表示されるテーブルをダブルクリックすると、そのテーブルのメタ情報とプレビューを確認することができます
- データ分析の為の諸操作が簡単に
上の UI からQuery table
をクリックすると、クエリエディタが展開し、BigQueryと同じようにクエリを実行できます
さらに出力結果から
-
Copy code for DataFrame
のクリックで出力結果を DataFrame に落とすためのコードがコピーされセルにペーストできます -
Explore in Data Studio
のクリックで Data Studio にそのデータ持っていきデータの可視化などができます
上の UIから Generate Statistics
をクリックすると
%bigquery_stats <table_id>
が書かれたセルが自動で挿入され、セルの実行で pandas_profiling 的な集計をしてくれます
%bigquery_stats
このマジックコマンドは今回初めて見たのですが、かなり便利なコマンドだと思います
Executor
個人的には今回の目玉機能だと思っています
Notebook 内のセルを自動で実行するジョブを作成することができます
Notebook 上部 Executor の表示をクリックすると下画像のようなタブが出現します
そこから出力を保存する GCS バケット、 Machine Resource 、一回の実行なのか定期実行なのか、 Input parameters(後述) などを指定することができます
- 生み出されたジョブは Vertex Training の Custom Jobs に格納されます
- ジョブの結果は Vertex AI > ワークベンチ > 実行数タブ から確認することができます(Notebookの出力形式で)
- 実行された Notebook はジョブ作成時に指定した GCS に保存されます
Notebook をジョブとして自動実行できるのはとてもありがたい話です
Input parameters を指定できるので実験の際に重宝しそうです
また、定期実行ができるので 実験だけではなく、何か定期的に回したいコードなどを動かすなど、汎用的に使用することもできます
補足: ジョブに Input parameters を渡す方法が少し複雑だったので備忘録
- 変数を定義しているセルの
Cell Tag
(先述) に対してparameters
という Tag を追加 & クリックでチェックマークを付けます( params などの他の文字列はダメ)
すると実行時にそのセルの1つ下に Input parameters で指定した変数を定義したセルが挿入されます
つまり変数が上書きされた状態になります(x="hoge"のセルの下に x="fuga"のセルが挿入される)
Input parameters で試行錯誤してわかったこと
- x=1,y=hogeの様に形式的に記す必要があります(複数指定する場合は
,
で分ける) -
" . /
などの記号は使えない(x="hoge" はダメで、x=hogeで通る) - 変数の間のスペースも使えない
- GUI から x=1 としてパラメーターを設定してもセル上では x="1" となり文字列型で代入される
まとめ
これまで Vertex AI Workbench おおよその機能とその使用感について述べてきました
まだ説明しきれていない機能がありますが、それについてはドキュメントや他の記事を参考にされてください