Colab Pro/Pro+/Pay As You Goとは? 無料版との違い、比較表Google Colaboratory入門

Colabは無償で使えるが、実行時間など制限もある。この制限を低減できる上位版のColab Proと、最上位版のPro+、従量課金版のPay As You Goを紹介。GPUや実行時間、メモリ、ディスクサイズ、Proのみで使えるターミナル機能、Pro+のみで使えるバックグラウンド機能などについて説明する。

» 2023年10月02日 05時00分 公開
[一色政彦デジタルアドバンテージ]
「Google Colaboratory入門」のインデックス

連載目次

2023年9月27日の最新情報に合わせて改訂しました(最初の公開は2020年3月17日)。主にGPUが選択可能になった点とColab Enterpriseの情報を追記し、全ての利用パターンで再検証して全面的に最新の内容にアップデートしました。


 機械学習/データサイエンス分野で特に人気の(Pythonなどの)実行環境であるGoogle Colaboratory(以下、Colab)は無償で使えるものの、無制限ではない。実行時間やメモリ容量などに制限がある。こういった制限を低減する有償プロ版「Colab Pro」が2020年3月に発表され、米国とカナダのみで申し込みできる状況だったが、それから1年後の2021年3月19日以降、日本でも申し込み可能になった(図1)。さらに、より強力な有償プロプラス版「Colab Pro+」が2021年8月に発表され、同日から日本でも申し込み可能になり、その約1年後の2022年9月29日、従量課金版「Pay As You Go」(=使った分だけ支払う)という新しい有償プランが追加され、それに合わせて既存のPro/Pro+(=毎月定期購入するサブスクリプション制)にも「コンピューティングユニット(Computing Units)」と呼ばれる制度が新たに導入された。さらに2023年9月からは「Colab Enterprise」という、Colabの使いやすさと企業向けセキュリティ&コンプライアンスのサポートを組み合わせた従量課金サービスが、Google CloudのVertex AI Notebooks上で提供開始されている。

 また今後、Colab Pro/Pro+などに、AIによるオートコンプリート(自動補完)機能や、自然言語のテキストからコードを生成するAI機能、チャットAIによるコーディング支援機能を搭載予定と、2023年5月に発表されている。ちなみにいずれのAIも、大規模言語モデル「PaLM 2」をベースに構築されたコーディング用モデル「Codey」が用いられている。2023年9月27日現在、これらのAI機能は米国在住のユーザーに提供開始されており、順次、他の国にも提供を広げる予定となっているが、日本にはまだ提供されていないので筆者は動作を確認できていない(よって本稿では説明を割愛するので、詳しくは「こちらの記事」を確認してほしい)。

図1 2021年3月19日当日にDeep InsiderのXアカウントでツイートした内容(この機会にXフォローもお願いします!)


 本稿では、「Colab ProやPro+にはどのような機能があるのか?」「Pay As You Goも含めた各環境のスペックはどうなっているか?」について、無償版と有償のPro/Pro+/Pay As You Go(本稿ではまとめて「有償版」と表記)の違いを比較表で示した後、項目ごとに違いを紹介していく。本題に入る前に、コンピューティングユニット制の内容と、無償版の利点と欠点を示しておこう。

コンピューティングユニットについて

 コンピューティングユニット(=コンピューティング使用量を表現する単位)は、事前にチャージしておく電子マネー(例:交通系のSuicaなど)の仕組みに似ており、都度払いのPay As You Goではコンピューティングユニットを100もしくは500ずつ購入(=チャージ)できる。定期購入のProプランやPro+プランを契約しておく必要はないので、普段は無償版を使って、本当に必要になった時にだけ都度払いのPay As You Goを利用すればよい。コンピューティングユニットには有効期限があり、90日間で使い切らないと失効してしまうので注意してほしい。

 コンピューティングユニットは特にGPU(もしくはTPU)を使用する際に必要となるので、GPUを使わずCPUだけを使うなら、基本的に有償版ではなく無償版を使えばよい。

 有償のProを契約している場合は100、Pro+の場合は500のコンピューティングユニットが、毎月自動的に割り当てられる。Pro/Pro+でコンピューティングユニット数が足りなくなったら、都度払いのPay As You Goで追加購入できる。

 ここまでに100500というコンピューティングユニット数が出てきたが、「その数でどれくらい使えるか?」が分からないだろう。筆者が調査した限りでは、CPU/GPU/TPUのいずれかを選択した場合に使用される1時間当たりのコンピューティングユニット数は以下の箇条書きの通りだった(各数値は2023年9月27日現在のもので、筆者が試した範囲でしかなく、常にこの数値のままとは限らないので注意してほしい)。なおGPUには、無償版でも使える「T4」と有償版で使える「V100」「A100」という3種類が用意されている(各GPUの内容については後述する。以前はランダムに割り当てられていたが、手動で選択できるようになった)。以下の( )内は「各コンピューティングユニット数が100ある場合、何時間、使用できるか?」を計算した例である。

  • CPU: 0.08(1250時間相当=約52日間相当)
  • T4 GPU: 1.96(約51時間相当=約2日間相当)
  • V100 GPU: 5.36(約18時間30分相当)
  • A100 GPU: 13.08(約7時間30分相当)
  • TPU: 1.96(約51時間相当=約2日間相当)

