这个项目能做什么

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 供引用。