Hub Python 庫文件
Git 與 HTTP 正規化
並獲得增強的文件體驗
開始使用
Git 與 HTTP 正規化
huggingface_hub
庫是一個用於與 Hugging Face Hub 互動的庫,Hugging Face Hub 是一個基於 Git 的倉庫集合(模型、資料集或 Spaces)。使用 huggingface_hub
訪問 Hub 主要有兩種方式。
第一種方法,即所謂的“基於 Git”的方法,由 Repository 類主導。此方法使用圍繞 git
命令的包裝器,並具有專門為與 Hub 互動而設計的附加功能。第二種方法,稱為“基於 HTTP”的方法,涉及使用 HfApi 客戶端發出 HTTP 請求。讓我們 بررسی 兩種方法的優缺點。
Repository:基於 Git 的歷史方法
最初,huggingface_hub
主要圍繞 Repository 類構建。它為常見的 git
命令(如 "git add"
、"git commit"
、"git push"
、"git tag"
、"git checkout"
等)提供 Python 包裝器。
該庫還有助於設定憑據和跟蹤大型檔案,這些檔案通常用於機器學習倉庫。此外,該庫允許您在後臺執行其方法,這對於在訓練期間上傳資料非常有用。
使用 Repository 的主要優點是它允許您在本地機器上維護整個倉庫的本地副本。這也可以是一個缺點,因為它要求您不斷更新和維護此本地副本。這類似於傳統的軟體開發,其中每個開發人員都維護自己的本地副本並在處理某個功能時推送更改。然而,在機器學習的上下文中,這可能並非總是必要的,因為使用者可能只需要下載權重進行推理或將權重從一種格式轉換為另一種格式,而無需克隆整個倉庫。
Repository 現在已棄用,取而代之的是基於 HTTP 的替代方案。鑑於其在舊程式碼中的大量採用,Repository 的徹底移除只會發生在 v1.0
版本中。
HfApi:靈活便捷的 HTTP 客戶端
開發 HfApi 類的目的是提供一種替代本地 Git 倉庫的方法,因為維護本地 Git 倉庫可能很麻煩,尤其是在處理大型模型或資料集時。HfApi 類提供與基於 Git 的方法相同的功能,例如下載和推送檔案以及建立分支和標籤,但無需需要保持同步的本地資料夾。
除了 git
已經提供的功能之外,HfApi 類還提供其他功能,例如管理倉庫、使用快取高效重用地下載檔案、在 Hub 中搜索倉庫和元資料、訪問社群功能(如討論、PR 和評論),以及配置 Spaces 硬體和秘密。
我應該使用什麼?以及何時使用?
總的來說,在所有情況下,**基於 HTTP 的方法都是推薦的使用方式**。HfApi 允許拉取和推送更改,處理 PR、標籤和分支,與討論互動等等。自 0.16
版本釋出以來,基於 HTTP 的方法也可以在後臺執行,這是 Repository 類的最後一個主要優勢。
然而,並非所有 Git 命令都可以透過 HfApi 獲得。有些可能永遠不會實現,但我們一直在努力改進並縮小差距。如果您發現您的用例未被涵蓋,請在 Github 上提出問題!我們歡迎您的反饋,以幫助與我們的使用者一起構建 🤗 生態系統。
這種對基於 HTTP 的 HfApi 優於基於 Git 的 Repository 的偏好並不意味著 Git 版本控制將很快從 Hugging Face Hub 中消失。在有意義的工作流中,始終可以使用 git
命令進行本地操作。