Colab無償版の利点と欠点

 Colabは、機械学習やデータサイエンスの作業を効率化するために、グーグルにより無料で提供されている。環境構築が不要でブラウザーからすぐに機械学習のPythonコード(もしくは統計処理のRコード)を実行でき、そのコードを含むノートブックを簡単に共有できるなどのメリットがある。何よりGPUに無料でアクセスできる点がありがたい。生成系AIやディープラーニングといえばGPUで高速化を図りたい場面がよくあるが、Colabを使えば自前の環境を用意しなくてもよいというメリットがある。無償版でも、ターミナル機能(詳細後述)やバックグラウンド実行(詳細後述)を除き、ほぼ全ての機能が利用できる。

 ただし、欠点がないわけではない。具体的には、サービスの持続可能性を確保したり、乱用を防いだりするために、リソースに以下のような制限が設けられているのだ。

  1. GPUを使う場合、高速なV100/A100 GPUは選択できない
  2. 最長12時間、実行すると自動的にリセットがかかる
  3. 大きなデータを読み込んで処理するとメモリ不足に陥る

 いずれの制限も大きなデータを扱う生成系AI/ディープラーニングなどの作業時に問題となりやすい。例えば1日中、Colabノートブックで作業をしている場合、2番目の制限により、突然リセットがかかって、最初から実行し直さなければならなくなるといったことがある。また無償版では、「バックエンドを割り当てられませんでした: GPU/TPUを使用するバックエンドは利用できません。アクセラレータなしでランタイムを使用しますか?」というエラーメッセージとともにGPU/TPUの利用ができない場合がある。

 こういった制限を大幅に低減してくれるのがColab ProやPro+、Pay As You Goである(あくまで低減であり、無制限ではないことに注意してほしい)。

Colab無償版と有償版の比較

 Colab無償版とColab Pro/Pro+有償版の概要は下記リンク先のColabノートブックにまとめられているので、必要に応じて参照してほしい。

 無償版と、有償のPro/Pro+/Pay As You Goの違いをまずは比較表で示す(表1)。各数値やGPUは2023年9月27日現在のもので、筆者が試した範囲でしかなく、常にこの数値のままとは限らないので注意してほしい。以下で単に「Pay As You Go」と記載している場合は、「Pro/Pro+で追加購入」という意味ではなく、「Pro/Pro+を契約していない状態でPay As You Goだけを利用してコンピューティングユニットを購入した状態」を指すこととする。

Colab 無償版 Pay As You Go 有償Pro版 有償Pro+版
GPU Tesla T4(16GB) Tesla T4(16GB)か、
Tesla V100(16GB、SXM2)か、
Tesla A100(40GB、SXM2)
実行時間 最長12時間 最長12〜24時間 最長24時間(より安定)
メモリ 12.68GB 12.68GB [CPU/T4 GPU/V100 GPU/TPU]×【暗黙的に標準VM】の場合
83.48GB [A100 GPU]×【暗黙的にハイメモリVM】の場合
12.68GB [CPU/T4 GPU/V100 GPU/TPU]×【標準VM】の場合
51.01GB [CPU/T4 GPU/V100 GPU]×【ハイメモリVM】の場合
83.48GB [A100 GPU]×【暗黙的にハイメモリVM】の場合
35.24GB [TPU]×【ハイメモリVM】の場合
ディスク 107.72GB [CPU/TPU]の場合
78.19GB [GPU]の場合
225.83GB [CPU/TPU]の場合
166.77GB [GPU]の場合
ターミナル × × ○使える ○使える
バックグラウンド実行 × × × ○使える
費用(税込み) 無料 都度1179円/5767円 月額1179円 月額5767円
表1 Google Colabの無償版との比較表
いずれも2023年9月27日時点のもの。

 各項目の詳細についてそれぞれ説明していこう。

