Datasets 文件

快取管理

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

快取管理

當您從 Hugging Face 下載資料集時,資料會本地儲存在您的計算機上。來自 Hugging Face 的檔案通常儲存在 `huggingface_hub` 快取中,預設位置是 `~/.cache/huggingface/hub`。更多詳細資訊以及如何更改其位置,請參閱 Hub 快取文件

Hub 快取使 🤗 Datasets 在每次使用資料集時避免從 Hugging Face 重新下載檔案。

🤗 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)中特別有用。
請參閱 問題 #7480,瞭解當 `HF_DATASETS_CACHE` 與 `HF_HUB_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.