Hub documentation

Baixando conjuntos de dados

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Baixando conjuntos de dados

Bibliotecas integradas

Se um conjunto de dados no Hub estiver vinculado a uma biblioteca compatível, o carregamento do conjunto de dados pode ser feito em apenas algumas linhas. Para obter informações sobre como acessar o conjunto de dados, você pode clicar no botão “Use this dataset” na página do conjunto de dados para ver como fazer isso. Por exemplo, samsum mostra como fazer isso com datasets abaixo.

Usando a Biblioteca de Clientes do Hugging Face

Você pode usar a biblioteca huggingface_hub para criar, excluir, atualizar e recuperar informações de repositórios. Por exemplo, para baixar o conjunto de dados HuggingFaceH4/ultrachat_200k pela linha de comando, execute

hf download HuggingFaceH4/ultrachat_200k --repo-type dataset

Consulte a documentação de download do HF CLI para mais informações.

Você também pode integrar isso à sua própria biblioteca! Por exemplo, você pode carregar rapidamente um conjunto de dados CSV com poucas linhas usando Pandas.

from huggingface_hub import hf_hub_download
import pandas as pd

REPO_ID = "YOUR_REPO_ID"
FILENAME = "data.csv"

dataset = pd.read_csv(
    hf_hub_download(repo_id=REPO_ID, filename=FILENAME, repo_type="dataset")
)

Usando Git

Como todos os conjuntos de dados no Hub são repositórios Git com suporte Xet, você pode cloná-los localmente instalando o git-xet e executando:

git xet install
git lfs install
git clone git@hf.co:datasets/<dataset ID> # example: git clone git@hf.co:datasets/allenai/c4

Se você tiver acesso de escrita ao repositório específico do dataset, também terá a capacidade de commitar e enviar revisões ao dataset.

Adicione sua chave pública SSH em suas configurações de usuário para enviar alterações e/ou acessar repositórios privados.

Downloads mais rápidos

Você pode testar sua velocidade de download da CDN da Hugging Face em fast.hf.co. Isso executa um teste rápido de largura de banda contra o servidor de borda da HF mais próximo, ajudando você a entender sua taxa de transferência de referência. Você também pode medir a velocidade de download pelo terminal usando a extensão de CLI hf-speedtest:

hf extensions install julien-c/hf-speedtest
hf speedtest

Para transferências mais rápidas, o Hub usa o backend de armazenamento Xet com concorrência adaptativa que ajusta automaticamente os fluxos paralelos com base nas condições da rede. Consulte Downloads mais rápidos para modelos para detalhes sobre opções de ajuste como HF_XET_HIGH_PERFORMANCE=1.

Usando hf-mount

Para conjuntos de dados grandes, você pode montar um repositório como um sistema de arquivos local com hf-mount em vez de baixar o repositório completo. Os arquivos são obtidos de forma preguiçosa — apenas os bytes que seu código lê acessam a rede. Útil quando seu fluxo de trabalho espera caminhos de arquivos locais (por exemplo, tarfile, zipfile, imagefolder) em vez de iteradores Python.

brew install hf-mount
hf-mount start repo datasets/stanfordnlp/imdb /tmp/imdb

Os repositórios são montados somente para leitura. Consulte Montar como um sistema de arquivos local para detalhes completos de configuração, opções de backend e cache.

Baixando por trás de um proxy ou firewall

Se sua rede restringe o tráfego de saída por meio de um firewall ou proxy, o download de datasets requer mais do que apenas huggingface.co. O conteúdo dos arquivos é servido a partir de hostnames de armazenamento e CDN separados, e load_dataset / hf download falharão se esses não forem acessíveis, mesmo quando o próprio huggingface.co estiver na lista de permissões.

Permita os seguintes nomes de host (todos via HTTPS / porta 443):

Nome do hostPropósito
huggingface-proxy-6ci.pages.devAPI do Hub, metadados e redirecionamentos de download
cas-server.xethub.hf.coAPIs do protocolo Xet, download e upload (EUA)
cas-server.xethub-eu.hf.coAPIs do protocolo Xet, download e upload (UE)
transfer.xethub.hf.coAPIs de download do armazenamento Xet (EUA)
transfer.xethub-eu.hf.coAPIs de download do armazenamento Xet (UE)
us.aws.cdn.hf.coBorda da CDN (EUA)
us.gcp.cdn.hf.coBorda da CDN (EUA)
cdn-lfs-us-1.hf.coLFS CDN (EUA)
cdn-lfs-eu-1.hf.coLFS CDN (UE)

Os downloads seguem redirecionamentos HTTP de huggingface.co para esses nomes de host, portanto, permitir apenas huggingface.co não é suficiente. Um ReadTimeoutError (em vez de um erro de conexão) no meio de um download geralmente significa que a conexão inicial foi bem-sucedida, mas um host de armazenamento ou CDN está bloqueado.

O comportamento de curinga depende de como o seu proxy corresponde domínios. Muitos proxies corporativos tratam uma entrada na lista de permissões como uma correspondência de sufixo que cobre subdomínios em qualquer profundidade. Se o seu for esse o caso, a opção mais simples é permitir os sufixos hf.co e huggingface.co — eles cobrem todos os endpoints atuais e futuros de armazenamento e CDN.

Se o seu proxy só suporta curingas de rótulo único (onde *.hf.co corresponde a cdn-lfs-us-1.hf.co, mas não ao mais profundo us.aws.cdn.hf.co ou cas-server.xethub.hf.co), adicione os nomes de host explícitos da tabela acima à lista de permissões. Observe que *.xethub.hf.co não cobre os hosts da UE sob xethub-eu.hf.co, e *.cdn.hf.co não cobre os de dois rótulos us.aws.cdn.hf.co / us.gcp.cdn.hf.co.

Esses nomes de host podem mudar à medida que nossa infraestrutura de armazenamento e CDN evolui. Onde sua política de segurança permitir, adicione os sufixos hf.co e huggingface.co (todos os subdomínios) à lista de permissões para que suas regras não falhem quando um endpoint específico mudar.

Lista legível por máquina

Os nomes de host acima também são publicados como JSON em https://huggingface.co/.well-known/meta.json, para que você possa gerar regras de proxy ou firewall a partir dele, em vez de copiar a tabela manualmente.

O arquivo muda conforme os endpoints são adicionados e removidos. Busque-o ao construir suas regras, em vez de fixar uma cópia.

Update on GitHub