高速なGPU

図2 無償版と有償版でnvidia-smi(NVIDIA GPUデバイス監視)コマンドを実行した例 図2 無償版と有償版でnvidia-smi(NVIDIA GPUデバイス監視)コマンドを実行した例

 無償版や有償のProPro+Pay As You Goでランタイムのタイプとして[T4 GPU]を選択した場合は、

というGPUを搭載した仮想マシン(VM)がWebブラウザーで表示中のColabノートブックに割り当てられる(図2の上)。

 ProPro+Pay As You Goでランタイムのタイプとして[V100 GPU]を選択した場合は、

もしくは[A100 GPU]を選択した場合は、

などのより高速なGPUが優先的に割り当てられる(図2の真ん中と下)。混み合っている場合には、より下位のGPU(例えばA100を選択した場合に、「選択した GPU タイプは使用できませんでした。現在 V100 に接続しています。」などのメッセージが表示されて、より下位のV100など)が割り当てられることもある。また、TPUも有償版の方が無償版よりも優先的に利用できる。

 ColabノートブックでCPU/GPU/TPUを切り替えるには、メニューバーの[ランタイム]−[ランタイムのタイプを変更]をクリックすると表示される図3のダイアログで、[ハードウェア アクセラレータ]欄で「CPU」「T4 GPU」「A100 GPU」「V100 GPU」「TPU」から選択した上で、[保存]をクリックするだけである。

図3 CPU(=None)/GPU/TPUを切り替えるための設定 図3 CPU(=None)/GPU/TPUを切り替えるための設定

 無償版は、GPU/TPU使用に強い制限が課されており、GPU/TPUを使いたいときに使えないことがある。

 当然ながら、上記の「Colabで割り当てられるGPU」は2023年9月27日現在のもので、将来的に変更される可能性があるので注意してほしい。

より長い実行時間

図4 無償版でよく起こるタイムアウトの例 図4 無償版でよく起こるタイムアウトの例

 無償版では、

  • 最長12時間

また、有償のProPay As You Goでは、

  • 最長12〜24時間(コンピューティングユニット数の残量に応じて変わる)

まで、Colabノートブックに接続したままにできる。ただし、使っていないアイドル状態が最長90分ほど続くと、タイムアウトになって自動的に接続が切断される(図4)。

 有償のPro+では、

  • 最長24時間(つまり2倍になる)

まで、Colabノートブックに接続したままにできる。Pro+では、Colabノートブックに接続したままとなり、アイドル状態によるタイムアウトも生じにくくなる(接続が保証されるわけではない)。

 注意してほしいのが、あくまで各時間は「最長」という点である。実際には、例えば無償版で9時間程度や有償Pro版で19時間程度などより短い時間までしか接続を維持できなかったり、例えば無償版で30分などより短いアイドル時間でタイムアウトしたりすることが多い。有償Pro+版では、接続の安定性がProよりも高まるとのこと。

より大きなメモリ

図5 無償版と有償版でのメモリ(RAM)サイズの違い 図5 無償版と有償版でのメモリ(RAM)サイズの違い

 メモリのサイズは、ランタイムのVMが「標準」仕様か「ハイメモリ」仕様(=RAM増量ランタイム)かによって異なる。無償版では常に「標準」VMとなり、有償版のPro/Pro+では「標準」VMか「ハイメモリ」VMかを選択できる。Pro/Pro+/Pay As You Goでプレミアムな「A100 GPU」を選択している場合は、暗黙的に「ハイメモリ」VMとなる。

 組み合わせがやや複雑で一覧しづらいが、「ハイメモリ」VMや、プレミアムな「A100 GPU」を選択することで、より容量の大きいメモリになることをざっと確認してほしい。

 無償版では基本的に、

  • [CPU/T4 GPU/TPU]×【暗黙的に標準VM】の場合:
    • RAM:12.68GB、CPU:1コア2スレッド

