Об этом проекте

Hugging Face Datasets — это легковесная Python-библиотека, ориентированная на две основные возможности: загрузчики публичных наборов данных в одну строку и эффективная воспроизводимая предварительная обработка данных. Загрузка данных - `load_dataset()` извлекает наборы данных из Hugging Face Hub или из локальных файлов. На Hub размещена большая и постоянно растущая коллекция наборов данных, охватывающая изображения, аудио, текст (сотни языков и диалектов), 3D-медицинскую визуализацию, видео и трассировки ИИ-агентов. - Поддерживаемые локальные форматы включают CSV, JSON, JSONL, Parquet, Arrow, HDF5, XML, простой текст, PNG, JPEG, WAV, MP3, PDF и NIfTI. - Наборы данных также можно создавать из объектов Python: словарей, списков, Pandas DataFrame или генераторов. Обработка данных - `dataset.map()` применяет пользовательские функции к примерам, с пакетной обработкой и многопроцессностью (`num_proc`) для параллельного ускорения. - Результаты кэшируются, поэтому повторные шаги обработки не пересчитываются. - Бэкенд Apache Arrow обеспечивает хранение с нулевым копированием и отображением в память, позволяя наборам данных превышать доступный объём RAM. - Потоковый режим (`streaming=True`) выполняет итерацию по данным на лету без предварительной загрузки, что полезно для очень больших рабочих нагрузок или при ограниченном дисковом пространстве. Совместимость - Нативная конвертация в и из NumPy, Pandas, Polars, Arrow, PyTorch, TensorFlow, JAX и Spark. - Встроенная поддержка индексов FAISS и Elasticsearch для поиска по сходству. - Тип признака `Json()` обрабатывает гибкие структурированные данные. Основные классы - `Dataset`: в памяти или с отображением в память, поддерживает индексацию, срезы, произвольный доступ и кэширование. - `IterableDataset`: ленивый и потоковый для обработки вне памяти. - Оба обёрнуты в `DatasetDict` / `IterableDatasetDict` для наборов данных с несколькими разбиениями, таких как train/test/validation. Установка и дополнительные компоненты - Устанавливается через pip (`pip install datasets`) или conda (`conda install -c huggingface -c conda-forge datasets`). - Дополнительные компоненты охватывают аудио, компьютерное зрение, PDF/NIfTI и интеграции с фреймворками PyTorch, TensorFlow и JAX. Сообщество и воспроизводимость - Проект документирует, как загружать и делиться наборами данных на Hub через веб-интерфейс, Python или Git. - Пользователям рекомендуется фиксировать ревизии наборов данных для воспроизводимости. - Вклад приветствуется; руководство по участию охватывает issues, pull requests, стиль кода (Ruff), тестирование и документацию. - Библиотека описана в статье-демонстрации системы EMNLP 2021 и имеет версионные DOI Zenodo для цитирования.