Colab Enterpriseでランタイムテンプレートを作成し、独自のランタイムを利用してみる

Colab Enterpriseで独自のランタイムを作成する方法を紹介します。アクセラレータとしてGPUを使用するケースについても確認しました。
2023.10.22

データアナリティクス事業本部 機械学習チームの鈴木です。

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ランタイムの作成より、先ほど作成したランタイムテンプレートを選択し、作成を押しました。

Vertex AIランタイムの作成

ランタイムが作成されました。

作成されたランタイム

ランタイムは同画面から削除することができます。使い終わったら消しておくのがよさそうです。

3. ノートブックからの接続

ノートブックを作成し、作成したランタイムに接続しました。

まず、ノートブックを作成ボタンを押して新しくノートブックを作成しました。

ノートブックを作成

ノートブックが作成されたので、接続よりランタイムに接続を押しました。

ランタイムに接続

Vertex AIランタイムへの接続から、作成したランタイムを選択して接続を押し、接続しました。

Vertex AIランタイムへの接続

RAMとディスクのメトリクスが表示されて、接続されたことを確認できました。

接続済み

アイドル状態でのシャットダウンの確認

ランタイムテンプレートで設定したアイドル状態でのシャットダウンは、記事執筆時点ではExperimentalの機能ですが、せっかくなのでどのような機能なのか確認してみました。

今回作成したランタイムテンプレートでは10分に設定していたので、上記で記載したランタイムを作成した後、何も操作せず10分程度待ってからランタイムタブを確認しました。

以下のようにステータスが停止済みとなることを確認できました。

シャットダウンされたランタイム

アクセラレータとしてGPUを使用する

Colab Enterpriseでは、ランタイムテンプレートで指定するマシンタイプによってはアクセラレーターを設定することができます。

例えば、コンピューティングの構成でn1-standard-4マシンタイプを選択し、アクセラレータとしてNVIDIA Tesla T4を2つ設定できました。

アクセラレータの指定

アクセラレータタイプやその枚数はマシンタイプによって組み合わせや上限があるものの、かなり柔軟に設定ができるので、複数GPU環境でプロトタイピングや検証をしたい時には非常に使いやすいように思いました。

ランタイムを作成してノートブックから接続し、nvidia-smiでGPUを確認すると、確かにNVIDIA Tesla T4が2つ確認できました。

nvidia-smiの結果

Tensorflowからも認識できていました。

Tensorflowから認識

最後に

一般提供が開始されたColab Enterpriseで、ランタイムテンプレートを作成しノートブックから接続するところまでを確認しました。

また、アクセラレータを選び、非常に簡単に複数GPUを割り当てたノートブック環境を作成できることも確認しました。

参考になりましたら幸いです。

ほかに参考にした資料