Datasets documentation
Gestión de la caché
Gestión de la caché
Cuando descargas un conjunto de datos de Hugging Face, los datos se almacenan localmente en tu computadora.
Los archivos de Hugging Face se almacenan de forma habitual en la caché de huggingface_hub, que por defecto se encuentra en ~/.cache/huggingface/hub.
Consulta la documentación de la caché de Hub para obtener más detalles y saber cómo cambiar su ubicación.
La caché de Hub permite a 🤗 Datasets evitar la descarga repetida de los archivos de conjuntos de datos desde Hugging Face cada vez que los utilizas.
🤗 Datasets también tiene su propia caché para almacenar conjuntos de datos convertidos al formato Arrow (el formato utilizado por los objetos Dataset).
Esta guía se centra en la caché de 🤗 Datasets y te mostrará cómo:
- Cambiar el directorio de caché.
- Controla cómo se carga un conjunto de datos desde la caché.
- Limpia los archivos de caché en el directorio.
- Activar o desactivar la caché.
Directorio de caché
El directorio de caché predeterminado de 🤗 Datasets es ~/.cache/huggingface/datasets. Cambie la ubicación de la caché estableciendo la variable de entorno de la shell, HF_HOME, en otro directorio:
$ export HF_HOME="/path/to/another/directory"Alternativamente, puede establecer la variable de entorno HF_DATASETS_CACHE para controlar únicamente el directorio de caché específico de datasets:
$ export HF_DATASETS_CACHE="/path/to/datasets_cache"⚠️ Esto solo se aplica a los archivos escritos por la biblioteca datasets (p. ej., archivos e índices Arrow).
No afecta a los archivos descargados desde Hugging Face Hub (como modelos, tokenizadores o fuentes de datos crudos), que se encuentran por defecto en ~/.cache/huggingface/hub y se controlan de forma independiente mediante la variable HF_HUB_CACHE:
$ export HF_HUB_CACHE="/path/to/hub_cache"💡 Si deseas reubicar todas las cachés de Hugging Face, incluidas las descargas de datasets y del hub, usa la variable HF_HOME en su lugar:
$ export HF_HOME="/path/to/cache_root"Esto da como resultado:
- caché de datasets →
/path/to/cache_root/datasets - caché de hub →
/path/to/cache_root/hub
Estas distinciones son especialmente útiles al trabajar en entornos compartidos o sistemas de archivos en red (p. ej., NFS).
Consulte issue #7480 para ver la discusión sobre cómo los usuarios encontraron ubicaciones de caché inesperadas cuando HF_HUB_CACHE no se estableció junto con HF_DATASETS_CACHE.
Al cargar un conjunto de datos, también tienes la opción de cambiar dónde se almacena en caché. Cambia el parámetro cache_dir a la ruta que desees:
>>> from datasets import load_dataset
>>> dataset = load_dataset('username/dataset', cache_dir="/path/to/another/directory/datasets")Modo de descarga
Controla la reutilización de los archivos fuente descargados y los conjuntos de datos preparados en load_dataset() con el parámetro download_mode. De forma predeterminada, 🤗 Datasets los reutilizará si existen. Para volver a descargar los archivos fuente y reconstruir el conjunto de datos, usa force_redownload:
>>> from datasets import load_dataset
>>> dataset = load_dataset('rajpurkar/squad', download_mode='force_redownload')Consulte DownloadMode para obtener la lista completa de modos de descarga.
Archivos de caché
Limpia los archivos de caché de Arrow en el directorio con Dataset.cleanup_cache_files():
# Returns the number of removed cache files
>>> dataset.cleanup_cache_files()
2Activar o desactivar la caché
Si estás usando un archivo en caché localmente, se recargará automáticamente el conjunto de datos con las transformaciones anteriores que aplicaste al conjunto de datos. Desactiva este comportamiento estableciendo el argumento load_from_cache_file=False en Dataset.map():
>>> updated_dataset = small_dataset.map(add_prefix, load_from_cache_file=False)En el ejemplo anterior, 🤗 Datasets ejecutará la función add_prefix sobre todo el conjunto de datos de nuevo, en lugar de cargar el conjunto de datos desde su estado anterior.
Desactive la caché a escala global con disable_caching():
>>> from datasets import disable_caching
>>> disable_caching()Cuando desactiva la caché, 🤗 Datasets ya no volverá a cargar los archivos en caché al aplicar transformaciones a los conjuntos de datos. Cualquier transformación que aplique a su conjunto de datos deberá volver a aplicarse.
Si desea reutilizar un dataset desde cero, intente establecer el parámetro
download_modeen load_dataset() en su lugar.
Mejorar el rendimiento
Desactivar la caché y copiar el conjunto de datos en memoria acelerará las operaciones del conjunto de datos. Hay dos opciones para copiar el conjunto de datos en memoria:
Establezca
datasets.config.IN_MEMORY_MAX_SIZEen un valor distinto de cero (en bytes) que quepa en su memoria RAM.Establezca la variable de entorno
HF_DATASETS_IN_MEMORY_MAX_SIZEen un valor distinto de cero. Tenga en cuenta que el primer método tiene mayor prioridad.