Hugging Face ZeroGPU 計劃正式釋出—提供價值一千萬美元的免費共享 GPU

HuggingFace發表於2024-05-21

在人工智慧技術領域,GPU 資源一直是推動研究和應用的關鍵因素。然而,GPU 的成本和可用性對於許多研究人員和開發者來說卻是一個顯著的障礙。

在 Hugging Face,我們希望人工智慧技術可以更加普惠化,更多開發者可以參與其中共同探索,在人工智慧技術浪潮中創造出讓更多人受益的產品。

為此,我們計劃提供 1000 萬美元的免費共享 GPU,藉以推動下一波的人工智慧創新。

什麼是 ZeroGPU?

ZeroGPU 是 Hugging Face 的 Spaces 平臺的一種新型硬體整合,設計有兩個主要目標:

  1. 為 Spaces 應用提供免費的 GPU 訪問;
  2. 允許 Space 應用在多個 GPU 上執行,提高效能和效率。

透過一個動態系統實現,Space 應用可以根據需要高效地持有和釋放 GPU,而不受限於單個 GPU。ZeroGPU 採用強大的 Nvidia A100 GPU,每個裝置提供 40GB 的視訊記憶體,確保複雜工作負載的高效能。

相容性和使用

ZeroGPU Spaces 旨在與大多數基於 PyTorch 的 GPU Spaces 相容,尤其是 Hugging Face 庫如 transformers 或 diffusers。然而,由於其使用較新的架構,ZeroGPU Spaces 可能比傳統的 GPU Spaces 遇到更多的錯誤。目前,ZeroGPU 僅相容 Gradio SDK,並推薦使用以下版本以確保最佳效能:

  • Gradio: v4+ 版本
  • PyTorch: 2.0.0 至 2.2.0 版本
  • Python: 3.10.13

要整合 ZeroGPU,需要在要使用 ZeroGPU 處理的 Python 函式前使用 @spaces.GPU 這個 decorator (裝飾器) 。

這個裝飾器確保函式執行期間分配 GPU,並在執行完畢後立即釋放。以下是如何在 Space 中設定 GPU 支援函式的示例:

import spaces
from diffusers import DiffusionPipeline

pipe = DiffusionPipeline.from_pretrained(...)
pipe.to('cuda')

@spaces.GPU
def generate(prompt):
    return pipe(prompt).images

gr.Interface(
    fn=generate,
    inputs=gr.Text(),
    outputs=gr.Gallery(),
).launch()

這種設定不僅最佳化了資源使用,還簡化了 AI 模型的部署。

增強的可訪問性

ZeroGPU 對所有使用者開放,PRO 使用者還可以託管自己的 ZeroGPU Spaces。為了幫助開發過程,Hugging Face 鼓勵使用者透過社群標籤提供反饋,並探索已經可用的 ZeroGPU Spaces列表。

對於需要較長執行時間的函式,開發者可以在 @spaces.GPU 裝飾器中指定持續時間引數,將GPU分配時間延長到最多 120 秒,以適應更密集的計算需求。

開始使用

註冊使用者可以在 Spaces 頁面選擇建立 Space,選擇使用 Gradio SDK,Space Hardware 選擇 Zero NVIDIA A100 即可。

期待反饋

我們希望開發者們可以將這個訊息分享給身邊的朋友,如果有任何反饋,請隨時在文章裡留言讓我們知道!

相關文章