また、Pay As You Goでは基本的に、

  • [CPU/T4 GPU/V100 GPU/TPU]×【暗黙的に標準VM】の場合:
    • RAM:12.68GB、CPU:1コア2スレッド
  • [A100 GPU]×【暗黙的にハイメモリVM】の場合:
    • RAM:83.48GB、CPU:6コア12スレッド(つまり6倍になる)
  • 筆者が試した限りでは、A100を選択しても下位のV100が割り当てられることがほとんどだった

また、ProPro+では基本的に、

  • [CPU/T4 GPU/V100 GPU/TPU]×【標準VM】の場合:
    • RAM:12.68GB、CPU:1コア2スレッド
  • [CPU/T4 GPU/V100 GPU]×【ハイメモリVM】の場合:
    • RAM:51.01GB、CPU:4コア8スレッド(つまり4倍になる)
  • [A100 GPU]×【暗黙的にハイメモリVM】の場合:
    • RAM:83.48GB、CPU:6コア12スレッド(つまり6倍になる)
  • [TPU]×【ハイメモリVM】の場合:
    • RAM:35.24GB、CPU:20コア40スレッド(つまり20倍になる)
  • 筆者が試した限りでは、ProではA100を選択しても下位のV100が割り当てられることがほとんどだったが、Pro+ではかなり優先的にそのままA100が割り当てられた

のメモリサイズの仮想マシン(VM)にColabノートブックが割り当てられる(あくまで筆者が得た数値。これらの数値より性能が高い/低いVMが割り当てられる可能性もある)。

 まとめると、ハイメモリVMを選択することで、標準VM(12.68GB)と比べてPro/Pro+は約4倍(51.01GB)のメモリサイズとなる。Pro/Pro+/Pay As You Goでプレミアムな「A100 GPU」を選択して実際にA100が割り当てられれば、約6.5倍(83.48GB)とさらに大きなメモリサイズとなる。A100を優先的に割り当ててほしい場合は、Pro+を契約するとよい。

 有償版のProかPro+でハイメモリVMを指定するには、メニューバーの[ランタイム]−[ランタイムのタイプを変更]をクリックすると表示される図6のダイアログで、[ランタイムの仕様]欄で「ハイメモリ」をオンにして[保存]をクリックするだけである。

図6 ハイメモリVMを指定するための設定 図6 ハイメモリVMを指定するための設定

 なお、初期の頃は無償版でもメモリが足りずにクラッシュすると、RAM増量ランタイム(=ハイメモリVM)へアップグレードを促される場合があったが、この機能はなくなってしまった。2023年9月27日現在では「使用可能なRAMをすべて使用した後で、セッションがクラッシュしました。RAMを増量ランタイムに関心をお持ちの場合は、Colab Proをご覧ください。」というメッセージが表示され、Proの利用が促されるように変更されている。また、Pro/Pro+の標準VMでは「RAMを増やす」を選択できるようになっており、実際に増やすとハイメモリVMに切り替わる。ProですでにハイメモリVMの場合は、Pro+の利用が促される。Pro+ですでにハイメモリVMの場合は、ランタイムログの表示が促される。

より大きなディスク

図7 無償版と有償版でのディスク容量の違い 図7 無償版と有償版でのディスク容量の違い

 無償版や有償のPay As You Goでは、

  • [CPU/TPU]の場合:
    • 107.72
  • [GPU]の場合:
    • 78.19GB

が仮想マシン(VM)のディスクサイズである。

 ProPro+では、

  • [CPU/TPU]の場合:
    • 225.83GB
  • [GPU]の場合:
    • 166.77GB

がディスクサイズとなる。

 ColabはGoogleドライブと連携しているので、ディスクサイズが足りない場合は、Googleドライブをデータ置き場として利用したりできる。Googleドライブは無償で15GBが使えるが、必要に応じてGoogle Oneストレージの100GB/200GB/2TBといったプランを利用すればよいだろう。

ターミナル機能

図8 無償版GPUと有償Pro/Pro+版でのターミナル機能の違い 図8 無償版GPUと有償Pro/Pro+版でのターミナル機能の違い

 ProPro+でのみ、

  • ターミナル:OSのコマンドを実行できるコンソール環境

が使える。Bashシェル環境となっており、リモートにあるLinux OSをターミナルで操作する感覚でColabが使える。

 もちろん無償版でも、

  • !lsのように、行頭に!を付けると、OSのコマンドを実行可能

である。しかしターミナルを使えば、より効率的なシェルコマンドの作業ができるだろう。

