EN

Datasets

Datasets 是一个提供两项主要功能的库。

核验日期

核心信息

以下信息由程序从官方接口读取,不经模型改写。

许可证
Apache-2.0
语言
Python
维护方
huggingface
核验日期

它是什么

Datasets 是一个提供两项主要功能的库。这两项功能之一是面向许多公开数据集的一行式数据加载器。Datasets 可以加载基于数据集作者维护的带版本 git 仓库的数据集。

该库提供两个主要的数据集类。为了可复现性,项目请用户固定所用仓库的 revision。

主要能力

  1. Datasets 原生支持 CSV、JSON、JSONL、Parquet、Arrow、XML、Text、Webdataset 等格式。

  2. Datasets 内置支持文本、音频、图像、视频、PDF 和 NIfTI(3D 医学)数据。

  3. 如果数据集大于磁盘,或者不想等待下载数据,可以使用流式模式。

  4. Datasets 可以直接读写 Hugging Face Storage Buckets,用于可变的大规模原始数据。

  5. Datasets 可以从 Hub 加载并处理 AI 智能体轨迹(提示、工具调用、响应)。

  6. Datasets 内置对 FAISS 和 Elasticsearch 索引的支持,用于相似性搜索。

  7. Datasets 通过 Json 特性类型支持灵活的 JSON 和结构化数据。

怎么上手

  1. Datasets 可以从 PyPi 安装,并且应安装在虚拟环境中,例如 venv 或 conda。

  2. Datasets 通过 extras 支持各种可选功能。

  3. Datasets 的 API 围绕单个函数展开,该函数用于实例化数据集。

  4. 一行式数据集加载可以从 Hugging Face Hub 或本地文件加载 AI 就绪的数据集。

摘自 README · bash
pip install datasets
摘自 README · bash
pip install "datasets @ git+https://github.com/huggingface/datasets.git"
摘自 README · bash
conda install -c huggingface -c conda-forge datasets
摘自 README · bash
# 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]
摘自 README · python
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 标签页中发起讨论或拉取请求来联系。

来源

本页内容整理自以下官方来源,点击可核对原文。

核验日期 ·

本页由 AI 依据上述官方来源整理,并经自动核对,未经本站实测。 发现错误?告诉我们。