開源 AI 食譜文件

HF Spaces 中的互動式開發

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

HF Spaces 中的互動式開發

作者:Moritz Laurer

Google Colab 或 Kaggle Notebooks 等服務極大地簡化了人們在瀏覽器中使用易於使用的 Jupyter 筆記本訪問計算資源的方式。不幸的是,這些服務也有一些限制。

  • GPU 不穩定,訓練任務可能在完成前就被取消。
  • GPU 的選擇僅限於少數幾個單 GPU。
  • 沒有原生支援透過您喜歡的本地 IDE(如 VS Code)連線到雲 GPU。

HF JupyterLab Spaces 克服了這些限制。透過 HF JupyterLab Space,您可以:

  • 在瀏覽器中的 JupyterLab 中完成所有開發工作。
  • 在 CPU 和各種 GPU 之間動態切換,它們永不停止,除非您希望它們停止。
  • 透過 SSH 連線到雲計算資源,使用您喜歡的本地 IDE(如 VS Code)進行完全遠端開發。

本教程將指導您設定自己的 JupyterLab Space。

HF JupyterLab Spaces 中的互動式開發

建立您的 JupyterLab Space

要建立您自己的 HF JupyterLab Space,請導航到 Space 建立頁面,然後點選 `Docker` > `JupyterLab`。HF JupyterLab Space 本質上是一個 Docker 容器,其中預配置了 JupyterLab 副本,並在 Hugging Face 的雲基礎設施上執行。以下是一些關於配置您的 JupyterLab Space 的建議:

  • 選擇正確的擁有者:如果您正在將 JupyterLab Space 作為企業 Hub 組織工作的一部分,請在 `Owner` 下拉選單中選擇組織的名稱(例如,下圖中虛擬的“enterprise-explorers”)。所有計算費用將由該企業組織賬戶支付。
  • 訪問控制:如果您只想讓您的團隊中選定的成員訪問 JupyterLab Space,您可以點選 `Access Control` 旁邊的 `Everyone`,並將 JupyterLab Space 的訪問許可權限制為預定義的資源組。資源組是企業 Hub 的一個功能,它使您能夠將對選定儲存庫(模型、資料集、Space)的訪問許可權限制到較小的團隊成員組。請參閱有關如何建立第一個資源組的文件
  • 選擇您的硬體:您可以選擇從免費 CPU 到 A100 GPU 的各種硬體。在設定 Space 時,我們建議您選擇免費的基本 CPU。一旦您需要,您可以切換到更好的付費硬體(此處檢視可用的硬體和價格 here)。
  • 持久儲存:為 Space 附加持久儲存非常重要,這樣您建立的所有檔案(程式碼、模型、資料)在 Space 暫停或重置時也會儲存。如果需要,您可以隨時在設定中增加磁碟空間。所有持久資料都儲存在 `/data` 目錄中(文件)。
  • 設定您的密碼:Space 建立後,登入 JupyterLab 需要密碼。此密碼透過 `JUPYTER_TOKEN` Space 金鑰定義。如果您在此處未定義密碼,預設密碼為“huggingface”。我們建議設定一個強密碼。
  • 開發者模式:開發者模式是企業 Hub 訂閱者的一項功能,它使您可以透過 SSH 連線到任何 HF Space。啟用此功能,以連線您的本地 VS Code,以便在 Space 的雲硬體上進行遠端開發(此功能也可以稍後開啟/關閉)。請參閱預覽文件 here
  • 私有 Spaces:作為額外的安全層,我們建議將 Space 設定為私有,以便只有您的企業組織(以及特定資源組)的成員才能看到它。

配置好 JupyterLab Space 後,您可以點選 `Create Space`。Space 將開始構建,幾秒鐘後您將看到 JupyterLab 登入介面。現在,您可以使用之前定義的密碼登入。

使用您的 JupyterLab Space

您現在可以在瀏覽器中自己的 JupyterLab Space 中工作了!您可以在左側的檔案瀏覽器中建立自己的目錄結構,包含 .ipynb 筆記本或任何其他檔案和資料集。如果您已啟用持久儲存,所有檔案都將永久儲存在 Space 的預設 `/data` 目錄中。

在 CPU 和 GPU 之間動態切換

