Hub Python 函式庫文件

Git 與 HTTP 範式

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

Git 與 HTTP 範式

huggingface_hub 函式庫是用於與 Hugging Face Hub 互動的程式庫,Hub 是一個基於 git 的儲存庫(模型、資料集或 Spaces)集合。使用 huggingface_hub 存取 Hub 主要有兩種方式。

第一種稱為「基於 git (git-based)」的方法,依賴於在終端機中直接使用標準的 git 指令。此方法允許您手動複製 (clone) 儲存庫、建立提交 (commit) 並推送 (push) 變更。第二種選項稱為「基於 HTTP (HTTP-based)」的方法,涉及使用 HfApi 客戶端發送 HTTP 請求。讓我們探討每種方法的優缺點。

Git:歷史悠久的 CLI 基礎方法

起初,大多數使用者是使用一般的 git 指令(例如 git clonegit addgit commitgit pushgit taggit checkout)來與 Hugging Face Hub 進行互動。

這種方法讓您可以像傳統軟體開發一樣,在您的機器上處理儲存庫的完整本地副本。當您需要離線存取或想要處理儲存庫的完整歷史記錄時,這是一個優勢。然而,它也有缺點:您必須負責保持本地儲存庫為最新狀態、處理憑證以及管理大檔案(透過 git-lfs),當處理大型機器學習模型或資料集時,這些工作可能會變得相當繁瑣。

在許多機器學習工作流程中,您可能只需要下載幾個檔案進行推理 (inference),或是進行權重轉換,而不需要複製整個儲存庫。在這種情況下,使用 git 可能會顯得大材小用,並引入不必要的複雜性。

HfApi:靈活且方便的 HTTP 客戶端

HfApi 類別的開發目的是為了提供一個替代本地 git 儲存庫的方案,因為後者在維護上可能很麻煩,尤其是在處理大型模型或資料集時。HfApi 類別提供了與 git 工作流程相同的功能(例如下載和推送檔案、建立分支與標籤),但不需要維持一個需要隨時同步的本地資料夾。

除了 git 已提供的功能外,HfApi 類別還提供了額外的功能,例如:管理儲存庫、利用快取下載檔案以提升重用效率、搜尋 Hub 上的儲存庫與元數據、存取社群功能(如討論、PR 和評論),以及設定 Spaces 硬體與祕密 (secrets)。

我該使用什麼?何時使用?

總體而言,**基於 HTTP 的方法是推薦使用** huggingface_hub 的方式。HfApi 允許您拉取 (pull) 和推送 (push) 變更、處理 PR、標籤和分支、與討論互動等等。

然而,並非所有 git 指令都能透過 HfApi 使用。有些功能可能永遠不會被實作,但我們始終致力於改進並縮小差距。如果您沒看到您需要的用例,請在 GitHub 上開啟一個 issue!我們歡迎各種意見回饋,以協助我們與使用者共同建立 HF 生態系統。

這種優先選擇基於 HTTP 的 HfApi 而非直接使用 git 指令,並不代表 git 版本控制會從 Hugging Face Hub 中消失。在某些適合的工作流程中,隨時都可以使用 git

在 GitHub 上更新

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