Hugging Face 推出“数据集”:用于自然语言处理 (NLP) 的轻量级社区库

2021-11-16 15:59:28 浏览数 (1)

随着研究人员提出新的目标、更大的模型和独特的基准,公开可用的 NLP(自然语言处理)数据集的规模、种类和数量迅速扩大。精选数据集用于评估和基准测试;监督数据集用于训练和微调模型;预训练和语言建模需要大量的无监督数据集。除了注释方法之外,每个数据集类型都有不同的规模、粒度和结构。

新的数据集范式历来在推动 NLP 的进步方面发挥着至关重要的作用。今天的 NLP 系统是用一个管道构建的,其中包括具有广泛可变维度和注释级别的各种数据集。对于预训练、微调和基准测试,使用了多个数据集。因此,NLP 社区中使用的数据集数量急剧增加。由于数据集的增加,出现了重大问题,例如接口标准化、版本控制和文档。从业者应该能够处理各种数据集,而不必使用各种界面。此外,使用相同数据集的 N 个从业者应该意识到他们正在使用相同的版本。是否使用小规模数据集,如气候热(1k 数据点)、中等规模的 Yahoo Answers(1M)、

Datasets 是一个现代 NLP 社区库,旨在协助 NLP 环境。Datasets 旨在标准化最终用户界面、版本控制和文档,同时提供适用于互联网上的小型数据集和大型语料库的轻量级前端。该库的设计涉及一种分布式的、社区驱动的方法来添加数据集和使用文档。经过一年的工作,该图书馆现在拥有超过 650 个独特的数据集、超过 250 名贡献者,并支持了许多原始的跨数据集研究计划和共享任务。

Datasets 是一个社区图书馆,旨在解决数据管理和访问问题,同时促进社区文化和规范。该项目是社区构建的,有数百名跨语言的贡献者,每个数据集都被标记和记录。每个数据集都应使用标准的表格格式,该格式已被版本化和引用;默认情况下,数据集具有计算和内存效率,并且可以与标记化和特征化无缝协作。

在各个层面上, 数据集 与其他最近的数据集版本控制工作不同。该项目独立于任何建模框架,并提供可用于任何目的的表格 API。它专注于自然语言处理 (NLP), 并为语言结构提供专门的类型和结构。它打算通过数据集中心和数据卡访问大量任务和语言的长尾数据集,促进社区管理和文档。

数据集不包含底层原始数据集。但是,它确实提供了对原始作者托管的数据的分布式访问。每个数据集都有一个由社区创建的构建器模块。构建器模块将原始数据(例如文本或 CSV)转换为标准化的数据集接口表示。在内部,每个创建的数据集都表示为一个带有类型列的表。数据集类型系统中包含一系列标准和 NLP 目标类型。Apache Arrow 是一个跨语言的列式数据平台,它构成了Datasets的基础 。Arrow 具有本地缓存机制,允许通过内存映射的磁盘缓存备份数据集,以便快速查找。

该库在下载时无需准备即可访问键入的数据。它包括用于操作数据集的排序、混洗、划分和过滤算法。当请求数据集时,它会从原始主机下载。这将调用特定于数据集的构建器代码,该代码将文本转换为与要素模式匹配并缓存表的类型化表格格式。向用户提供内存映射类型表。 用户可以运行任意矢量化代码并 存储结果以进一步处理数据,例如对其进行标记化。

一些数据集非常庞大,以至于它们甚至无法放在光盘上。Datasets 中包含一个流模型 ,它动态地缓冲这些数据集。此模式支持核心映射原语,它在流式传输时对每个数据批次进行操作。由于数据流,最近对广泛的开放 NLP 模型的分布式训练的研究成为可能。用于在任何数据集上快速创建和使用搜索索引的工具包含在Datasets下 。该库可以使用 FAISS 或 ElasticSearch 来生成索引。此界面使使用文本或矢量查询定位最近的邻居变得简单。

Hugging Face Datasets是一个社区驱动的开源包,用于标准化 NLP 数据集的处理、分发和文档。核心库旨在简单、快速加载并为各种大小的数据集使用相同的界面。它使标准数据集的使用变得容易, 鼓励了跨数据集 NLP 的新用例,并为索引和流式处理大数据集等任务提供了复杂的功能,来自 250 多个贡献者的 650 个数据集。

论文:

https://arxiv.org/pdf/2109.02846.pdf

Github:

https://github.com/huggingface/datasets

0 人点赞