Colaboratory

ローカル ランタイム

Colab では、ローカル ランタイムに接続できます。これにより、ローカル ハードウェアでコードを実行できます。

セキュリティ上の考慮事項

ノートブックを実行する前に、その作成者を信頼できるかどうかをご確認ください。ローカル接続でコードを実行すると、コンピュータ内のファイルの読み取り、書き込み、削除が発生する場合があります。

ローカルマシンでランタイムに接続すると、多くのメリットが得られます。それと同時に大きなリスクを抱えることにもなります。ローカル ランタイムに接続すると、マシンのローカル リソースを使用してノートブック内のコードを実行することを Colab フロントエンドに許可することになります。 そのため、ノートブックに以下のようなリスクが含まれている可能性を考慮する必要があります。

ローカル ランタイムに接続する前に、ノートブックの作成者を信頼できるかどうかを確認し、どのようなコードが実行されるかを把握してください。Jupyter ノートブック サーバーのセキュリティ モデルについて詳しくは、Jupyter のドキュメントをご覧ください。

設定の手順

ステップ 1: ランタイムを開始する

Jupyter を直接実行できます。または、Colab の Docker イメージを使用することもできます。Docker イメージは、Google のホスト型ランタイム環境(https://colab.research.google.com)にあるパッケージを含み、デバッグやリソース使用率モニターなどの一部の UI 機能を有効にします。ただし、デフォルトでは、ローカルマシンにインストールされているパッケージ(一般的なファイル)は使用できません。Docker イメージは、linux / amd64 プラットフォーム向けに提供されています。

方法 1. Colab の Docker ランタイム イメージ

ローカルマシンに Docker をインストールします。europe-docker.pkg.devasia-docker.pkg.dev は、以下の us-docker.pkg.dev の代わりとなるミラーです。該当の地域のユーザーであれば速くダウンロードできます。イメージは同じものです。ランタイムを開始します。

        docker run -p 127.0.0.1:9000:8080 us-docker.pkg.dev/colab-images/public/runtime
      

GPU をサポートするには、NVIDIA ドライバNVIDIA コンテナ ツールキットがインストール済みの場合に以下を使用します。

        docker run --gpus=all -p 127.0.0.1:9000:8080 us-docker.pkg.dev/colab-images/public/runtime
      

このイメージは、NVIDIA T4、V100、A100 GPU でテストされています。

コンテナが起動すると、認証に使用する初期バックエンド URL(「http://127.0.0.1:9000/?token=...」の形式)が含まれたメッセージが表示されます。この URL は以下のステップ 2 で使用しますのでコピーしておいてください。

方法 2. Jupyter ランタイム

ローカルマシンに Jupyter をインストールします。新しいノートブック サーバーを通常どおり起動します。ただし、Colab フロントエンドからの WebSocket 接続を明示的に信頼するフラグを設定する必要があります。

  jupyter notebook \
    --NotebookApp.allow_origin='https://colab.research.google.com' \
    --port=8888 \
    --NotebookApp.port_retries=0
    

サーバーが起動すると、認証に使用する初期バックエンド URL が含まれたメッセージが表示されます。この URL は以下のステップ 2 で使用しますのでコピーしておいてください。

ステップ 2: ローカル ランタイムに接続する

Colab で、[接続] ボタンをクリックして [ローカル ランタイムに接続...] を選択します。表示されたダイアログに、前のステップでコピーしておいたポートを入力して [接続] ボタンをクリックします。これでローカル ランタイムに接続されます。

ブラウザ別の設定

注: Mozilla Firefox をご利用の場合は、Firefox の構成エディタnetwork.websocket.allowInsecureFromHTTPS を設定する必要があります。Colab では、WebSocket を使用してローカル カーネルに接続します。Firefox の場合、標準の WebSocket を使用した HTTPS ドメインからの接続はデフォルトでは許可されていません。

共有

ノートブックを他のユーザーと共有しても、ローカルマシンのランタイムは共有されません。共有したノートブックを開いた他のユーザーは、デフォルトでは Colab でホストされている標準のランタイムに接続されます。

デフォルトでは、コードセルの出力はすべて Google ドライブに保存されます。ローカル接続で機密性の高いデータにアクセスする場合に、コードセルの出力を除外するには、[編集] > [ノートブックの設定] > [このノートブックを保存する際にコードセルの出力を除外する] を選択します。

別のマシンのランタイムに接続する

接続先のランタイムが別のマシン(Google Compute Engine インスタンスなど)で実行されている場合は、SSH ローカルポート転送を設定して Colab からの接続を許可できます。

まず、上に示した手順に沿ってランタイムを設定します。

次に、ローカルマシンからリモート インスタンス(例: Google Compute Engine インスタンス)への SSH 接続を、「-L」フラグを指定して確立します。たとえば、ローカルマシンのポート 8888 を Google Compute Engine インスタンスのポート 8888 に転送する場合は、次のコマンドを実行します。

gcloud compute ssh --zone YOUR_ZONE YOUR_INSTANCE_NAME -- -L 8888:localhost:8888
    

最後に、Colab で転送ポートへの接続を確立します(「ステップ 2: ローカル ランタイムに接続する」と同じ手順です)。