第1章 Google Colaboratoryの概要
1.1 基本概念の定義
ノートブックは、プログラムコードと説明文を組み合わせた文書形式である。セルは、ノートブック内の編集可能な個別の単位である。セルには、コードを記述する「コードセル」と、説明文を記述する「テキストセル」の2種類がある。ランタイムは、プログラムが実際に実行される環境である。
1.2 Google Colaboratoryとは
Google Colaboratory(以下、Colab)のURLは、https://colab.research.google.com/ である。Googleが提供するクラウドベースのノートブック環境であり、ブラウザ上でPythonコードを編集・実行できるサービスである。オンラインのJupyter Notebookサービスであり、セットアップ不要で無料利用可能である。
ノートブック内のコードは編集・実行が可能であり、クラウドベースで動作するため、PC上での特別なセットアップは不要である。GPU(Graphics Processing Unit、画像処理装置)やTPU(Tensor Processing Unit、機械学習専用プロセッサ)を含むコンピューティングリソースへのアクセスを提供する。
利用にはGoogleアカウントが必要である。ただし、他者が公開したノートブックの閲覧のみであれば、Googleアカウントは不要である。
GPU・TPUを使用すると、大量のデータを並列処理でき、機械学習モデルの学習時間を短縮できる。
1.3 ノートブックの構造
ノートブックは2種類のセルで構成される。コードセルは、Pythonプログラム、コマンド、実行結果を表示する。テキストセルは、説明文、図表を表示する。
1.4 画面構成
Webブラウザ上の画面は、左側メニュー(目次、検索と置換、変数、ファイル)、上部メニューバー、コードセルとテキストセルの追加ボタン、セルの配置エリアで構成される。
1.5 システム制約
Colabのセッション(実行環境が起動している状態)の継続時間は最大12時間である。また、90分間の非アクティブ状態が続くと、セッションは自動切断される。これらの制限により、長時間の処理中や放置中にセッションが切断され、保存していないデータが失われる可能性がある。
セッション内の一時的なファイル(/contentディレクトリ)は、セッション終了時に削除されるため、重要なデータは必ずGoogle Driveに保存する必要がある。
GPU使用量には上限があり、無料版では使用時間や頻度に応じた動的制限が適用される。上限に達すると一時的に利用できなくなる。
1.6 計算リソースと料金体系
多くの基本機能が無料で利用可能である。無料でGPUやTPUを一定時間利用可能であるが、長時間・大規模な利用には制限がある。
Colabには無料版と有料版(Colab Pro、Colab Pro+)が存在する。無料版では、GPUやTPUの使用時間に制限があり、利用状況に応じて一時的にアクセスが制限される場合がある。有料版では、より長時間の利用、優先的なGPUアクセス、より大きなメモリ容量などが提供される。
無料版では最大12時間の実行時間制限がある(利用状況により変動する)。Colab Pro+では、十分なコンピュートユニットがある場合、最大24時間の連続実行が可能である。
1.7 共有機能とデータ保存
作成したノートブックはGoogle Driveに自動保存される。具体的には、Google Driveの「Colab Notebooks」フォルダに保存される。
Google Driveと統合されており、Google Driveに保存されたデータの利用を簡単に行うことができる。Google Driveで変更履歴が自動保存される。複数人での共同編集ができる。編集中は他の編集者の変更がリアルタイムで反映される。
1.8 事前インストールされているライブラリ
NumPy、Pandas、Matplotlib、TensorFlow、PyTorchなど、科学計算・機械学習に必要なライブラリが事前にインストールされている。
事前にインストールされていないライブラリは「!pip」コマンドでインストールすることができる(インストールしたライブラリは、セッション終了後は使えなくなるため、再インストールが必要である)。
1.9 対応ブラウザ
Google Colaboratoryは以下のブラウザで動作する。
- Google Chrome(最新版)
- Firefox(最新版および直前のメジャーバージョン)
- Safari(最新版および直前のメジャーバージョン)
最新版の使用を推奨する。
1.10 他の開発環境との比較
Jupyter Notebookは、ローカル環境で動作し、セットアップが必要だが、時間制限はない。VS Codeおよびその派生版(Windsurfなど)は、統合開発環境であり、多言語対応で拡張機能が豊富である。Google Colaboratoryは、クラウド環境で動作し、セットアップが不要で、GPU・TPUを利用できる。
第2章 Googleアカウントの設定
2.1 Googleアカウントの概要
Googleアカウントは、Googleが提供するオンラインサービスを利用するためのアカウントである。ユーザーIDとパスワードで構成され、利用者が設定する。Google Colaboratoryを含む各種サービスで利用できる。Gmail、Google Drive、Google Cloudなどのサービスと連携する。
2.2 Google ColaboratoryとGoogleアカウント
Google Colaboratoryの利用にはGoogleアカウントが必要である。
Googleアカウントで利用できる機能は以下の通りである。
- ノートブックの新規作成、編集、保存、公開
- Pythonプログラムの編集、実行
- システム操作コマンド(!pip、%cdなど)の実行
- ファイルのアップロード、ダウンロード
Googleアカウントなしで利用できる機能は、他者が公開したノートブックの閲覧である。
2.3 Googleアカウントの取得
Googleアカウントは無料で取得できる。登録に必要な情報は、氏名、メールアドレス、パスワード、電話番号(本人確認用)、生年月日、性別である。
個人情報の取り扱いについて各自で確認し、不安がある場合は取得を控える。
2.4 セキュリティ対策と注意事項
セキュリティ対策と注意事項は以下の通りである。
- 二段階認証を設定する
- 公開ノートブックでは個人情報を記載しない
- アカウント乗っ取り防止のため強固なパスワードを使用する
- 企業や組織での利用時は機密情報の取り扱いに注意する
2.5 Googleアカウント取得手順
- GoogleのWebページを開く(https://www.google.com/)
- 右上のメニューで「アカウント」を選択する
- 「アカウントを作成する」をクリックする
- 表示された画面で「自分用」を選択する(「ビジネスの管理用」はGoogleの有料サービスG Suiteである)
- 以下の情報を登録する
- 姓、名
- 希望するメールアドレス(<ユーザー名>@gmail.com)
- パスワード(2か所に入力)
- 電話番号
- 生年月日、性別
- 本人確認のための電話番号を入力し、「次へ」をクリックする(電話番号はスマートフォンの番号を使用する)
- 本人確認手続きを実行する(電話番号認証により本人確認を行う。電話番号は080-1234-5678、090-1234-5678のように入力する。先頭の0を除く)
第3章 基本的な使用方法
3.1 アクセスとログイン
3.1.1 Google Colaboratoryへのアクセス
WebブラウザでGoogle Colaboratoryにアクセスする。
アクセスURL:https://colab.research.google.com/?hl=ja
3.1.2 ログイン手順
Google Colaboratoryの使用中に「Googleへのログインが必要」と表示された場合、以下の手順でログインする。
- 表示されたログイン画面でGoogleアカウントのIDを入力する
- パスワードを入力する
- 必要に応じて二段階認証を実行する
- ログイン完了後、ノートブックの編集と実行が可能になる
3.2 ノートブックの作成と基本操作
新規ノートブックは、Colabのトップページから「ファイル」→「ノートブックを新規作成」で作成できる。作成されたノートブックは、Untitled*.ipynbという名前でGoogle Driveの「Colab Notebooks」フォルダに自動保存される。
基本的なセル操作:
- セルの実行:
Shift+Enterで実行・次セル移動、Ctrl+Enterで実行のみ - セルの追加:
Alt+Enterで実行・新セル挿入 - セルの種類変更:セル左上のドロップダウンメニューから「コード」「テキスト」を選択
3.3 実行の流れ
ノートブックの基本的な実行の流れは以下の通りである。
- WebブラウザでGoogle Colaboratoryにアクセスする
- Googleアカウントでログインする
- セルの編集と実行を行う
- テキストセルでは説明文を作成する
- コードセルではPythonプログラムを作成し実行する
- 実行順序は通常、上から下へ順次実行する
3.4 プログラムの実行
3.4.1 コードセルの実行
コードセルでは、Pythonプログラムやシステムコマンドの編集と実行が可能である(Googleアカウントでのログインが必要である)。
実行方法は以下の通りである。
- セルを選択する
- 実行ボタンをクリックする、またはShift + Enterキーを押す
- 実行結果がセルの下に表示される
3.4.2 すべてのセルの実行
画面上部のメニューバーで「ランタイム」をクリックし、表示されるドロップダウンメニューから「すべてのセルを実行」を選択する。
Googleアカウントでのログインが求められたときはログインする。
3.4.3 実行がうまく行かない場合の対処法
以下の手順を実行する。
- Googleアカウントでログインしていないときは、ログインを行う。その後、再度、すべてのセルを実行する操作を行う。ログインの操作は、Webブラウザで行う。
- すべてのアクティブなセッション(現在実行中のセッション)を停止する。その後、再度、すべてのセルを実行する操作を行う。そのために、メニューの「ランタイム」、「セッションの管理」と操作する。アクティブなセッションの一覧が表示されるため、「終了」をクリックして、すべてのアクティブなセッションを終了する。
第4章 実践演習
4.1 演習の目的
本演習では、Google Colaboratoryでのノートブック作成、コードセルの作成、Pythonプログラムの実行を実践する。
4.2 演習手順
4.2.1 ノートブックの新規作成
- Google ColaboratoryのWebページを開く(https://colab.research.google.com)
- 「ファイル」で「ノートブックを新規作成」を選択する
- Googleアカウントでのログインが求められたときはログインする
4.2.2 変数の代入
- コードセルを新規作成する(メニューの「+ コード」をクリックする)
- コードセルにPythonプログラムを記述する
x = 100
変数xに整数値100を代入する。
4.2.3 条件分岐
- コードセルを新規作成する(メニューの「+ コード」をクリックする)
- コードセルにPythonプログラムを記述する
if x > 20:
print("big")
else:
print("small")
変数xの値が20より大きい場合は"big"、そうでなければ"small"を出力する。
記述のポイントは以下の通りである。
- if x > 20の直後に「:」(コロン)を記述する
- elseの直後に「:」(コロン)を記述する
4.2.4 ループ処理
- コードセルを新規作成する(メニューの「+ コード」をクリックする)
- コードセルにPythonプログラムを記述する
# ループ処理
s = 0
for i in [1, 2, 3, 4, 5]:
s = s + i
print(s)
リスト[1, 2, 3, 4, 5]の各要素を順番に変数sに加算し、最終結果(15)を出力する。
記述のポイントは以下の通りである。
- for i in [1, 2, 3, 4, 5]の直後に「:」(コロン)を記述する
- 字下げ(インデント)は半角スペース2つである
4.2.5 実行と結果の確認
- コードセルを順次実行し、実行結果を確認する
各コードセルの実行手順は以下の通りである。
- 最初のコードセル(変数代入)の実行ボタンをクリックする
- 2番目のコードセル(条件分岐)の実行ボタンをクリックする("big"が出力される)
- 3番目のコードセル(ループ処理)の実行ボタンをクリックする("15"が出力される)
セルは上から順番に実行する。
第5章 データ保護の重要事項
5.1 セッション切断のリスク
Colabのセッションは、以下の条件で自動的に切断される。
- 最大12時間の連続使用
- 90分間の非アクティブ状態
セッション切断時、/contentディレクトリに保存されたファイルは全て削除される。これにより、保存していないデータやモデルが失われる。
5.2 Google Driveへの定期保存
重要なデータは、必ずGoogle Driveに保存する必要がある。以下に、データ保護のための基本的な方法を示す。
5.2.1 Google Driveのマウント
Google Driveをマウント(接続)することで、クラウドストレージのファイルに直接アクセスできる。
from google.colab import drive
# Google Driveをマウント
drive.mount('/content/drive')
# マウント確認
!ls /content/drive/MyDrive/
初回実行時は、認証画面が表示されるため、指示に従って認証を行う。
5.2.2 モデルの定期保存
モデルの学習中に定期的に保存する設定方法である。
from tensorflow.keras.callbacks import ModelCheckpoint
# モデルを自動的にGoogle Driveに保存
checkpoint = ModelCheckpoint(
'/content/drive/MyDrive/model_checkpoint.h5',
save_best_only=True,
save_freq='epoch'
)
model.fit(train_data, epochs=100, callbacks=[checkpoint])
5.2.3 重要データの即座保存
処理結果や重要なデータを即座にGoogle Driveに保存する方法である。
import json
import numpy as np
# 結果辞書の保存
results = {'accuracy': 0.95, 'loss': 0.05}
with open('/content/drive/MyDrive/results.json', 'w') as f:
json.dump(results, f)
# 処理済みデータの保存
np.save('/content/drive/MyDrive/processed_array.npy', processed_array)
5.3 データ保護のベストプラクティス
- 作業開始時:必ず最初にGoogle Driveをマウントする
- 学習中:ModelCheckpointなどで定期的に保存する
- 処理完了後:結果を即座にGoogle Driveに保存する
- 長時間処理:定期的にブラウザを確認し、セッションが切断されていないか確認する
第6章 パッケージ管理とファイル操作
6.1 パッケージのインストール
事前にインストールされていないライブラリは、!pipコマンドでインストールできる。
# 基本的なインストール
!pip install package_name
# 出力を抑制してインストール
!pip install -q package_name
# 特定バージョンを指定してインストール
!pip install package_name==1.2.3
# アップグレード
!pip install package_name --upgrade
インストールしたライブラリは、セッション終了後は使えなくなるため、新しいセッションでは再インストールが必要である。
6.2 ファイルのアップロードとダウンロード
6.2.1 画面操作によるファイルアップロード
Google Colaboratoryへのファイルアップロード方法は以下の通りである。
- 左側メニューから「ファイル」アイコンをクリックする
- 「アップロード」ボタンをクリックする、またはファイルをドラッグ&ドロップする
- アップロードされたファイルは一時的に保存され、セッション終了時に削除される
6.2.2 コードによるファイルアップロード
ローカルファイルをColabにアップロードするには、以下のコードを使用する。
from google.colab import files
uploaded = files.upload()
実行すると、GUIでファイル選択ダイアログが表示され、ブラウザ経由でファイルを選択できる。アップロードされたファイルは、/contentディレクトリに配置される。
6.2.3 ファイルのダウンロード
処理結果をローカルにダウンロードするには、以下のコードを使用する。
from google.colab import files
files.download('filename.txt')
6.3 作業ディレクトリの変更
マジックコマンド(Jupyter Notebook系の環境で使用できる特殊なコマンド)を使用して、作業ディレクトリを変更できる。
# 作業ディレクトリをGoogle Drive内に変更
%cd /content/drive/MyDrive/project
第7章 日本語環境と可視化
7.1 日本語フォントの設定
Colabでは標準で日本語フォントが含まれていないため、日本語を含むグラフを作成する際は専用の設定が必要である。
最も簡単な方法として、以下のライブラリを使用する。
# 日本語フォント設定ライブラリのインストールと読み込み
!pip install -q japanize-matplotlib
import japanize_matplotlib
このライブラリにより、matplotlibで日本語表示が可能になる。
7.2 画像の表示
7.2.1 matplotlibによる基本的なグラフ表示
日本語ラベルを含むグラフを表示する基本的な方法を示す。
# 必要なライブラリのインポート
import matplotlib.pyplot as plt
import numpy as np
import japanize_matplotlib
# サンプルデータの作成
x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 4, 6, 8, 10])
# グラフの作成と表示
plt.figure(figsize=(8, 6))
plt.plot(x, y, marker='o')
plt.xlabel('X軸のラベル')
plt.ylabel('Y軸のラベル')
plt.title('日本語タイトル')
plt.grid(True)
plt.show()
7.2.2 OpenCVで読み込んだ画像の表示
OpenCVで読み込んだ画像をmatplotlibで表示する方法を示す。OpenCVはBGR形式で画像を読み込むため、matplotlibで正しく表示するにはRGB形式に変換する必要がある。
import cv2
import matplotlib.pyplot as plt
import japanize_matplotlib
# 画像の読み込み(BGR形式)
img = cv2.imread('sample_image.jpg')
# BGR形式からRGB形式に変換
img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
# 画像の表示
plt.figure(figsize=(10, 8))
plt.imshow(img_rgb)
plt.title('画像のタイトル')
plt.axis('off') # 軸を非表示
plt.show()
7.3 動画の表示
MP4形式の動画をColab上で表示する方法である。
from IPython.display import HTML
from base64 import b64encode
def show_mp4(video_path, width=640, height=480):
"""MP4動画をノートブック内に表示する関数"""
with open(video_path, "rb") as video_file:
video_data = video_file.read()
video_base64 = b64encode(video_data).decode()
video_url = f"data:video/mp4;base64,{video_base64}"
video_html = f"""
<video width="{width}" height="{height}" controls>
<source src="{video_url}" type="video/mp4">
</video>
"""
return HTML(video_html)
# 使用例
show_mp4("sample_video.mp4")
この関数は、動画ファイルをBase64エンコードしてHTML内に埋め込むことで、ノートブック内で直接再生可能にする。
第8章 GPU利用
8.1 GPUとは
GPU(Graphics Processing Unit)は、機械学習の計算を高速化するための専用ハードウェアである。GPUは並列計算に優れており、深層学習のような大規模な行列演算を高速に処理できる。
Colabでは、無料でGPUを利用できるが、使用時間には制限がある。
8.2 GPUの有効化
GPUを使用するには、ランタイムの設定を変更する必要がある。
- メニューバーから「ランタイム」→「ランタイムのタイプを変更」を選択
- 「ハードウェアアクセラレータ」のドロップダウンから「GPU」を選択
- 「保存」をクリック
設定変更後、セッションが再起動される。
8.3 GPU利用可能性の確認
GPUが正しく認識されているか確認する方法を示す。
import torch
import tensorflow as tf
# PyTorchでのGPU確認
print(f"PyTorch GPU利用可能: {torch.cuda.is_available()}")
if torch.cuda.is_available():
print(f"GPU名: {torch.cuda.get_device_name(0)}")
# TensorFlowでのGPU確認
print(f"TensorFlow GPU: {tf.config.list_physical_devices('GPU')}")
このコードでは、PyTorchとTensorFlowの両方でGPU確認を行っている。これは、プロジェクトで使用するフレームワークに応じて、それぞれのフレームワークからGPUが正しく認識されているかを確認するためである。
8.4 GPU使用時の注意事項
- 使用時間制限:無料版では、GPU使用時間に制限があり、使用状況に応じて一時的にアクセスが制限される
- セッション切断:GPU使用中でも、12時間制限や90分非アクティブ制限は適用される
- データ保護:GPU使用中の学習結果は、必ずGoogle Driveに保存する
第9章 トラブルシューティング
9.1 セッション管理
システムの混雑時や長時間実行時に処理が停止し、再開しない場合がある。セッションは、Google Colaboratoryでコードを実行するための作業環境である。
対処方法は以下の通りである。
- メニューから「ランタイム」を選択する
- 「セッションの管理」をクリックする
- アクティブなセッション一覧から「終了」をクリックする
- すべてのセッションを終了する
- 最初からコードを再実行する
9.2 エラー対処法
よくあるエラーと対処法は以下の通りである。
- ライブラリインストールエラーは、
!pip install ライブラリ名でインストールする - メモリ不足エラーは、「ランタイム」から「ファクトリーリセット」で環境を初期化する
- ファイル読み込みエラーは、ファイルパスとファイル名を確認する
エラー解決の基本手順は以下の通りである。
- エラーメッセージを最後の行から読む
- エラーの種類(SyntaxError、NameErrorなど)を特定する
- 「ランタイム」から「すべての出力を表示」でログ全体を確認する
- 公式ドキュメント(https://colab.research.google.com/notebooks/)で解決策を検索する
9.3 セッション再開時の復旧
セッションが切断された後に作業を再開する際の復旧方法を以下に示す。
# 中断したトレーニングの再開
try:
model = tf.keras.models.load_model('/content/drive/MyDrive/model_checkpoint.h5')
print("モデルを復旧しました")
except:
print("新しいモデルを作成します")
model = create_new_model()
# データの復旧
try:
processed_array = np.load('/content/drive/MyDrive/processed_array.npy')
print("データを復旧しました")
except:
print("データを再処理します")
processed_array = preprocess_data()
第10章 制限事項と制約
10.1 実行時間と計算資源の制限
無料版では最大12時間の実行時間制限がある(利用状況により変動する)。Colab Pro+では、十分なコンピュートユニットがある場合、最大24時間の連続実行が可能である。
CPUはIntel Xeonプロセッサである(コア数は変動する)。メモリは標準メモリプロファイル(無料版)、高メモリプロファイル(有料版、利用状況による)である。ストレージは約100GBの一時ディスク容量である。GPU・TPUは種類が時期により変動する(無料版では制限がある)。
10.2 禁止されている使用方法
以下の使用方法は禁止されている。
- ファイルホスティング、メディア配信
- トレントダウンロード、P2Pファイル共有
- リモートプロキシへの接続
- 暗号通貨のマイニング
- サービス拒否攻撃の実行
- パスワードクラッキング
- 複数アカウントによる制限回避
- ディープフェイクの作成
- SSHシェル、リモートデスクトップの使用(無料版)
- チェストレーニング(無料版)
- 分散コンピューティングワーカーの実行(無料版)
付録A:システム情報の確認コマンド
A.1 基本環境情報の確認
利用可能なハードウェアとソフトウェア環境を事前に確認する。
# システム情報の確認
!cat /proc/version
!free -h # メモリ使用量の確認
!df -h # ディスク使用量の確認
A.2 GPU・CUDA環境の確認
GPU利用可能性とCUDAバージョンを確認する。
# GPU情報の詳細確認
!nvidia-smi
!nvidia-smi --query-gpu=gpu_name,driver_version,memory.total --format=csv
# CUDAバージョンの確認
!nvcc -V
執筆時点では、ColabではCUDA 12.x系が使用されているが、バージョンは予告なく変更される可能性がある。
A.3 ライブラリバージョンの確認
機械学習に使用する主要ライブラリのバージョンとGPU利用可能性を確認する。
import tensorflow as tf
import torch
print(f"TensorFlow: {tf.__version__}")
import keras
print(f"Keras: {keras.__version__}")
# GPU利用可能性の確認
print(f"PyTorch GPU利用可能: {torch.cuda.is_available()}")
if torch.cuda.is_available():
print(f"GPU名: {torch.cuda.get_device_name(0)}")
# TensorFlowでのGPU確認
print(f"TensorFlow GPU: {tf.config.list_physical_devices('GPU')}")
付録B:応用的な機能
B.1 変数の監視と詳細情報
デバッグやコード解析に有用な情報取得方法である。
# 変数の内容確認
%whos # 詳細な変数一覧
%who_ls # 変数名のリスト
# 変数の詳細情報
variable_name? # 簡潔な情報
variable_name?? # 詳細な情報(ソースコードを含む)
B.2 TPU設定
TPU(Tensor Processing Unit)は、Googleが開発した機械学習専用プロセッサである。使用頻度は低いが、特定の大規模モデル学習で有用である。
import tensorflow as tf
# TPU初期化
try:
tpu = tf.distribute.cluster_resolver.TPUClusterResolver()
tf.config.experimental_connect_to_cluster(tpu)
tf.tpu.experimental.initialize_tpu_system(tpu)
strategy = tf.distribute.TPUStrategy(tpu)
print(f"TPUコア数: {strategy.num_replicas_in_sync}")
except ValueError:
print("TPUが利用できません")
B.3 GPU使用時の詳細設定
GPUメモリの動的割り当てを有効化することで、メモリエラーを防ぐことができる。
import tensorflow as tf
# GPU利用可能性の確認
gpus = tf.config.list_physical_devices('GPU')
if gpus:
print(f"利用可能なGPU: {gpus}")
# メモリ成長を有効化(メモリエラー防止)
try:
tf.config.experimental.set_memory_growth(gpus[0], True)
print("GPUメモリの動的割り当てを有効化しました")
except RuntimeError as e:
print(f"エラー: {e}")
else:
print("GPUが利用できません")
B.4 GitHubからのライブラリ直接インストール
Detectron2(Meta製の物体検出ライブラリ)など、PyPIに登録されていないライブラリをインストールする場合の例である。
!python -m pip install 'git+https://github.com/facebookresearch/detectron2.git'