類似於 Google Colab 等服務,您可以即時更改 Space 執行的硬體。我們建議在升級或免費 CPU 上進行初始設定工作,例如資料清理、設定端點或測試 API。一旦您的程式碼設定完成,您只需點選 Space 右上角的 `Settings`,即可更改為更廣泛的硬體選擇,這些硬體可能用於計算密集型推理或訓練任務。當您更改硬體時,Space 將重新啟動,所有環境變數都將丟失(與 Google Colab 類似),幾秒鐘後您將在新硬體上獲得一個全新的乾淨環境。您儲存和儲存的檔案(程式碼、資料等)當然也會在新硬體上可用。下圖顯示了撰寫本文時(2024 年 6 月)可用的硬體,未來會更新。

在圖片左下角,您還可以看到 `Sleep time settings`(休眠時間設定),您可以在其中定義在不活動情況下硬體執行的時長。這比 Google Colab 有很大的優勢。如果您想省錢,可以在 15 分鐘不活動後讓 Space 休眠,但如果您需要硬體進行 48 小時或更長時間的訓練執行,您只需阻止 Space 休眠,讓它執行您想要的任意時長。您也可以手動 `Pause`(暫停)Space,這樣就不會再為 Space 硬體付費。

如果您在設定中向下滾動,您會看到更多選項,例如擴充套件儲存空間、重置 Space 等。如果您在 Space 建立期間沒有設定密碼,您也可以稍後在此處建立一個名為 `JUPYTER_TOKEN` 的秘密,它將替換預設的“huggingface”密碼。

當您連續幾天或幾周積極使用 Space 時,檔案可能會在儲存快取中累積。當您收到持久儲存已滿的警告,並且您認為儲存配額不應該達到時,將 Space 恢復出廠設定以清空快取可能會有所幫助。

定製您的 JupyterLab Space

請記住,您的 JupyterLab Space 只是一個預配置的 Docker 容器,因此如果您熟悉 Docker,也可以根據您的需求進行自定義。例如,您可以前往 Space 的 `Files` 部分,向 `requirements.txt` 檔案新增新的依賴項,或者您可以更改 `Dockerfile` 中的預設容器映象為其他映象,例如,如果您需要預安裝特定的 CUDA 和 PyTorch 版本。

開發者模式:透過本地 VS Code 在 HF Spaces 上進行開發

如果您不喜歡在瀏覽器中工作在 JupyterLab 中呢?請使用 `Dev Mode`。`Dev Mode` 允許您從本地 IDE(例如 VS Code)透過 SSH 連線到任何 Space 的硬體。HF Pro/Enterprise 訂閱者可以在 Space 的設定中為任何 Space 啟用 `Dev Mode`。

啟用 `Dev Mode` 後,您將在 JupyterLab Space 視窗的左下角看到一個彈出視窗。要透過 SSH 連線到您的本地 VS Code,您首先需要本地安裝 VS Code Remote - SSH 擴充套件,並將您的 SSH 金鑰新增到您的 HF 個人資料。單擊 `Connect with VS Code` 應該會開啟您的本地 VS Code 視窗並建立與 Space 的遠端連線。任何支援 SSH 遠端開發的 IDE 都應該可以進行類似的操作。

當您透過 SSH 連線到您的 Space 時,您的預設目錄將是一個空的 `/app` 目錄。然後您需要切換到 `/data` 目錄,所有您的持久檔案(程式碼、資料、模型等)都儲存在該目錄中。`/data` 目錄是唯一保證跨會話檔案永續性的目錄。如果您想修改底層的 Docker 容器,您可以在 `HOME/user/app` 目錄中找到您的 Docker 容器的檔案。

目前,`/data` 目錄中持久化的檔案不會自動備份。因此,我們建議您定期備份最重要的檔案,以避免意外資料丟失。

現在開始編寫程式碼吧!

就是這樣,您現在可以在瀏覽器中執行 JupyterLab Space,即時在單個或多個強大 GPU 之間切換,並從本地 IDE 連線到硬體。

本食譜的全部內容都是在免費 CPU 上的 JupyterLab Space 中編寫的,我們邀請您在自己的 JupyterLab Space 中學習企業 Hub 食譜的所有其他食譜。

< > 在 GitHub 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.