HuggingFace Datasets
收藏数据集概述
🤗 Datasets 是一个轻量级库,主要提供以下两大功能:
-
一键式加载多个公共数据集:通过简单命令如
squad_dataset = load_dataset("squad"),可以下载并预处理包括文本(467种语言和方言)、图像、音频等在内的主要公共数据集。这些数据集来自 HuggingFace Datasets Hub。 -
高效的数据预处理:支持简单、快速且可重复的数据预处理,适用于上述公共数据集以及本地数据集(如CSV、JSON、文本、PNG、JPEG等格式)。使用命令如
processed_dataset = dataset.map(process_example)可以高效准备数据集以供检查和机器学习模型评估及训练。
数据集特点
- 处理大型数据集:利用Apache Arrow作为零序列化成本的后端,自然地释放用户从RAM内存限制中。
- 智能缓存:避免重复处理数据。
- 轻量级且快速:具有透明且Python化的API,支持多进程、缓存和内存映射。
- 内置与NumPy、pandas、PyTorch、TensorFlow 2和JAX的互操作性。
数据集使用
主要方法包括:
datasets.list_datasets():列出可用数据集。datasets.load_dataset(dataset_name, **kwargs):实例化一个数据集。
示例代码:
python from datasets import list_datasets, load_dataset
列出所有可用数据集
print(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)
添加新数据集
提供详细的步骤指南,帮助用户将新数据集添加到HuggingFace Datasets Hub。详细指南可在此处找到:添加数据集指南。




