Hub 文件

Spaces 概覽

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

Spaces 概覽

Hugging Face Spaces 讓您可以在幾分鐘內輕鬆建立和部署機器學習驅動的演示。觀看以下影片,快速瞭解 Spaces。

在以下部分中,您將學習建立 Space、配置 Space 以及將程式碼部署到 Space 的基礎知識。

建立新 Space

要建立新 Space,請訪問 Spaces 主頁 並點選 建立新 Space。除了為您的 Space 選擇名稱、選擇可選許可證和設定 Space 的可見性之外,您還需要選擇 Space 的 SDK。中心提供三種 SDK 選項:Gradio、Docker 和靜態 HTML。如果您選擇“Gradio”作為您的 SDK,您將進入一個顯示以下頁面的新倉庫。

在幕後,Spaces 將您的程式碼儲存在 Git 倉庫中,就像模型和資料集倉庫一樣。因此,我們用於中心上所有其他倉庫gitgit-lfs)的相同工具也適用於 Spaces。按照倉庫入門中的相同流程將檔案新增到您的 Space。每次推送新提交時,Space 都將自動重新構建和重啟。

有關建立第一個 Space 的分步教程,請參閱以下指南:

硬體資源

每個 Spaces 環境預設限制為 16GB RAM、2 個 CPU 核和 50GB(非持久)磁碟空間,您可以免費使用。您可以升級到更好的硬體,包括各種 GPU 加速器和持久儲存,以獲得具有競爭力的價格。要請求升級,請點選 Space 中的設定按鈕並選擇您偏好的硬體環境。

硬體 GPU 視訊記憶體 CPU 記憶體 磁碟 每小時價格
CPU 基本型 - 2 個 vCPU 16 GB 50 GB 免費!
CPU 升級 - 8 個 vCPU 32 GB 50 GB $0.03
Nvidia T4 - 小型 16GB 4 個 vCPU 15 GB 50 GB $0.60
Nvidia T4 - 中型 16GB 8 個 vCPU 30 GB 100 GB $0.90
Nvidia A10G - 小型 24GB 4 個 vCPU 15 GB 110 GB $1.05
Nvidia A10G - 大型 24GB 12 個 vCPU 46 GB 200 GB $3.15
2x Nvidia A10G - 大型 48GB 24 個 vCPU 92 GB 1000 GB $5.70
4x Nvidia A10G - 大型 96GB 48 個 vCPU 184 GB 2000 GB $10.80
Nvidia A100 - 大型 40GB 12 個 vCPU 142 GB 1000 GB $4.13
儲存層 大小 永續性 月價格
臨時(預設) 50GB 免費!
小型 臨時 + 20GB $5
中型 臨時 + 150GB $25
大型 臨時 + 1TB 是的 $100

注意:在我們的定價頁面上查詢更詳細和全面的定價資訊。

您有一個很棒的 Space,但需要幫助支付硬體升級費用嗎?我們樂於幫助那些擁有創新 Space 的人,所以請隨意使用您 Space 的“設定”選項卡中的連結申請社群 GPU 資助,看看您的 Space 是否符合條件!

在我們的專有部分Spaces GPU 升級Spaces 儲存升級中閱讀更多內容。

管理秘密和環境變數

如果您的應用程式需要環境變數(例如,金鑰或令牌),請不要將它們硬編碼到您的應用程式中!相反,請轉到您的 Space 倉庫的“設定”頁面並新增一個新變數秘密。如果您需要儲存非敏感配置值,請使用變數;如果需要儲存訪問令牌、API 金鑰或任何敏感值或憑據,請使用秘密。

你可以使用

  • 變數用於儲存非敏感配置值。它們是公開可訪問和可見的,並且會自動新增到從您的 Space 複製的 Space 中。
  • 秘密用於儲存訪問令牌、API 金鑰或任何敏感值或憑據。它們是私有的,一旦設定,其值就無法從 Space 的設定頁面讀取。它們不會新增到從您的倉庫複製的 Space 中。

訪問秘密和變數的方式因您的 Space SDK 而異。

  • 對於靜態 Spaces,兩者都可以透過客戶端 JavaScript 在 window.huggingface.variables 中獲取。
  • 對於 Docker Spaces,請檢視Docker 環境變數管理

對於其他 Spaces,兩者都作為環境變數暴露給您的應用程式。以下是一個非常簡單的示例,演示如何在 Python 中訪問先前宣告的 MODEL_REPO_ID 變數(對於秘密也是如此)。

import os
print(os.getenv('MODEL_REPO_ID'))