バックグラウンド実行

 Pro+のみがサポートするバックグラウンド実行とは、実行中のColabノートブックのタブやPCを閉じても(図9)、実行中の処理が最長で24時間(=前述の「より長い実行時間」)までバックグラウンドで継続されるようになる機能である(図10)。

図9 実行中のColabノートブックを閉じてもバックグラウンドで実行は継続 図9 実行中のColabノートブックを閉じてもバックグラウンドで実行は継続

図10 Colabノートブックを再オープンすると実行結果は保存されている 図10 Colabノートブックを再オープンすると実行結果は保存されている

 バックグラウンド実行中での各セルの出力などを含むノートブックが、そのままGoogleドライブに保存される。

 なお無償版でも、ある程度の時間はバックグラウンド実行されるが、その実行継続に依存してはならない。Pro+と異なり、ユーザーの操作が停止すると、いずれ実行は中断され、VMも削除されるとのこと。

 Proでは、無償版よりも長くバックグラウンド実行され、各セルの出力などを含むノートブックはGoogleドライブに保存されるとのことである。

費用

図11 有償版のPay As You Go/Pro/Pro+の費用 図11 有償版のPay As You Go/Pro/Pro+の費用

 2023年9月27日現在では、Pay As You Go100コンピューティングユニットが月額1179円(税込み)、Pay As You Go500コンピューティングユニットが月額5767円(税込み)で都度払い、Proが月額1179円(税込み)、Pro+が月額5767円(税込み)でサブスクリプション(毎月定期購入)となっている。サブスクリプションはいつでも解約可能なので、Colabユーザーはぜひ試しに講読してPro/Pro+機能を活用してみてほしい。

 Colabでは、限られたリソースを最大限に活用して、できるだけ多くのユーザーに、より高速なGPU、より長い時間の接続維持、より多くのメモリをできるだけ低価格で提供するため、リソース使用量の上限やハードウェアの可用性を臨機応変に調整していく必要があるとのこと。この条件下において、ユーザー数の増減に無償版の制限は大きな影響を受けている傾向にあるのではないかと思う。実際に現状では無償版と有償版には大きな差が付けられているようである。

コンピューティングユニット数を節約する方法

 コンピューティングユニット制が導入されているため、「できるだけコンピューティングユニット数を節約したい」と考える人は少なくないだろう。そのために活用できる機能が用意されているので、ここで紹介しておこう。具体的にはPythonコードを使って「ランタイムを終了する」ことができる。ノートブックの最後に下記のコードを常に記載しておけば、何も実行していないのに、コンピューティングユニットが消費されてしまうのを避けられる。有償版で必須のコードである。

from google.colab import runtime
runtime.unassign()

ランタイムを終了するためのPythonコード

利用上の制限事項について

 2022年5月末に更新された公式「よくある質問」ページによると、大量のコンピューティングリソースが必要となる使用方法を中心に数多くの制限が追加されている。具体的には、

  • ファイルのホスティングや、メディア配信、人間がインタラクティブに入力して結果を得る利用に関連していないWebサービスの提供
  • 大量のデータのダウンロードや、ピア・ツー・ピアのファイル共有への関与
  • SSHの使用や、リモートデスクトップ、リモートUIなどの遠隔操作
  • リモートプロキシーへの接続
  • 暗号通貨マイニング
  • サービス拒否攻撃の実行
  • パスワードの解読
  • 複数アカウントの使用によるアクセス、またはリソース使用量の制限の回避
  • ディープフェイクの作成

などである。特に「SSHの使用」に対する制限が設けられたことで、ColabのコンピューティングリソースをVisual Studio CodeからSSH経由で利用することが規約上はできなくなっているので注意してほしい。


 以上、本稿がPay As You Goや、Pro/Pro+サブスクリプションの講読を判断するヒントとなっていればうれしい。

 ちなみにColabではフィードバックをユーザーの皆さんから募集しているとのことである。フィードバックは[ヘルプ]メニューから送信できる。また、Colabを使っていると、アンケートやフィードバックの入力画面が表示されることがあるので、そこでフィードバックを送ってもよいだろう(筆者もフィードバックを送ったことがある)。もしくはXの@GoogleColabアカウントに送ってもよい。一般的な問題(不具合など)や質問については、「GitHub Issues: googlecolab/colabtools」に書き込んでほしいようである。問題については、毎週、トリアージ(重症度に基づく優先順位決め)を行っているとのことだ。

「Google Colaboratory入門」のインデックス

Google Colaboratory入門

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。