Hub Python 庫文件

環境變數

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

環境變數

huggingface_hub 可以透過環境變數進行配置。

如果您不熟悉環境變數,這裡有關於它們的一般性文章,包括 macOS 和 Linux 以及 Windows 系統下的設定方法。

本頁面將引導您瞭解 huggingface_hub 特有的所有環境變數及其含義。

所有環境變數均在匯入 huggingface_hub 時讀取。在此之後所做的任何修改都不會被採納。請確保在匯入 huggingface_hub 之前設定好您的環境變數。

通用

HF_INFERENCE_ENDPOINT

用於配置推理 API 的基礎 URL。如果您的組織指向的是 API 閘道器,而不是直接指向推理 API,您可能需要設定此變數。

預設為 "https://api-inference.huggingface.co"

HF_HOME

用於配置 huggingface_hub 在本地儲存資料的位置。特別是您的令牌(token)和快取將儲存在此資料夾中。

預設為 "~/.cache/huggingface",除非設定了 XDG_CACHE_HOME

HF_HUB_CACHE

用於配置從 Hub 下載的儲存庫(模型、資料集和空間)在本地的快取位置。

預設為 "$HF_HOME/hub"(例如,預設情況下為 "~/.cache/huggingface/hub")。

HF_XET_CACHE

用於配置 Xet 塊(由 Xet 後端管理的檔案中的位元組範圍)在本地的快取位置。

預設為 "$HF_HOME/xet"(例如,預設情況下為 "~/.cache/huggingface/xet")。

HF_ASSETS_CACHE

用於配置下游庫建立的資源(assets)在本地的快取位置。這些資源可能是預處理資料、從 GitHub 下載的檔案、日誌等。

預設為 "$HF_HOME/assets"(例如,預設情況下為 "~/.cache/huggingface/assets")。

HF_TOKEN

用於配置向 Hub 進行身份驗證的使用者訪問令牌。如果設定,此值將覆蓋儲存在機器上的令牌(若未設定 $HF_TOKEN_PATH,則覆蓋 "$HF_HOME/token" 中的令牌)。

有關身份驗證的更多詳細資訊,請檢視此部分

HF_TOKEN_PATH

用於配置 huggingface_hub 應在何處儲存使用者訪問令牌。預設為 "$HF_HOME/token"(例如,預設情況下為 ~/.cache/huggingface/token)。

HF_HUB_VERBOSITY

設定 huggingface_hub 日誌記錄器的詳細程度級別。必須是 {"debug", "info", "warning", "error", "critical"} 中的一個。

預設為 "warning"

有關更多詳細資訊,請參閱 日誌參考

HF_HUB_ETAG_TIMEOUT

定義在下載檔案前從儲存庫獲取最新元資料時,等待伺服器響應的秒數(整數值)。如果請求超時,huggingface_hub 將預設使用本地快取的檔案。為連線速度慢且已快取檔案的機器設定較小的值可以加快工作流程。較高的值可確保元資料呼叫在更多情況下成功。預設為 10 秒。

HF_HUB_DOWNLOAD_TIMEOUT

定義下載檔案時等待伺服器響應的秒數(整數值)。如果請求超時,將引發 TimeoutError。在連線速度較慢的機器上設定較高的值是有益的。在完全網路中斷的情況下,較小的值可以使程序更快地失敗。預設為 10 秒。

Xet

其他 Xet 環境變數

HF_XET_CHUNK_CACHE_SIZE_BYTES

用於設定本地 Xet 塊快取的大小。預設情況下,塊快取是停用的。如果您正在為現有模型或資料集生成新的修訂版本,塊快取可能會有益,因為它用於快取從 S3 獲取的項/塊。較大的快取可以更好地利用跨儲存庫和檔案的去重功能。要啟用塊快取,請將環境變數設定為較大的數字(10GB 或更大)。然而,在大多數下載或上傳新資料的情況下,停用塊快取會有更好的效能,這就是它預設停用的原因。

預設為 0(0 位元組,意味著塊快取已停用)。

HF_XET_SHARD_CACHE_SIZE_LIMIT

用於設定本地 Xet 分片快取的大小。增加此值將提高上傳效率,因為快取分片檔案中引用的塊不會被重新上傳。請注意,預設的軟限制對於大多數工作負載來說應該足夠了。

預設為 4000000000(4GB)。

HF_XET_NUM_CONCURRENT_RANGE_GETS

