NLP初创公司HuggingFace近日发布新版其Datasets库v1.2,包括个文本数据集,可以下载以准备在一行python中使用;涵盖种语言,其中99种包含至少10个数据集;当使用非常大的数据集时(默认情况下是内存映射),高效的预处理可以使用户摆脱内存限制。
谈到HuggingFace,熟悉NLP的朋友们可能无人不知。
HuggingFace是一家领先的NLP创业公司,有超过一千家公司使用他们的产品库,其中包括必应,苹果,Monzo等。
它拥有一个大型的开源社区,尤其是transformers库。transformers是一个基于python的库,它公开了一个API来使用许多著名的transformer架构,如BERT、RoBERTa、GPT-2或DistilBERT等,这些架构可以获得各种NLP任务的SOTA结果,如文本分类、信息抽取、问答和文本生成。
这些架构都通过预训练得到了权重。通过pip命令即可安装:
而本次更新的datasets是一个提供两个主要特性的轻量级库:
一行程序处理:这是用于下载和预处理任何主要公共数据集的一行程序(使用种语言和方言),在HuggingFaceDatasetsHub提供。
使用一个简单的命令,比如:
squad_dataset=load_datasets(“squad”)
即可获得这些数据集中的任何一个,以便在数据采集器中用于训练/评估ML模型(Numpy/Pandas/PyTorch/TensorFlow/JAX)。
高效的数据预处理:简单、快速、可复制的数据数据预处理,可用于上述公共数据集以及用CSV/JSON/text编写的本地数据集。使用简单的命令,比如:tokenized_dataset=dataset.map(tokenize_exemple),,可以有效地准备数据集进行检验和ML模型评估和训练。
Datasets还提供了15个以上的评价指标,旨在让社区容易地添加和共享新的数据集和评价指标。
Datasets还有许多其他有趣的特性:
将用户从RAM内存限制中释放出来,所有数据集都使用一个有效的零序列化开销后端(ApacheArrow)进行内存映射;
智能缓存:永远无需等待数据被多次处理;
使用透明和pythonicAPI(多处理/缓存/内存映射)实现轻量级和快速;
与NumPy、pandas、PyTorch、Tensorflow2和JAX的内置互操作性。
安装和用法
datasets可以从PyPi安装,而且必须在虚拟环境中安装(例如venv或conda):
pipinstalldatasets
如果想要将Datasets与PyTorch(1.0+)、TensorFlow(2.2+)或Pandas等一起使用,还应该安装对应版本的框架和库。
Datasets使用起来非常简单,其中主要的方法有:
1.datasets.list_datasets()列出可用的数据集
2.datasets.load_dataset(dataset_name,**kwargs)实例化一个数据集
3.datasets.list_metrics()列出可用的指标
4.datasets.load_metric(metric_name,**kwargs)实例化一个指标
举一个简单的例子:
更多详细信息,可以查看文档中的快速浏览页面: