🐍

2024年版: 俺たちは最新のGoogle Colabをまだ知らない

2024/07/16に公開

前置き

Web UI上でPythonを書いて実行できる,Google ColabはGoogle Compute Engine(AWSでいうEC2)をバックエンドとしています.

私の中ではPython 3.8でVMのOSはUbuntu 20.04だったのですが,最近触ったところ,アップデートに気づいたのでメモがてらまとめました.

※ 本記事はGoogle Colabの解説をしていますが,あまりプログラミング初心者向けではないかもしれません.

Ubuntuのバージョンは22.04

以下のコマンドで確認しました.

!cat /etc/os-release

出力はこのような感じ.

PRETTY_NAME="Ubuntu 22.04.3 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.3 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy

ちなみに,Google Colabの公式ドキュメントには Ubuntu 18.04.3 でした.補足に書きますが,おそらく2017年かそれより前に書かれたものと推測されます.時が経つのは早いものです.

The entire colab runs in a cloud VM. Let's investigate the VM. You will see that the current colab notebook is running on top of Ubuntu 18.04.3 LTS (at the time of this writing.)

Google Colab Tutorial

Pythonのバージョンは3.10.12

Pythonのバージョンは3.10です.下記のコマンドで確認できます.

!python --version

Python 3.10.12

Python 3.9, 3.10では型に関する記法や新しいSyntaxが追加されています.これらの文法が実際にGoogle Colab上で動くか確認してみましょう.

UnionをPipe記法が動くか確認する

Python3.10の追加機能で,Union型をパイプで書くことができます.

def hello_world(age: int|str) -> None:
    print(f'こんにちは、{age}歳です')


hello_world(20)

https://peps.python.org/pep-0604/

実際に記述してみたところ,問題なさそうでした.

Match文が動くか確認する

もう一つぐらい試してみます.Python 3.10ではmatch文が追加されています.

def http_status(status):
    match status:
        case 400:
            return "Bad request"
        case 404:
            return "Not found"
        case 418:
            return "I'm a teapot"
        case _:
            return "Something else"

print(http_status(200))
print(http_status(400))

https://peps.python.org/pep-0634/

こちらも問題なく動いていそうです.

HTTP Response 418: I'm a teapotってなんだよという方は以下をご覧ください.

https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/418

drive.mountは不要

ディレクトリのボタンをクリックします.Google Driveのマークを押すと確認画面が出てくるので承認します.

するとGoogle DriveがMountされます! 早速,tree commandで確認してみましょう. tree commandはaptでインストールできます.

!apt install tree

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following NEW packages will be installed:
  tree
0 upgraded, 1 newly installed, 0 to remove and 45 not upgraded.
Need to get 47.9 kB of archives.
After this operation, 116 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu jammy/universe amd64 tree amd64 2.0.2-1 [47.9 kB]
Fetched 47.9 kB in 1s (66.6 kB/s)
Selecting previously unselected package tree.
(Reading database ... 123576 files and directories currently installed.)
Preparing to unpack .../tree_2.0.2-1_amd64.deb ...
Unpacking tree (2.0.2-1) ...
Setting up tree (2.0.2-1) ...
Processing triggers for man-db (2.10.2-1) ...
!tree -L 2

.
├── drive
│   └── MyDrive
└── sample_data
    ├── anscombe.json
    ├── california_housing_test.csv
    ├── california_housing_train.csv
    ├── mnist_test.csv
    ├── mnist_train_small.csv
    └── README.md

3 directories, 6 files

つまり,もうこれを書かなくても良いということです!嬉しい!

from google.colab import drive
drive.mount('/content/drive')

AI補完が無料ユーザーでも動く

Google Colabは2023年6月27日にAIの機能を追加しています.

当初はUSのPro+(一番高いプラン)のユーザーのみだったのですが,実は現在,日本の一般ユーザーでも使えます.こちらは,2024年の6月18日にアナウンスがありました.確認して気づいたのですが,最初のリリースからちょうど1年ぐらいですね.

つまり,一般ユーザーでもこのような補完を使うことができます.

普段GPUぶん回す職種ではないのでColab Proに回ってきたら契約して使おうかなと思っていたのですが,一般ユーザーにも開放になって正直驚きました.

まとめ

Google Colabの最新のインフラや機能を確認してきました.
最新動向が気になる方は,Google Colabは公式がアップデートをアナウンスしてくれるので公式TwitterをFollowをオススメします.

https://x.com/GoogleColab

補足: Compute ResourceをGoogle ColabのUIで確認する

Google ColabのUI上でCompute Resourceを確認する場合,[Runtime] > [View Resources]をクリックします.

補足: Google Colabの公開は2017年後半

調べたところ,下記の記事に記載がありました.

Google have released Colaboratory: a web IDE for python, to enable Machine Learning with storage on the cloud — this internal tool had a pretty quiet public release in late 2017, and is set to make a huge difference in the world of machine learning, artificial intelligence and data science work.

https://medium.com/kainos-applied-innovation/how-google-has-crushed-it-with-colaboratory-5664b5fb5856

また,Google ColabのGitHubのOrganizationからcolab-toolsのcommit logを辿っていくと2017年の下記のCommitに当たります.

https://github.com/googlecolab/colabtools/commits/main/?since=2017-11-15&until=2017-11-30

参照:
https://github.com/googlecolab

Discussion