LoginSignup
16
4

More than 1 year has passed since last update.

【Vertex AI】Workbench は革命児

Last updated at Posted at 2021-12-02

この記事は 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 同様、簡単にインスタンスを立てることができます

  1. GCP > Vertex AI > ワークベンチ > マネージドノートブック を選択
  2. インスタンスを立てる
    • GCR から Dockerコンテナのイメージのパス を指定をすることで カスタムJupyterカーネル へのアクセスも可能なようです(未検証)
    • シングルユーザーにのみアクセス権限が与えられるので他のユーザーのアクセスは現在(2021-12-03)出来なさそうでした
      (*権限については従来の AI Platform Notebook ではサービスアカウントモードがサポートされていたので、今後サポートされそうではありますが、、)
  3. インスタンスが立ち上がったら JUPYTERLABを開く をクリック

*API割り当て上限のリクエストに引っかる場合はこちらをご参照ください

使用感について

UI

スクリーンショット 2021-12-02 11.39.12.png

  • 左のタブには新しく GCS, BigQuery, Executor の欄が追加されています
  • 左下の Simple をオンにするとUIが少し Simple になります
  • 右上からは Machine Resource を簡単に確認、変更できます
  • 右の 歯車 のマークをクリックすると Executor で使える Cell Tag などを設定することができます (後述します)
  • 右の Debug のマークをクリックすると使用中の変数などを確認することができます
  • Notebook の新規作成の際の環境で Pytorch、TensorFlow などが選択できます

上記が AI Platform Notebook からの大きな変更点かと思います
個人的には Workbench の方が UI が好みです
次に、それぞれの機能の使い方に関して触れていこうと思います

GCS との連携

嬉しいこと
1. Workbench の UI から GCS のファイルパスの確認ができます
2. ローカルから GUI 経由で GCS にファイルを Upload できます

GCS との連携で特に嬉しいのは、GUI から GCS のパスやファイルの確認や操作ができるという点だと思います
これでGCSとJupyterの画面をわざわざ行き来する必要がなくなりました

BigQuery との連携

嬉しいこと
1. 左のBQタブに表示されるテーブルをダブルクリックすると、そのテーブルのメタ情報とプレビューを確認することができます

スクリーンショット 2021-12-02 19.51.11.png

  1. データ分析の為の諸操作が簡単に 上の UI から Query table をクリックすると、クエリエディタが展開し、BigQueryと同じようにクエリを実行できます スクリーンショット 2021-12-02 13.51.22.png

さらに出力結果から
- Copy code for DataFrame のクリックで出力結果を DataFrame に落とすためのコードがコピーされセルにペーストできます
- Explore in Data Studio のクリックで Data Studio にそのデータ持っていきデータの可視化などができます

上の UIから Generate Statistics をクリックすると

%bigquery_stats <table_id>

が書かれたセルが自動で挿入され、セルの実行で pandas_profiling 的な集計をしてくれます
%bigquery_stats このマジックコマンドは今回初めて見たのですが、かなり便利なコマンドだと思います
スクリーンショット 2021-12-01 17.20.12.png

Executor

個人的には今回の目玉機能だと思っています
Notebook 内のセルを自動で実行するジョブを作成することができます
Notebook 上部 Executor の表示をクリックすると下画像のようなタブが出現します
そこから出力を保存する GCS バケット、 Machine Resource 、一回の実行なのか定期実行なのか、 Input parameters(後述) などを指定することができます
スクリーンショット 2021-12-02 17.52.28.png

  • 生み出されたジョブは Vertex Training の Custom Jobs に格納されます
  • ジョブの結果は Vertex AI > ワークベンチ > 実行数タブ から確認することができます(Notebookの出力形式で)
  • 実行された Notebook はジョブ作成時に指定した GCS に保存されます

Notebook をジョブとして自動実行できるのはとてもありがたい話です
Input parameters を指定できるので実験の際に重宝しそうです
また、定期実行ができるので 実験だけではなく、何か定期的に回したいコードなどを動かすなど、汎用的に使用することもできます

補足: ジョブに Input parameters を渡す方法が少し複雑だったので備忘録
1. 変数を定義しているセルの Cell Tag (先述) に対して parameters という Tag を追加 & クリックでチェックマークを付けます( params などの他の文字列はダメ)
スクリーンショット 2021-12-02 18.43.30.png
2. Notebook 上部 Executor の表示をクリックし、GUI から Input parameters にx=fugaの様な形で Input parameter として代入したい変数を記します
スクリーンショット 2021-12-02 18.50.47.png
3.この状態でジョブを作成します

すると実行時にそのセルの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 おおよその機能とその使用感について述べてきました
まだ説明しきれていない機能がありますが、それについてはドキュメントや他の記事を参考にされてください

参考

16
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
4