À propos du projet

Hugging Face Datasets est une bibliothèque Python légère axée sur deux capacités principales : des chargeurs de données en une ligne pour les jeux de données publics, et un prétraitement des données efficace et reproductible. Chargement des données - `load_dataset()` récupère des jeux de données depuis le Hugging Face Hub ou depuis des fichiers locaux. Le Hub héberge une collection vaste et croissante de jeux de données couvrant l'image, l'audio, le texte (des centaines de langues et dialectes), l'imagerie médicale 3D, la vidéo et les traces d'agents IA. - Les formats locaux pris en charge incluent CSV, JSON, JSONL, Parquet, Arrow, HDF5, XML, texte brut, PNG, JPEG, WAV, MP3, PDF et NIfTI. - Les jeux de données peuvent également être construits à partir d'objets Python : dictionnaires, listes, DataFrames Pandas ou générateurs. Traitement des données - `dataset.map()` applique des fonctions utilisateur aux exemples, avec traitement par lots et multi-traitement (`num_proc`) pour des accélérations parallèles. - Les résultats sont mis en cache, de sorte que les étapes de traitement répétées ne sont pas recalculées. - Le backend Apache Arrow fournit un stockage à copie nulle et mappé en mémoire, permettant aux jeux de données de dépasser la RAM disponible. - Le mode streaming (`streaming=True`) itère sur les données à la volée sans les télécharger au préalable, utile pour les charges de travail très volumineuses ou à espace disque limité. Interopérabilité - Conversion native vers et depuis NumPy, Pandas, Polars, Arrow, PyTorch, TensorFlow, JAX et Spark. - Support intégré des index FAISS et Elasticsearch pour la recherche par similarité. - Un type de caractéristique `Json()` gère les données structurées flexibles. Classes principales - `Dataset` : en mémoire ou mappé en mémoire, prend en charge l'indexation, le découpage, l'accès aléatoire et la mise en cache. - `IterableDataset` : paresseux et diffusable pour le traitement hors cœur. - Les deux sont enveloppés dans `DatasetDict` / `IterableDatasetDict` pour les jeux de données multi-splits tels que train/test/validation. Installation et extras - Installable via pip (`pip install datasets`) ou conda (`conda install -c huggingface -c conda-forge datasets`). - Les extras optionnels couvrent l'audio, la vision, les PDF/NIfTI et les intégrations de frameworks pour PyTorch, TensorFlow et JAX. Communauté et reproductibilité - Le projet documente comment téléverser et partager des jeux de données sur le Hub via le web, Python ou Git. - Les utilisateurs sont encouragés à épingler les révisions de jeux de données pour la reproductibilité. - Les contributions sont les bienvenues, avec un guide de contribution couvrant les issues, les pull requests, le style de code (Ruff), les tests et la documentation. - La bibliothèque est décrite dans un article de démonstration système EMNLP 2021 et dispose de DOI Zenodo versionnés pour la citation.