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.