Об этом проекте
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 для цитирования.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.