Hugging Face Datasets
是一个轻量级的开源库,专门用于方便的数据集加载与处理,主要提供两大核心功能:一是简化了数据集获取与预处理的操作,二是提高了数据集处理的效率。它支持对大量公共数据集的一键加载并进行预处理,这些数据集涵盖图像、音频和文本数据,支持多达467种语言和方言。
该库允许用户通过一行代码从 Hugging Face 数据集中随时下载和预处理所需要的数据集,例如通过命令 squad_dataset = load_dataset("squad")
,用户可以轻松下载 SQuAD 数据集,并为机器学习模型准备数据加载器(支持 Numpy、Pandas、PyTorch、TensorFlow 和 JAX)。
Datasets
提供简单快速且可重复的数据预处理功能,用户可以利用如 processed_dataset = dataset.map(process_example)
这样的简单命令可高效地处理公共数据集或本地数据集,这些数据集的格式可以是 CSV、JSON、文本、PNG、JPEG、WAV、MP3 和 Parquet 等。
Datasets
利用 Apache Arrow 提供的零序列化开销的内存映射技术,使用户不受 RAM 内存限制。用户可以选择通过 pip 或 conda 来安装 Datasets
。如果要在 PyTorch、TensorFlow 或 pandas 环境中使用,还需安装这些框架。快速入门指南和使用文档均在 Hugging Face Datasets 文档网站中提供。
以下是如何加载文本数据集的一个简单示例:
from datasets import load_dataset # 列出所有可用的数据集 from huggingface_hub import list_datasets print([dataset.id for dataset in list_datasets()]) # 加载数据集并打印训练集中的第一个例子 squad_dataset = load_dataset('squad') print(squad_dataset['train'][0]) # 对数据集进行处理 - 添加文本长度列 dataset_with_length = squad_dataset.map(lambda x: {"length": len(x["context"])}) # 对数据集进行处理 - 对上下文文本进行标记化(使用 🤗 Transformers 库中的标记器) from transformers import AutoTokenizer tokenizer = AutoTokenizer.from_pretrained('bert-base-cased') tokenized_dataset = squad_dataset.map(lambda x: tokenizer(x['context']), batched=True)
Datasets
项目支持用户方便地添加和共享新数据集。用户能够通过简单的步骤在 Hugging Face 数据集平台上上传或更新数据集,进一步促进机器学习社区的合作与发展。
值得注意的是,Datasets
起源于 TensorFlow Datasets 的分支,主要区别在于其脚本的外部加载机制、基于 Apache Arrow 后端序列化的存储方式,以及框架无关的数据集类设计。
Hugging Face Datasets
的设计旨在提升大数据集处理的流畅性和灵活性,使用户能够更高效地进行机器学习模型的训练和验证。