Colab Enterpriseでランタイムテンプレートを作成し、独自のランタイムを利用してみる
データアナリティクス事業本部 機械学習チームの鈴木です。
2023/10/11のリリースノートでColab Enterpriseの一般提供開始がアナウンスされました。
今回はColab Enterpriseのランタイムテンプレートを作成し、自分で設定したスペックのランタイムをノートブックのバックエンドとして使用する例をご紹介します。
Colab Enterpriseについて
Colab EnterpriseはGoogle Cloud Next'23で発表されたVertex AIの機能の一つです。
Vertex AIのコンソールより、非常に多くの機械学習ユーザーが利用しているであろうGoogle Colabと類似のノートブックインターフェースを使って、機械学習などに関するPythonプログラムの開発を行うことができます。
『最適なColabのプランを選択する』に記載があるように、GCPとより密に連携するColabのプランの一つとしても位置付けられています。
記事執筆時点でプレビュー提供中のBigQuery Studioにもノートブックは統合されており、BigFramesを使ったPythonによるBigQueryへのインターフェースの一面もあります。
Colab Enterpriseの大きなポイントの一つとして、柔軟にランタイムをカスタマイズできる点があると思います。記事の後半でも紹介しますが、マシンタイプとアクセラレータの個数を自分で指定し、必要なスペックのランタイムを作成することができました。従来のマシンタイプだけからバックエンドのインスタンスを選択する方法だと、例えば「アクセラレータは使いたいんだけど、メモリはそこまでは必要ないんだけどなー」と思うスペックの選択肢が最安で、どうしてもコストが最適化されていない印象を持ってしまうことがありました。Colab Enterpriseのランタイムテンプレートを使って独自のVM設定を作成できる点は大きなメリットだと思います。
ランタイムとランタイムテンプレートについて
Colab Enterpriseではノートブック内のコードを実行するためにランタイムと呼ばれる仮想マシンをプロビジョニングしておきます。ランタイムテンプレートはランタイムのVM構成を定義する設定です。
特にColab Enterpriseの課金はCPU・Memory・Accelerators・Disksの要素から成るため、ランタイムテンプレートで指定するマシンタイプなどの設定が重要になります。料金については以下にガイドがあります。
使用の流れを確認する
1. ランタイムテンプレートの作成
Vertex AIのColab Enterpriseの画面から、ランタイムテンプレート
タブの新しいテンプレート
をクリックしました。
まず、ランタイムテンプレートの新規作成
です。ランタイムの基本情報より、表示名とリージョンを指定しました。
次に、コンピューティングの構成よりマシンのスペックなどの情報を指定しました。ディスクサイズは100GBがデフォルトですが、今回は簡単な検証のみなので10GBとしてみました。
マシンタイプについては以下のガイドを参考にするとスペックが分かりやすいです。
アイドル状態でのシャットダウンもデフォルトは180分ですが、今回は挙動の確認もしたかったので10分としました。なお、アイドル状態でのシャットダウンは、記事執筆時点ではExperimentalの機能になります。
最後にネットワークとセキュリティの設定をしました。ネットワーク・サブネットワーク共にdefaultとしました。
ページ下部のCREATE
ボタンを押すと、ランタイムテンプレートが作成されました。
2. ランタイムの作成
作成したランタイムテンプレートからランタイムを作成しました。
ランタイムタブより、ランタイムを作成
を押しました。
Vertex AIランタイムの作成より、先ほど作成したランタイムテンプレートを選択し、作成
を押しました。
ランタイムが作成されました。
ランタイムは同画面から削除することができます。使い終わったら消しておくのがよさそうです。
3. ノートブックからの接続
ノートブックを作成し、作成したランタイムに接続しました。
まず、ノートブックを作成
ボタンを押して新しくノートブックを作成しました。
ノートブックが作成されたので、接続
よりランタイムに接続
を押しました。
Vertex AIランタイムへの接続から、作成したランタイムを選択して接続
を押し、接続しました。
RAMとディスクのメトリクスが表示されて、接続されたことを確認できました。
アイドル状態でのシャットダウンの確認
ランタイムテンプレートで設定したアイドル状態でのシャットダウンは、記事執筆時点ではExperimentalの機能ですが、せっかくなのでどのような機能なのか確認してみました。
今回作成したランタイムテンプレートでは10分に設定していたので、上記で記載したランタイムを作成した後、何も操作せず10分程度待ってからランタイムタブを確認しました。
以下のようにステータスが停止済み
となることを確認できました。
アクセラレータとしてGPUを使用する
Colab Enterpriseでは、ランタイムテンプレートで指定するマシンタイプによってはアクセラレーターを設定することができます。
例えば、コンピューティングの構成でn1-standard-4
マシンタイプを選択し、アクセラレータとしてNVIDIA Tesla T4を2つ設定できました。
アクセラレータタイプやその枚数はマシンタイプによって組み合わせや上限があるものの、かなり柔軟に設定ができるので、複数GPU環境でプロトタイピングや検証をしたい時には非常に使いやすいように思いました。
ランタイムを作成してノートブックから接続し、nvidia-smi
でGPUを確認すると、確かにNVIDIA Tesla T4が2つ確認できました。
Tensorflowからも認識できていました。
最後に
一般提供が開始されたColab Enterpriseで、ランタイムテンプレートを作成しノートブックから接続するところまでを確認しました。
また、アクセラレータを選び、非常に簡単に複数GPUを割り当てたノートブック環境を作成できることも確認しました。
参考になりましたら幸いです。