用於設定每個檔案從 S3 併發下載的項數(xorb 中的位元組範圍,通常稱為塊)。如果有可用的網路頻寬,增加此值將有助於提高下載檔案的速度。

預設為 16

布林值

以下環境變數期望布林值。如果變數的值為 {"1", "ON", "YES", "TRUE"}(不區分大小寫)中的任意一個,則該變數將被視為 True。任何其他值(或未定義)將被視為 False

HF_DEBUG

如果設定,huggingface_hub 日誌記錄器的級別將設定為 DEBUG。此外,HF 庫進行的所有請求都將記錄為等效的 cURL 命令,以便於除錯和重現。

HF_HUB_OFFLINE

如果設定,將不會向 Hugging Face Hub 發起 HTTP 呼叫。如果您嘗試下載檔案,將僅訪問快取的檔案。如果沒有檢測到快取檔案,則會引發錯誤。如果您的網路速度很慢且您不關心是否擁有檔案的最新版本,這很有用。

如果設定了環境變數 HF_HUB_OFFLINE=1,並且您呼叫了 HfApi 的任何方法,則會引發 OfflineModeIsEnabled 異常。

注意:即使檔案的最新版本已快取,呼叫 hf_hub_download 仍會觸發 HTTP 請求以檢查是否有新版本可用。設定 HF_HUB_OFFLINE=1 將跳過此呼叫,從而加快載入時間。

如果您想檢查離線模式是否已啟用,可以使用 is_offline_mode() 輔助函式。

HF_HUB_DISABLE_IMPLICIT_TOKEN

對於向 Hub 發出的每個請求,身份驗證都不是強制性的。例如,請求有關 "gpt2" 模型的資訊不需要身份驗證。然而,如果使用者已登入,預設行為將是始終傳送令牌,以便在訪問私有或門控儲存庫時改善使用者體驗(不會出現 HTTP 401 Unauthorized 錯誤)。出於隱私考慮,您可以設定 HF_HUB_DISABLE_IMPLICIT_TOKEN=1 來停用此行為。在這種情況下,令牌將僅針對“寫入訪問”呼叫(例如:建立提交)傳送。

注意:停用令牌的隱式傳送可能會產生奇怪的副作用。例如,如果您想列出 Hub 上的所有模型,您的私有模型將不會被列出。您需要在指令碼中顯式傳遞 token=True 引數。

HF_HUB_DISABLE_PROGRESS_BARS

對於耗時的任務,huggingface_hub 預設顯示進度條(使用 tqdm)。您可以透過設定 HF_HUB_DISABLE_PROGRESS_BARS=1 一次性停用所有進度條。

HF_HUB_DISABLE_SYMLINKS

如果設定,huggingface_hub 將永遠不會在快取中建立符號連結。相反,檔案將被複制或直接移動到快照目錄中。這是一個高階使用者功能,會導致快取目錄以降級模式執行,巨大的檔案最終會在您的硬碟上重複出現。

一個示例用例是當共享網路驅動器(例如 NAS)用作跨不同作業系統機器的 HF_HUB_CACHE 時。在 Linux 上建立的符號連結並不總是在 Windows 上可遍歷,從而導致錯誤。設定 HF_HUB_DISABLE_SYMLINKS=1 可以避免此問題,但代價是失去了磁碟空間去重功能。

HF_HUB_DISABLE_SYMLINKS_WARNING

如果您在 Windows 機器上,建議啟用開發人員模式或以管理員模式執行 huggingface_hub。否則,huggingface_hub 將無法在您的快取系統中建立符號連結。您將能夠執行任何指令碼,但使用者體驗會下降,因為一些巨大的檔案可能會最終在您的硬碟上重複出現。系統會觸發警告訊息以通知您此行為。設定 HF_HUB_DISABLE_SYMLINKS_WARNING=1 以停用此警告。

有關更多詳細資訊,請參閱 快取限制

HF_HUB_DISABLE_EXPERIMENTAL_WARNING

huggingface_hub 的某些功能是實驗性的。這意味著您可以使用它們,但我們不保證它們會在未來得到維護。特別是,我們可能會在沒有任何棄用週期的情況下更新此類功能的 API 或行為。使用實驗性功能時會觸發警告訊息以提醒您。如果您樂於除錯使用實驗性功能可能出現的任何潛在問題,可以設定 HF_HUB_DISABLE_EXPERIMENTAL_WARNING=1 以停用該警告。

