Datasets
Datasets 是一个提供两项主要功能的库。
核验日期
核心信息
以下信息由程序从官方接口读取,不经模型改写。
- 许可证
- Apache-2.0
- 语言
- Python
- 维护方
- huggingface
- 核验日期
它是什么
Datasets 是一个提供两项主要功能的库。这两项功能之一是面向许多公开数据集的一行式数据加载器。Datasets 可以加载基于数据集作者维护的带版本 git 仓库的数据集。
该库提供两个主要的数据集类。为了可复现性,项目请用户固定所用仓库的 revision。
主要能力
Datasets 原生支持 CSV、JSON、JSONL、Parquet、Arrow、XML、Text、Webdataset 等格式。
Datasets 内置支持文本、音频、图像、视频、PDF 和 NIfTI(3D 医学)数据。
如果数据集大于磁盘,或者不想等待下载数据,可以使用流式模式。
Datasets 可以直接读写 Hugging Face Storage Buckets,用于可变的大规模原始数据。
Datasets 可以从 Hub 加载并处理 AI 智能体轨迹(提示、工具调用、响应)。
Datasets 内置对 FAISS 和 Elasticsearch 索引的支持,用于相似性搜索。
Datasets 通过 Json 特性类型支持灵活的 JSON 和结构化数据。
怎么上手
Datasets 可以从 PyPi 安装,并且应安装在虚拟环境中,例如 venv 或 conda。
Datasets 通过 extras 支持各种可选功能。
Datasets 的 API 围绕单个函数展开,该函数用于实例化数据集。
一行式数据集加载可以从 Hugging Face Hub 或本地文件加载 AI 就绪的数据集。
pip install datasetspip install "datasets @ git+https://github.com/huggingface/datasets.git"conda install -c huggingface -c conda-forge datasets# For audio (torchcodec)
pip install datasets[audio]
# For image/video (Pillow, torchcodec)
pip install datasets[vision]
# For PDFs/NIfTI (pdfplumber, nibabel)
pip install datasets[pdfs,nibabel]
# For PyTorch/TensorFlow/JAX integration
pip install datasets[torch,tensorflow,jax]
from datasets import load_dataset
# Load a dataset and print the first example in the training set
squad_dataset = load_dataset('rajpurkar/squad')
print(squad_dataset['train'][0])
# Process the dataset - add a column with the length of the context texts
dataset_with_length = squad_dataset.map(lambda x: {"length": len(x["context"])})
# Tokenize the context texts (using a tokenizer from the 🤗 Transformers library)
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained('bert-base-cased')
tokenized_dataset = squad_dataset.map(lambda x: tokenizer(x['context']), batched=True)
# Tokenize chat conversations with a chat template (using a model that supports chat templates)
# This is useful for fine-tuning instruction/chat models
# Load a popular chat dataset (ultrachat_200k contains ~200k AI assistant conversations)
chat_dataset = load_dataset('HuggingFaceH4/ultrachat_200k', split='train_sft')
chat_tokenizer = AutoTokenizer.from_pretrained('Qwen/Qwen2.5-7B-Instruct')
def tokenize_chat(examples):
# Apply the chat template and tokenize in one step
return chat_tokenizer.apply_chat_template(examples["messages"])
tokenized_chat_dataset = chat_dataset.map(tokenize_chat, batched=True)适合谁
Dataset 类是由 Apache Arrow 支持的内存/内存映射数据集。Dataset 类支持索引、切片、随机访问和缓存。IterableDataset 类是用于大规模/核外处理的惰性、可流式数据集。
IterableDataset 类支持流式处理和无限迭代。Dataset 和 IterableDataset 被包装在 DatasetDict / IterableDatasetDict 中,用于多划分数据集,例如 train/test/val。Datasets 原生支持与 NumPy、Pandas、Polars、Arrow、PyTorch、TensorFlow、JAX 和 Spark 之间的转换。
一行式数据加载器所对应的公开数据集中包括 467 种语言和方言的文本数据集。有一个页面介绍如何使用网页浏览器或 Python 将数据集上传到 Hub。有一个页面介绍如何使用 Git 上传数据集。
项目在代码风格指南中使用 Ruff。如果数据集所有者不希望其数据集被包含在 Hugging Face Hub 中,可以在数据集页面的 Community 标签页中发起讨论或拉取请求来联系。
来源
本页内容整理自以下官方来源,点击可核对原文。
- GitHub READMEhttps://github.com/huggingface/datasets抓取于
核验日期 ·
本页由 AI 依据上述官方来源整理,并经自动核对,未经本站实测。 发现错误?告诉我们。