資料集文件

快取管理

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

快取管理

當您從 Hugging Face 下載資料集時,資料會儲存在您的電腦本機中。來自 Hugging Face 的檔案預設會儲存在 huggingface_hub 快取中,預設路徑為 ~/.cache/huggingface/hub。關於更多詳細資訊以及如何更改其位置,請參閱 Hub 快取說明文件

Hub 快取讓 🤗 Datasets 能夠避免在每次使用時都重新下載資料集檔案。

🤗 Datasets 也有自己的快取,用於儲存已轉換為 Arrow 格式(Dataset 物件所使用的格式)的資料集。

本指南聚焦於 🤗 Datasets 的快取,並將向您展示如何:

  • 更改快取目錄。
  • 控制資料集如何從快取載入。
  • 清理目錄中的快取檔案。
  • 啟用或停用快取。

快取目錄

預設的 🤗 Datasets 快取目錄為 ~/.cache/huggingface/datasets。您可以透過將 Shell 環境變數 HF_HOME 設定為另一個目錄來更改快取位置。

$ export HF_HOME="/path/to/another/directory/datasets"

或者,您可以設定 HF_DATASETS_CACHE 環境變數,僅控制資料集專屬的快取目錄。

$ export HF_DATASETS_CACHE="/path/to/datasets_cache"

⚠️ 這僅適用於由 datasets 函式庫寫入的檔案(例如 Arrow 檔案和索引)。
它**不會**影響從 Hugging Face Hub 下載的檔案(如模型、分詞器或原始資料集來源),這些檔案預設位於 ~/.cache/huggingface/hub,並透過 HF_HUB_CACHE 變數分別進行控制。

$ export HF_HUB_CACHE="/path/to/hub_cache"

💡 如果您希望遷移所有 Hugging Face 快取(包括資料集和 Hub 下載的檔案),請改用 HF_HOME 變數。

$ export HF_HOME="/path/to/cache_root"

這將導致:

  • 資料集快取 → /path/to/cache_root/datasets
  • Hub 快取 → /path/to/cache_root/hub

這些區別在共用環境或網路檔案系統(如 NFS)中工作時特別有用。
請參閱 issue #7480,了解關於當 HF_HUB_CACHE 未與 HF_DATASETS_CACHE 同步設定時,使用者如何遇到非預期快取位置的討論。

當您載入資料集時,您也可以選擇更改資料快取的位置。將 cache_dir 參數變更為您想要的路徑即可。

>>> from datasets import load_dataset
>>> dataset = load_dataset('username/dataset', cache_dir="/path/to/another/directory/datasets")

下載模式

下載資料集後,您可以使用 load_dataset()download_mode 參數來控制其載入方式。預設情況下,若資料集已存在,🤗 Datasets 將會重複使用該資料集。但如果您需要未經任何處理函數應用的原始資料集,請如下所示重新下載檔案。

>>> from datasets import load_dataset
>>> dataset = load_dataset('rajpurkar/squad', download_mode='force_redownload')

關於下載模式的完整列表,請參閱 DownloadMode

快取檔案

使用 Dataset.cleanup_cache_files() 清理目錄中的 Arrow 快取檔案。

# Returns the number of removed cache files
>>> dataset.cleanup_cache_files()
2

啟用或停用快取

如果您正在使用本機快取的檔案,它會自動以您先前對資料集所做的任何轉換重新載入資料集。您可以透過在 Dataset.map() 中設定 load_from_cache_file=False 來停用此行為。

>>> updated_dataset = small_dataset.map(add_prefix, load_from_cache_file=False)

在上述範例中,🤗 Datasets 將會在整個資料集上再次執行 add_prefix 函數,而不是從先前的狀態載入資料集。

使用 disable_caching() 在全域範圍內停用快取。

>>> from datasets import disable_caching
>>> disable_caching()

當您停用快取時,🤗 Datasets 在對資料集進行轉換時將不再重新載入快取檔案。您對資料集所做的任何轉換都需要重新執行。

如果您想從頭開始重複使用資料集,請嘗試在 load_dataset() 中設定 download_mode 參數。

提升效能

停用快取並將資料集複製到記憶體中可以加快資料集運算速度。有兩種將資料集複製到記憶體中的選項:

  1. datasets.config.IN_MEMORY_MAX_SIZE 設定為一個非零值(以位元組為單位),且該數值需在您的記憶體 (RAM) 可容納範圍內。

  2. 將環境變數 HF_DATASETS_IN_MEMORY_MAX_SIZE 設定為一個非零值。請注意,第一種方法的優先級較高。

在 GitHub 上更新

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