如果您正在使用實驗性功能,請告知我們!您的反饋可以幫助我們設計和改進它。

HF_HUB_DISABLE_TELEMETRY

預設情況下,HF 庫(transformersdatasetsgradio 等)會收集一些資料,以監控使用情況、除錯問題並幫助確定功能優先順序。每個庫定義其自己的策略(即監控哪些使用情況),但核心實現發生在 huggingface_hub 中(請參閱 send_telemetry)。

您可以設定 HF_HUB_DISABLE_TELEMETRY=1 作為環境變數來全域性停用遙測。

HF_HUB_DISABLE_UPDATE_CHECK

預設情況下,hf CLI 會在啟動時(最多每 24 小時一次)檢查 PyPI 是否有更新的版本,並在有可用版本時向 stderr 列印一行黃色警告,建議使用 hf update。對於開發版本和預釋出版本,該檢查已是一個空操作。

設定 HF_HUB_DISABLE_UPDATE_CHECK=1 以跳過 PyPI 請求並完全關閉該警告。這在離線 CI 環境中或當您更喜歡更安靜的 Shell 輸出時非常有用。

HF_HUB_DISABLE_XET

設定此項以停用 hf-xet 的使用,即使它在您的 Python 環境中可用。這是因為如果發現 hf-xet,它會被自動使用,此設定允許顯式停用其使用。如果您要停用 Xet,請考慮提交一個 issue 幷包含診斷資訊,以幫助我們瞭解為什麼 Xet 不適合您。

HF_HUB_ENABLE_HF_TRANSFER

這是一個已棄用的環境變數。現在 Hugging Face Hub 完全由 Xet 儲存後端提供支援,所有檔案傳輸都透過 hf-xet 二進位制包進行。它使用基於塊的去重策略提供高效傳輸,並與 huggingface_hub 無縫整合。這意味著 hf_transfer 不能再使用了。如果您對更高的效能感興趣,請檢視 HF_XET_HIGH_PERFORMANCE 部分

HF_XET_HIGH_PERFORMANCE

設定 hf-xet 以使用增強的設定進行操作,從而最大化機器上的網路和磁碟資源。啟用高效能模式將嘗試佔滿此機器的網路頻寬,並利用所有 CPU 核心進行並行上傳/下載活動。

可以將此視為類似於舊的 HF_HUB_ENABLE_HF_TRANSFER=1 環境變數,但應用於 hf-xet

要了解有關 Xet 儲存和 hf_xet 的好處的更多資訊,請參考此 部分

HF_XET_RECONSTRUCT_WRITE_SEQUENTIALLY

使 hf-xet 按順序寫入本地磁碟,而不是並行寫入。hf-xet 專為 SSD/NVMe 磁碟設計(使用具有直接定址的並行寫入)。如果您使用的是 HDD(機械硬碟),設定此項將把磁碟寫入更改為順序寫入而不是並行寫入。對於較慢的機械硬碟,這可以提高整體寫入效能,因為磁碟不需要為了尋找並行寫入而轉動。

已棄用的環境變數

為了標準化 Hugging Face 生態系統中的所有環境變數,一些變數已被標記為已棄用。儘管它們仍然起作用,但它們不再優先於它們的替代品。下表列出了已棄用的變數及其相應的替代方案:

已棄用的變數 替代變數
HUGGINGFACE_HUB_CACHE HF_HUB_CACHE
HUGGINGFACE_ASSETS_CACHE HF_ASSETS_CACHE
HUGGING_FACE_HUB_TOKEN HF_TOKEN

來自外部工具

有些環境變數並非 huggingface_hub 特有,但在設定時仍會被考慮在內。

DO_NOT_TRACK

布林值。等同於 HF_HUB_DISABLE_TELEMETRY。當設定為 true 時,Hugging Face Python 生態系統(transformersdiffusersgradio 等)中的遙測功能將被全域性停用。有關更多詳細資訊,請參閱 https://consoledonottrack.com/

NO_COLOR

布林值。設定後,hf CLI 將不會列印任何 ANSI 顏色。請參閱 no-color.org

XDG_CACHE_HOME

僅在未設定 HF_HOME 時使用!

這是在 Linux 機器上配置使用者特定的非必要(快取)資料應寫入何處的預設方式。

如果未設定 HF_HOME,則預設主目錄將為 "$XDG_CACHE_HOME/huggingface",而不是 "~/.cache/huggingface"

在 GitHub 上更新

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