當我們的 Spaces Secrets Scanner 發現硬編碼的秘密時,Spaces 所有者會收到警告。

複製 Space

如果您想以一個現有的演示作為初始模板來構建新演示,複製 Space 會很有用。複製的 Space 也可以用於您自己的使用,以實現快速推理。

如果您想複製一個 Space,可以點選 Space 右上角的三個點,然後點選 複製此 Space。完成此操作後,您將能夠更改以下屬性:

  • 所有者:複製的 Space 可以歸您或您擁有寫入許可權的任何組織所有。
  • 空間名稱
  • 可見性:Space 預設是私有的。有關私有倉庫的更多資訊,請點選此處
  • 硬體:您可以選擇 Space 將執行的硬體。有關硬體升級的更多資訊,請點選此處
  • 儲存:如果原始倉庫使用持久儲存,系統將提示您選擇一個儲存層。有關持久儲存的更多資訊,請點選此處
  • 秘密和變數:如果原始倉庫設定了秘密和變數,您可以在複製倉庫時設定它們。

某些 Spaces 可能需要您設定環境變數。在這種情況下,複製工作流程會自動填充源 Space 中的公共變數,並就設定秘密向您發出警告。複製的 Space 預設將使用免費的 CPU 硬體,但如果需要,您可以稍後升級。

網路

如果您的 Space 需要進行任何網路請求,您可以透過標準 HTTP 和 HTTPS 埠(80 和 443)以及埠 8080 進行請求。任何傳送到其他埠的請求都將被阻止。

生命週期管理

在免費硬體上,您的 Space 在一段時間未使用後會“休眠”並停止執行。如果您希望您的 Space 無限期執行,請考慮升級到付費硬體。您也可以從“設定”選項卡手動暫停您的 Space。暫停的 Space 會停止執行,直到其所有者手動重新啟動。暫停時間不計費。

輔助環境變數

在某些情況下,您可能希望以程式設計方式訪問 Space 作者或倉庫名稱。此功能在您期望使用者複製您的 Space 時特別有用。為了幫助實現這一點,Spaces 在執行時公開了不同的環境變數。給定一個 Space osanseviero/i-like-flan

  • CPU_CORES: 4
  • MEMORY: 15Gi
  • SPACE_AUTHOR_NAME:osanseviero
  • SPACE_REPO_NAME: i-like-flan
  • SPACE_TITLE: I Like Flan (在 README 檔案中指定)
  • SPACE_ID: osanseviero/i-like-flan
  • SPACE_HOST: osanseviero-i-like-flan.hf.space
  • SPACE_CREATOR_USER_ID: 6032802e1f993496bc14d9e3 - 這是最初建立 Space 的使用者 ID。如果 Space 屬於某個組織,則此 ID 會很有用。您可以透過對 https://huggingface.co/api/users/{SPACE_CREATOR_USER_ID}/overview 進行 API 呼叫來獲取使用者資訊。

如果您的 Space 啟用了 OAuth,則以下變數也將可用:

  • OAUTH_CLIENT_ID:您的 OAuth 應用程式的客戶端 ID(公開)
  • OAUTH_CLIENT_SECRET:您的 OAuth 應用的客戶端金鑰
  • OAUTH_SCOPES:您的 OAuth 應用程式可訪問的範圍。目前,此值始終為 "openid profile"
  • OPENID_PROVIDER_URL:OpenID 提供程式的 URL。OpenID 元資料將在 {OPENID_PROVIDER_URL}/.well-known/openid-configuration 中可用。

克隆倉庫

您可以輕鬆地在本地克隆您的 Space 倉庫。首先點選您 Space 頁面右上角的下拉選單。

選擇“克隆倉庫”,然後您將能夠按照說明使用 HTTPS 或 SSH 將 Space 倉庫克隆到您的本地機器。

連線中心上的模型和資料集

您可以透過在 Space 的 README 元資料中新增模型和資料集的識別符號來展示您的 Space 連結到的所有模型和資料集。為此,您可以在 modelsdatasets 鍵下定義它們。除了在 README 檔案中列出工件,您還可以在任何 .py.ini.html 檔案中記錄它們。我們將自動解析它們!

這是一個連結兩個 Space 模型的示例:

title: My lovely space
emoji: 🤗
colorFrom: blue
colorTo: green
sdk: docker
pinned: false
models:
- reach-vb/musicgen-large-fp16-endpoint
- reach-vb/wav2vec2-large-xls-r-1B-common_voice7-lt-ft
< > 在 GitHub 上更新

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