five

HuggingFace Datasets

收藏
github2024-02-09 更新2024-05-31 收录
下载链接:
https://github.com/merveenoyan/datasets
下载链接
链接失效反馈
官方服务:
资源简介:
🤗 Datasets 提供了一个轻量级库,主要功能包括为多个公共数据集提供一行代码的数据加载器,以及高效的数据预处理工具。支持多种类型的数据集,如文本、图像、音频等,并提供了简单易用的API,支持多种机器学习框架。

🤗 Datasets offers a lightweight library, primarily featuring one-line code data loaders for multiple public datasets and efficient data preprocessing tools. It supports various types of datasets, such as text, images, audio, etc., and provides a user-friendly API that is compatible with multiple machine learning frameworks.
创建时间:
2022-10-27
原始信息汇总

数据集概述

🤗 Datasets 是一个轻量级库,主要提供以下两大功能:

  1. 一键式加载多个公共数据集:通过简单命令如 squad_dataset = load_dataset("squad"),可以下载并预处理包括文本(467种语言和方言)、图像、音频等在内的主要公共数据集。这些数据集来自 HuggingFace Datasets Hub

  2. 高效的数据预处理:支持简单、快速且可重复的数据预处理,适用于上述公共数据集以及本地数据集(如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。详细指南可在此处找到:添加数据集指南

搜集汇总
数据集介绍
main_image_url
构建方式
HuggingFace Datasets的构建方式基于社区驱动的分布式方法,通过动态加载和缓存数据集脚本来实现。该库从TensorFlow Datasets中分叉而来,并采用了Apache Arrow作为后端序列化工具,确保数据的高效存储和访问。用户可以通过简单的命令下载和预处理公开数据集,同时支持本地数据集的快速处理。这种设计使得数据集的管理和共享变得极为便捷,极大地推动了自然语言处理领域的研究进展。
特点
HuggingFace Datasets的特点在于其轻量级和高效性,能够处理大规模数据集而不受内存限制。该库提供了智能缓存机制,确保数据处理过程的高效性和可重复性。其透明的Python API支持多进程、缓存和内存映射,内置与NumPy、Pandas、PyTorch、TensorFlow和JAX的互操作性。此外,HuggingFace Datasets还支持多种数据类型,包括文本、图像和音频,为用户提供了广泛的应用场景。
使用方法
使用HuggingFace Datasets的方法极为简单,用户可以通过`datasets.list_datasets()`列出所有可用数据集,并通过`datasets.load_dataset(dataset_name, **kwargs)`加载特定数据集。该库支持对数据集进行快速预处理,如添加新列或进行分词操作。用户还可以通过Colab教程快速上手,并在文档中查找详细的加载、访问和处理数据的方法。HuggingFace Datasets的设计使其成为自然语言处理研究和应用中的强大工具。
背景与挑战
背景概述
HuggingFace Datasets 是由 HuggingFace 团队开发的一个轻量级库,旨在为自然语言处理(NLP)及其他机器学习领域提供便捷的数据集加载与预处理工具。该库起源于对 TensorFlow Datasets 的分叉,并于2021年正式发布。其主要功能包括一键式加载多种公开数据集,以及高效的数据预处理能力,支持文本、图像、音频等多种数据类型。HuggingFace Datasets 的设计理念是标准化数据集的使用接口,简化数据处理的复杂性,并通过社区驱动的方式不断扩展数据集库。目前,该库已包含超过650个独特的数据集,吸引了250多位贡献者,极大地推动了跨数据集研究项目的发展。
当前挑战
HuggingFace Datasets 在解决数据集加载与预处理的标准化问题上取得了显著进展,但仍面临一些挑战。首先,数据集的多样性和规模不断增加,如何高效地管理和维护这些数据集,确保其质量和一致性,是一个持续的挑战。其次,尽管库提供了便捷的预处理工具,但在处理大规模数据集时,如何进一步优化内存使用和计算效率,仍需深入研究。此外,数据集的版权和许可问题也是一个不可忽视的挑战,用户在使用数据集时需自行确认其合法性,这增加了使用门槛。最后,如何更好地支持多模态数据集(如文本、图像、音频的混合数据)的处理,也是未来需要解决的关键问题。
常用场景
经典使用场景
HuggingFace Datasets 在自然语言处理(NLP)领域中被广泛用于加载和预处理多种公开数据集。通过简单的命令,如 `squad_dataset = load_dataset('squad')`,研究人员可以快速获取并准备用于机器学习模型训练和评估的数据集。该库支持多种数据类型,包括文本、图像和音频,极大地简化了数据处理的流程。
解决学术问题
HuggingFace Datasets 解决了学术研究中数据获取和预处理的难题。通过提供统一的数据加载接口和高效的数据预处理功能,研究人员可以专注于模型设计和实验,而无需花费大量时间在数据准备上。该库还支持多种数据格式和框架,如 NumPy、Pandas、PyTorch 和 TensorFlow,进一步提升了研究的灵活性和效率。
衍生相关工作
HuggingFace Datasets 的推出催生了许多相关的研究工作。例如,基于该库的 SQuAD 和 GLUE 等基准数据集和评估指标被广泛应用于自然语言处理任务中。此外,许多研究人员利用该库开发了新的数据集和模型,推动了 NLP 领域的前沿研究。该库的开源特性也促进了社区的合作与共享,进一步丰富了数据集资源。
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

面向社区/商业的数据集话题

二维码
科研交流群

面向高校/科研机构的开源数据集话题

数据驱动未来

携手共赢发展

商业合作