Datasets documentation

Solução de problemas

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Solução de problemas

Este guia tem como objetivo fornecer as ferramentas e o conhecimento necessários para lidar com alguns problemas comuns. Se as sugestões listadas neste guia não cobrirem a sua situação, consulte a seção Pedindo Ajuda para saber onde encontrar ajuda com o seu problema específico.

Problemas ao fazer upload de conjuntos de dados com push_to_hub

Problemas de autenticação

Se você está enfrentando problemas de autenticação ao compartilhar um conjunto de dados no 🤗 Hub usando Dataset.push_to_hub() e um token de acesso do Hugging Face:

  • Certifique-se de que o token do Hugging Face que você está usando para se autenticar é um token com permissão de write.
  • No OSX, pode ser útil limpar todas as senhas do huggingface.co no seu keychain access, bem como reconfigurar git config --global credential.helper osxkeychain, antes de usar hf auth login.

Alternativamente, você pode usar chaves SSH para se autenticar - leia mais na documentação do 🤗 Hub.

Conexão perdida no upload de um grande conjunto de dados

Ao fazer upload de grandes conjuntos de dados para o Hub, se o número de shards do conjunto de dados for grande, isso pode criar muitos commits para o Hub em um curto período. Isso resultará em um erro de conexão. O erro de conexão também pode ser causado por um erro HTTP 500 retornado pelo bucket AWS S3 que o Hub usa internamente. Em qualquer uma das situações, você pode executar novamente Dataset.push_to_hub() para prosseguir com o upload do conjunto de dados. O Hub verificará os SHAs dos shards já enviados para evitar reenviá-los. Estamos trabalhando para tornar o processo de upload mais robusto a erros transitórios, portanto, atualizar para a versão mais recente da biblioteca é sempre uma boa ideia.

Muitas solicitações

Fazer upload de grandes conjuntos de dados por meio de push_to_hub() pode resultar em um erro:

HfHubHTTPError: 429 Client Error: Too Many Requests for url: ...
You have exceeded our hourly quotas for action: commit. We invite you to retry later.

Se você encontrar esse problema, é necessário atualizar a biblioteca datasets para a versão mais recente (ou pelo menos 2.15.0).

Problemas ao criar conjuntos de dados a partir de dados personalizados

Carregando imagens e áudio de uma pasta

Ao criar um dataset a partir de uma pasta, um dos problemas mais comuns é que a estrutura de arquivos não segue o formato esperado, ou há um problema no arquivo de metadados.

Saiba mais sobre a estrutura de pastas necessária nas páginas de documentação correspondentes:

Problemas de pickling

Problemas de pickling ao usar Dataset.from_generator

Ao criar um dataset, IterableDataset.from_generator() e Dataset.from_generator() esperam uma função geradora “picklable”. Isso é necessário para fazer o hash da função usando pickle para poder fazer o cache do dataset no disco.

Embora as funções geradoras sejam geralmente “picklable”, observe que os objetos gerador não são. Portanto, se você estiver usando um objeto gerador, encontrará um TypeError como este:

TypeError: cannot pickle 'generator' object

Esse erro também pode ocorrer ao usar uma função geradora que utiliza um objeto global que não é “picklable”, como uma conexão com um banco de dados, por exemplo. Se esse for o caso, você pode inicializar esse objeto diretamente dentro da função geradora para evitar esse erro.

Problemas de pickling com Dataset.map

Erros de pickling também podem ocorrer no Dataset.map() multiprocessado - os objetos são serializados para serem passados aos processos filhos. Se os objetos usados na transformação não forem serializáveis, não é possível fazer o cache do resultado de map, o que leva a um erro.

Aqui estão algumas formas de resolver esse problema:

  • Uma solução universal para problemas de pickle é garantir que os objetos (ou classes geradoras) sejam pickláveis manualmente, implementando __getstate__ / __setstate__ / __reduce__.
  • Você também pode fornecer seu próprio hash exclusivo em map com o argumento new_fingerprint.
  • Você também pode desativar o cache chamando datasets.disable_caching(), no entanto, isso é indesejável - saiba mais sobre a importância do cache

Pedindo ajuda

Se as dicas de solução de problemas acima não ajudaram você a resolver seu problema, procure ajuda na comunidade e na equipe.

Fóruns

Peça ajuda nos fóruns do Hugging Face - publique sua pergunta na categoria 🤗Datasets Certifique-se de escrever uma postagem descritiva com o contexto relevante sobre sua configuração e código reproduzível para maximizar a probabilidade de que seu problema seja resolvido!

Discord

Faça uma pergunta no Discord e deixe que a equipe e a comunidade te ajudem.

Discussões da Comunidade no 🤗 Hub

Se você estiver enfrentando problemas ao criar um dataset personalizado no Hub, pode pedir ajuda à equipe do Hugging Face abrindo uma discussão na aba Community do seu dataset com esta mensagem:

# Dataset rewiew request for <Dataset name>

## Description

<brief description of the dataset>

## Files to review

- file1
- file2
- ...

cc @lhoestq @albertvillanova

GitHub Issues

Por fim, se você suspeita de ter encontrado um bug relacionado à própria biblioteca, crie uma Issue no repositório GitHub do 🤗 Datasets. Inclua o contexto sobre o bug: um trecho de código para reproduzi-lo, detalhes sobre seu ambiente e dados, etc., para nos ajudar a identificar o que está errado e como podemos corrigi-lo.

Update on GitHub