[Colab] Googleの無料GPU環境を使うための準備
Google Colaboratory (略称: Colab) はGoogleが提供する無料の計算環境です。 ウェブブラウザ上でコードを記述して実行できるインタラクティブな操作ができます。 さらにGPUやTPUを無料で利用できる素晴らしい計算環境です。 本記事ではColabを利用するための計算環境の構築手順を紹介します。 またハードウェアやエディタといった計算環境のカスタマイズの方法や、自分で作成したプログラム資産をColab上でも活用する方法も紹介します。
目次
Notebookを作成
Google Driveでフォルダを作成します。 以下の例ではja-language-modelというフォルダとします。 このフォルダへ移動して右クリックを押し、「その他」→「Googlee Colaboratory」をクリックします。
その他にGoogle Colaboratoryが出てこない場合、フォルダ名の右にある下三角のポチからドロップダウンで「アプリで開く」→「アプリを追加」からGoogle Colaboratoryをインストールします。
キーバインドをVimにする
普段エディターとしてVimを使っている方は以下の通り設定することで、Colab上でもVimで編集ができます。エディターがVimでなくてもよい方はこの章は飛ばしてください。
まず画面右上にある歯車の設定アイコンをクリックします。
Editorをクリックします。
エディターにVimを設定します。
これでVimをエディターにすることができました。
GPUを使う設定にする
ハードウェアにGPUを利用したい方は以下の通り設定します。GPUを必要としない方はこの章は飛ばしてください。
EditタブのNotebook settingをクリックします。
Hardware settingのGPUをクリックします。
以下を実行して True
が出力されれば設定ができています。
データセットのダウンロード
ノートブックのセルで先頭に !
をつけると、その行はLinuxコマンドとして実行されます。
wget
コマンドを使えば、通常のLinuxマシンのようにデータをダウンロードできます。
この記事では jawiki8 を利用させていただきます。
!wget https://s3-ap-northeast-1.amazonaws.com/dev.tech-sketch.jp/chakki/public/ja.text8.zip
結果は以下の通りです。
--2020-03-11 05:47:33-- https://s3-ap-northeast-1.amazonaws.com/dev.tech-sketch.jp/chakki/public/ja.text8.zip
Resolving s3-ap-northeast-1.amazonaws.com (s3-ap-northeast-1.amazonaws.com)... 52.219.4.126
Connecting to s3-ap-northeast-1.amazonaws.com (s3-ap-northeast-1.amazonaws.com)|52.219.4.126|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 33905114 (32M) [application/zip]
Saving to: ‘ja.text8.zip’
ja.text8.zip 100%[===================>] 32.33M 15.4MB/s in 2.1s
2020-03-11 05:47:36 (15.4 MB/s) - ‘ja.text8.zip’ saved [33905114/33905114]
自作したPythonモジュールを読み込む
自作したモジュールをColabで利用する場合、Google Drive上にプログラムをアップロードする必要があります。 まずはノートブックからGoogle Driveのフォルダを参照できるように以下を実行してフォルダをマウントします。
Google Driveをマウント
from google.colab import drive
drive.mount('/content/drive')
<URL>
にブラウザでアクセスし、出てきた認証コードを貼り付けて実行します。
Go to this URL in a browser: <URL>
Enter your authorization code:
これで drive/My Drive
にGoogle Driveのフォルダがマウントされます。
PythonプログラムをGoogle Driveへアップロード
次に、自作のクラスを利用できるように、Pythonプログラムをアップロードします。
ここでは以下のようなクラスを実装した lm.py
をアップロードします。
import torch
class LanguageModel(torch.nn.Module):
def __init__(self):
super().__init__()
print("Create Language model")
この lm.py
をja-language-modelフォルダにアップグレードします。
アップロードしたPythonプログラムに含まれるモジュールをimport
自作クラスをノートブックから利用できるようにするために、 sys.path
にパスを追加します。
問題なければ、自作クラスを作成することができます。
まとめ
本記事ではGoogleが提供しているクラウド上の計算資源を利用するための準備を紹介しました。ブラウザから簡単に計算環境を簡単に作成できることがわかります。 またGoogle Driveをマウントすれば、自分のプログラム資源を簡単に活用することもできました。