Datasets documentation

Gerenciamento de cache

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v4.8.4).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Gerenciamento de cache

Quando você baixa um conjunto de dados do Hugging Face, os dados são armazenados localmente no seu computador. Os arquivos do Hugging Face são armazenados normalmente no cache do huggingface_hub, que fica em ~/.cache/huggingface/hub por padrão. Consulte a documentação do cache do Hub para mais detalhes e como alterar sua localização.

O cache do Hub permite que o 🤗 Datasets evite baixar novamente os arquivos de datasets do Hugging Face toda vez que você os usa.

🤗 O Datasets também possui seu próprio cache para armazenar datasets convertidos no formato Arrow (o formato usado por objetos Dataset).

Este guia se concentra no cache do 🤗 Datasets e mostrará como:

  • Alterne o diretório de cache.
  • Controle como um conjunto de dados é carregado do cache.
  • Limpe os arquivos de cache no diretório.
  • Ative ou desative o cache.

Diretório de cache

O diretório de cache padrão do 🤗 Datasets é ~/.cache/huggingface/datasets. Altere a localização do cache definindo a variável de ambiente do shell, HF_HOME, para outro diretório:

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

Alternativamente, você pode definir a variável de ambiente HF_DATASETS_CACHE para controlar apenas o diretório de cache específico dos datasets:

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

⚠️ Isso se aplica apenas a arquivos gravados pela biblioteca datasets (por exemplo, arquivos Arrow e índices).
Isso não afeta arquivos baixados do Hugging Face Hub (como modelos, tokenizadores ou fontes brutas de conjuntos de dados), que por padrão estão localizados em ~/.cache/huggingface/hub e são controlados separadamente pela variável HF_HUB_CACHE:

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

💡 Se você deseja realocar todos os caches do Hugging Face — incluindo downloads de datasets e do hub — use a variável HF_HOME em vez disso:

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

Isso resulta em:

  • cache de datasets → /path/to/cache_root/datasets
  • cache do hub → /path/to/cache_root/hub

Essas distinções são especialmente úteis ao trabalhar em ambientes compartilhados ou sistemas de arquivos em rede (por exemplo, NFS).
Consulte a issue #7480 para a discussão sobre como os usuários encontraram localizações de cache inesperadas quando HF_HUB_CACHE não estava definido junto com HF_DATASETS_CACHE.

Ao carregar um conjunto de dados, você também tem a opção de alterar onde os dados são armazenados em cache. Altere o parâmetro cache_dir para o caminho desejado:

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

Modo de download

Após baixar um conjunto de dados, controle como ele é carregado por load_dataset() com o parâmetro download_mode. Por padrão, o 🤗 Datasets reutilizará um conjunto de dados se ele já existir. Mas, se você precisar do conjunto de dados original sem nenhuma função de processamento aplicada, baixe os arquivos novamente, conforme mostrado abaixo:

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

Consulte DownloadMode para obter a lista completa de modos de download.

Arquivos de cache

Limpe os arquivos de cache do Arrow no diretório com Dataset.cleanup_cache_files():

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

Ativar ou desativar o cache

Se você estiver usando um arquivo em cache localmente, o dataset será recarregado automaticamente com as transformações anteriores aplicadas ao dataset. Desative esse comportamento definindo o argumento load_from_cache_file=False em Dataset.map():

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

No exemplo acima, o 🤗 Datasets executará a função add_prefix novamente sobre o conjunto de dados inteiro, em vez de carregar o conjunto de dados a partir do seu estado anterior.

Desative o cache em escala global com disable_caching():

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

Quando você desativa o cache, o 🤗 Datasets não recarregará mais os arquivos em cache ao aplicar transformações em datasets. Qualquer transformação aplicada ao seu dataset precisará ser reaplicada.

Se você deseja reutilizar um dataset do zero, tente definir o parâmetro download_mode em load_dataset() em vez disso.

Melhorar o desempenho

Desativar o cache e copiar o conjunto de dados em memória acelerará as operações do conjunto de dados. Existem duas opções para copiar o conjunto de dados em memória:

  1. Defina datasets.config.IN_MEMORY_MAX_SIZE para um valor diferente de zero (em bytes) que caiba na memória RAM.

  2. Defina a variável de ambiente HF_DATASETS_IN_MEMORY_MAX_SIZE para um valor diferente de zero. Observe que o primeiro método tem precedência maior.

Update on GitHub