Hub Python 庫文件

Git 與 HTTP 正規化

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

Git vs HTTP 正規化

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

第一種方法,即所謂的“基於 git”的方法,依賴於直接在終端中使用標準的 git 命令。這種方法允許您手動克隆倉庫、建立提交和推送更改。第二種選擇,稱為“基於 HTTP”的方法,涉及使用 HfApi 客戶端發出 HTTP 請求。讓我們來分析每種方法的優缺點。

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

最初,大多數使用者透過純粹的 git 命令與 Hugging Face Hub 進行互動,例如 git clonegit addgit commitgit pushgit taggit checkout

這種方法允許您在本地機器上使用倉庫的完整本地副本,就像在傳統的軟體開發中一樣。當您需要離線訪問或想要處理倉庫的完整歷史記錄時,這可能是一個優勢。然而,它也存在缺點:您需要負責在本地保持倉庫的更新,處理憑據,以及管理大檔案(透過 git-lfs),當處理大型機器學習模型或資料集時,這可能會變得很麻煩。

在許多機器學習工作流程中,您可能只需要下載幾個檔案進行推理或轉換權重,而不需要克隆整個倉庫。在這種情況下,使用 git 可能是多餘的,並引入不必要的複雜性。

HfApi:一個靈活便捷的 HTTP 客戶端

開發 HfApi 類是為了提供一種替代本地 git 倉庫的方法,因為本地 git 倉庫維護起來可能很麻煩,尤其是在處理大型模型或資料集時。HfApi 類提供了與基於 git 的工作流程相同的功能——例如下載和推送檔案以及建立分支和標籤——但無需同步本地資料夾。

除了 git 已提供的功能外,HfApi 類還提供了附加功能,例如管理倉庫的能力,使用快取高效複用下載檔案,搜尋 Hub 中的倉庫和元資料,訪問社群功能(如討論、PR 和評論),以及配置 Spaces 硬體和金鑰。

我應該使用什麼?以及何時使用?

總的來說,**基於 HTTP 的方法是 huggingface_hub 在所有情況下的推薦使用方式。** HfApi 允許您拉取和推送更改,處理 PR、標籤和分支,與討論進行互動等等。

然而,並非所有 git 命令都可透過 HfApi 使用。有些可能永遠不會實現,但我們一直在努力改進並縮小差距。如果您沒有看到滿足您用例的功能,請在 GitHub 上開啟一個 issue!我們歡迎反饋,以幫助與我們的使用者一起構建 HF 生態系統。

這種偏愛基於 HTTP 的 HfApi 而非直接 git 命令,並不意味著 git 版本控制將在短期內從 Hugging Face Hub 消失。在適合使用 git 的工作流程中,始終可以本地使用 git

在 GitHub 上更新

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