本機執行階段
你可以透過 Colab 連線至本機執行階段,在本機硬體上執行程式碼。
安全性考量
在執行任何筆記本前,請確認你信任作者。使用本機連線時,你所執行的程式碼可以讀取、寫入及刪除你電腦上的檔案。
連線到本機電腦上的執行階段有許多優點,但這麼做可能帶來嚴重的潛在風險。連線到本機執行階段後,Colab 前端就能使用你電腦上的本機資源執行筆記本中的程式碼。 這表示筆記本得以:
-
叫用任意指令 (例如「
rm -rf /
」) - 存取本機檔案系統
- 在你的電腦上執行惡意內容
在你試著連線到本機執行階段前,請先確認你信任筆記本的作者,並瞭解要執行的程式碼。如要進一步瞭解 Jupyter 筆記本伺服器的安全性模型,請參閱 Jupyter 說明文件。
設定操作說明
步驟 1:啟動執行階段
你可以直接執行 Jupyter 或使用 Colab 的 Docker 映像檔。Docker 映像檔內含 Google 代管執行階段環境 (https://colab.research.google.com) 中的套件,而且會啟用部分 UI 功能,例如偵錯和資源使用率監控程式。不過,預設無法使用本機電腦中安裝的套件 (一般是檔案)。Docker 映像檔專供 linux/amd64 平台使用。
選項 1. Colab Docker 執行階段映像檔
在本機電腦上安裝 Docker。請注意,
europe-docker.pkg.dev
和asia-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 container toolkit,請使用:
docker run --gpus=all -p 127.0.0.1:9000:8080 us-docker.pkg.dev/colab-images/public/runtime這個映像檔已使用 NVIDIA T4、L4 和 A100 GPU 進行測試。
容器啟動後會顯示訊息,提供用於驗證的初始後端網址,格式為「http://127.0.0.1:9000/?token=...」。請複製這個網址,步驟 2 會用到這項資料。
選項 2. Jupyter 執行階段
在你的本機電腦上安裝 Jupyter。新的筆記本伺服器會正常啟動,但你需要設定旗標,明確表示信任來自 Colab 前端的 WebSocket 連線。
jupyter notebook \ --NotebookApp.allow_origin='https://colab.research.google.com' \ --port=8888 \ --NotebookApp.port_retries=0伺服器啟動後會輸出訊息,提供用於驗證的初始後端網址。請複製這個網址,步驟 2 會用到這項資料。
步驟 2:連線到本機執行階段
在 Colab 中按一下「連線」按鈕,然後選取「連線到本機執行階段...」。在出現的對話方塊中輸入上一個步驟的網址,然後按一下「連線」按鈕。完成後應該就可以連線到你的本機執行階段。
瀏覽器專用的設定
注意:如果你使用的是 Mozilla Firefox,必須在 Firefox 設定編輯器中設定 network.websocket.allowInsecureFromHTTPS
偏好設定。Colab 會使用 WebSocket 連線到你的本機核心。根據預設,Firefox 不允許來自 HTTPS 網域且使用標準 WebSocket 的連線。
共用
如果你與其他人共用筆記本,本機電腦上的執行階段不會一起共用。根據預設,其他人開啟共用的筆記本時,會連線到標準 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:連線到本機執行階段」中的操作說明)。