Sobre o projeto
Hugging Face Datasets é uma biblioteca Python leve focada em duas capacidades principais: dataloaders de uma linha para conjuntos de dados públicos e pré-processamento de dados eficiente e reproduzível.
Carregamento de dados
- `load_dataset()` busca conjuntos de dados do Hugging Face Hub ou de arquivos locais. O Hub hospeda uma coleção grande e crescente de conjuntos de dados cobrindo imagem, áudio, texto (centenas de idiomas e dialetos), imagens médicas 3D, vídeo e traços de agentes de IA.
- Os formatos locais suportados incluem CSV, JSON, JSONL, Parquet, Arrow, HDF5, XML, texto simples, PNG, JPEG, WAV, MP3, PDF e NIfTI.
- Os conjuntos de dados também podem ser construídos a partir de objetos Python: dicionários, listas, DataFrames do Pandas ou geradores.
Processamento de dados
- `dataset.map()` aplica funções do usuário aos exemplos, com batching e multiprocessamento (`num_proc`) para ganhos de velocidade em paralelo.
- Os resultados são armazenados em cache, portanto etapas de processamento repetidas não são recalculadas.
- O backend Apache Arrow fornece armazenamento com mapeamento de memória e cópia zero, permitindo que os conjuntos de dados excedam a RAM disponível.
- O modo streaming (`streaming=True`) itera sobre os dados em tempo real sem baixá-los primeiro, útil para cargas de trabalho muito grandes ou com restrições de disco.
Interoperabilidade
- Conversão nativa de e para NumPy, Pandas, Polars, Arrow, PyTorch, TensorFlow, JAX e Spark.
- Suporte integrado a índices FAISS e Elasticsearch para busca por similaridade.
- Um tipo de feature `Json()` lida com dados estruturados flexíveis.
Classes principais
- `Dataset`: em memória ou com mapeamento de memória, suporta indexação, fatiamento, acesso aleatório e cache.
- `IterableDataset`: preguiçoso e streamável para processamento fora do núcleo.
- Ambos são encapsulados em `DatasetDict` / `IterableDatasetDict` para conjuntos de dados com múltiplas divisões, como train/test/validation.
Instalação e extras
- Instalável via pip (`pip install datasets`) ou conda (`conda install -c huggingface -c conda-forge datasets`).
- Extras opcionais cobrem áudio, visão, PDFs/NIfTI e integrações de frameworks para PyTorch, TensorFlow e JAX.
Comunidade e reprodutibilidade
- O projeto documenta como enviar e compartilhar conjuntos de dados no Hub via web, Python ou Git.
- Os usuários são incentivados a fixar revisões de conjuntos de dados para reprodutibilidade.
- Contribuições são bem-vindas, com um guia de contribuição cobrindo issues, pull requests, estilo de código (Ruff), testes e documentação.
- A biblioteca é descrita em um artigo de demonstração de sistema da EMNLP 2021 e possui DOIs versionados do Zenodo para citação.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.