目次
Google Colabで学習を回しっぱなしにして席を立つと、戻ってきたときに「切断されました」が出ていて作業が止まっている、ということがよくあります。
90分のアイドル切断を回避する方法はいくつかあるのですが、規約や安全性まで含めて整理されている記事が少ないので、備忘録としてまとめておきます。
Colabが切断される2種類のタイムアウト
Colabには性質の違う2つのタイムアウトがあって、よく混同されます[1]。
- アイドルタイムアウト: ブラウザのタブを操作しないまま約90分放置されると切断される
- 最大セッション時間: 操作の有無に関わらず、無料版は最大12時間、Pro+は十分なコンピューティングユニットがある場合に最大24時間で切断される
この記事で扱う「自動リフレッシュ」で延ばせるのは前者のアイドルタイムアウトだけです。最大セッション時間は仕様上の上限なので、手動操作でも回避できません。「12時間以上ぶっ通しで回したい」場合はPro+の購入か、別の実行環境(クラウドGPU)に切り替える必要があります。
無料 / Pro / Pro+ の挙動の違い
| プラン | アイドル切断 | 最大セッション時間 | バックグラウンド実行 |
|---|---|---|---|
| 無料 | あり(約90分) | 最大12時間 | なし(タブを閉じると終了) |
| Pro | あり(約90分) | 最大12時間 | なし |
| Pro+ | あり(約90分) | 最大24時間(ユニット消費次第) | あり(タブを閉じても継続) |
Pro+の「バックグラウンド実行」は、タブを閉じても処理が走り続ける仕組みです。この機能を有効にしている場合は、後述の自動リフレッシュ系の小細工は不要になります。
デベロッパーツールから自動クリックを仕込む
一番手軽で、追加のインストールがいらない方法です。ブラウザのデベロッパーツール上でJavaScriptを実行して、定期的に接続ボタンをクリックさせます。
Colabのタブを開いた状態でF12(またはMacなら Cmd+Option+I)を押し、Consoleタブに以下を貼り付けてEnter。
function ClickConnect() {
console.log("ClickConnect作動中...");
document.querySelector("colab-connect-button")
?.shadowRoot?.querySelector("#connect")?.click();
}
setInterval(ClickConnect, 60 * 1000);
最新のColabでは接続ボタンが colab-connect-button 内のShadow DOMに格納されているので、旧来の document.querySelector("colab-connect-button").click() だけでは動かないケースがあります。上のように shadowRoot を経由してクリックすると現行UIでも通ります。
貼り付けた直後にChromeから次のような警告が出ることがあります。
Warning: Don't paste code into the DevTools Console that you don't understand
or haven't reviewed yourself. ... Please type 'allow pasting' below and hit
Enter to allow pasting.
これは「コピペした不審なコードでアカウントが乗っ取られる詐欺」への対策で、Consoleに allow pasting と入力してEnterを押すと貼り付けが解禁されます。意味の分かるコードだけ貼ること。
60秒ごとにConsoleに ClickConnect作動中... と表示されていれば動いています。停止したいときはタブをリロードすれば setInterval ごと消えます。
コードの中身
colab-connect-buttonはColabヘッダーにある接続状態を示すボタン要素shadowRoot.querySelector("#connect")で実際にクリック対象になる内側のボタンを取り出すsetInterval(fn, 60 * 1000)で60秒ごとにfnを呼ぶ?.(オプショナルチェーン)で要素が見つからなかった場合のエラーを避ける
接続ボタンのDOM構造はColab側のUI改修で変わることがあるので、動かなくなったら一度デベロッパーツールのElementsタブで colab-connect-button を辿って中身を確認します。
Chrome拡張機能を使う
DevToolsを毎回開きたくない場合は、Chrome Web Storeの拡張機能で同じことができます。代表的なのは Google Colab Keep-Alive のような、Colabタブで定期的にクリックイベントを発火する拡張です。
ただし、拡張機能を選ぶときは次の点に注意してください。
- 公式ストアからインストールしても、内部で何をしているかはユーザーには見えない
- Colabのページに対するスクリプト挿入権限を持つ拡張は、ノートブックの中身を読み取る能力もある
- 個人開発の小さな拡張は、後からマルウェア化したケースが過去に存在する
仕事のコードや機密データを扱うColabであれば、拡張ではなく前述のDevTools方式(自分が読めるコードを自分で貼る)の方が安全です。
なぜこれが「90分」で切れるのか
Colabはインタラクティブな計算用途を優先する設計になっていて、アイドル判定はGPU/CPUといった共有リソースをフェアに配分するための仕組みです。Colab公式FAQでも「Runtimes will time out if you are idle」と明記されています[1:1]。
裏返すと、Colabが「裏で延々と回り続けるバッチサーバー」として使われるのを規約で防いでいます。Colab規約では次のような利用が禁止されていて、自動リフレッシュを使うときも踏み外さないよう注意が必要です[2]。
- ファイルホスティングやWebサービスとしての利用
- 暗号通貨マイニング、パスワードクラック、DoS攻撃
- リモートプロキシへの接続、torrent / P2Pファイル共有
- アンチアビューズ回避を目的とした技術の利用(自動化スクリプトもこの解釈に触れうる)
- 無料版でのSSH接続・リモートデスクトップ・分散コンピューティング
「90分ごとに1クリックを自動化する」程度であれば、対話的に作業している人のセッション維持と区別がつきにくいので即アウトにはなりにくいですが、実体としてバックグラウンドジョブを走らせ続けるための回避策として常用するのは規約違反の解釈に近づきます。具体的には、
- 学習を仕掛けて昼休みや会議の間だけセッションを保ちたい → 想定の範囲内
- 寝ている間も含めて24時間ノンストップで回したい → 規約に抵触しうる、アカウント制限のリスク
長時間ぶん回す用途が定常化してきたら、有料プラン(Pro / Pro+)に移るか、Vertex AIや自前のクラウドGPUに切り替える方が、安全かつ正しい使い方になります。
Google Colaboratory Frequently Asked Questions (2026-05-26 アクセス) ↩︎ ↩︎
Google Colaboratory Frequently Asked Questions - What types of usage are prohibited? (2026-05-26 アクセス) ↩︎
