这个项目能做什么
Hugging Face Datasets 是一个轻量级 Python 库,专注于两大核心能力:公共数据集的一行式数据加载器,以及高效、可复现的数据预处理。
加载数据
- `load_dataset()` 从 Hugging Face Hub 或本地文件获取数据集。Hub 托管着数量庞大且持续增长的数据集集合,涵盖图像、音频、文本(数百种语言和方言)、3D 医学影像、视频以及 AI 智能体轨迹。
- 支持的本地格式包括 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` 中,用于多分割数据集,如训练/测试/验证集。
安装与扩展
- 可通过 pip(`pip install datasets`)或 conda(`conda install -c huggingface -c conda-forge datasets`)安装。
- 可选扩展涵盖音频、视觉、PDF/NIfTI,以及与 PyTorch、TensorFlow 和 JAX 的框架集成。
社区与可复现性
- 项目文档说明了如何通过网页、Python 或 Git 在 Hub 上上传和共享数据集。
- 鼓励用户固定数据集修订版本以确保可复现性。
- 欢迎贡献,贡献指南涵盖问题、拉取请求、代码风格(Ruff)、测试和文档。
- 该库在 EMNLP 2021 系统演示论文中进行了介绍,并拥有带版本号的 Zenodo DOI 供引用。
评论
0 评分人数达到10人后显示
登录后参与讨论。